Gambar 42



Gambar 42. Program Aplikasi Operasi String dengan CMPSB

1.Tujuan[Kembali]

  • Memahami dan mengerti penggunaan bahasa assembler dengan emu8086
  • Dapat membuat sebuah program aplikasi menggunakan emu 8086
  • Mampu membuat program aplikasi String dengan CMPSB

2.Alat dan Bahan[Kembali]

Emulator 8086

Emu8086 merupakan aplikasi emulator bagi pemrograman bahasa assembler atau mikrokontroler. 
EMU8086 merupakan emulator untuk prosesor 8086 yang sudah dilengkapi dengan editor dan assembler yang bersifat GUI (graphical user interface). Dengan EMU8086 internal register dapat diamati dari waktu ke waktu akibat dari eksekusi suatu instruksi assembly.

Dalam “emu8086” terdapat beberapa menu, antara lain:
  1. Emulate : untuk menjalankan emulator kode program yang kita buat
  2. Compile : untuk membuat (compile) “binary executable file” atau ekstensi “.com” atau “.exe” dari kode program.
  3. Run : menjalankan aplikasi dari emulator yang dihasilkan (execute).
  4. Single Step : Menjalankan aplikasi dengan cara tracing (diproses perbaris kode program).
Memulai pemrograman bahasa Assembler terdiri dari beberapa kode operasi code (op code) dan pseudo ops. Bentuk instruksinya adalah op code diikuti operand. Opcode adalah perintah yang akan dilaksanakan, sedangkan operand dpaat terdiri dari sumber (source) dan tujuan (destination).

Misal : MOV AX,BX

Opcode dari contoh di atas adalah MOV, sedangkan operandnya adalah AX, BX. Maksud kode di atas adalah perintah untuk menyalin data yang ada di register BX (source operand) ke register AX (destination operand).


4. Percobaan[Kembali]

Prosedur Percobaan:
  • Memasukkan program kedalam aplikasi emu 8086.
  • Emulate program.
  • Run hasil program tersebut .

5. Program[Kembali]



6. Penjelasan Program[Kembali]

Pertama harus menyediakan variabel yang berisi password yang akan dibandingkan dengan variabel yang akan di inputkan oleh user, kemudian menyediakan variabel yang akan di isi oleh user.
kemudian menyediakan dua buah variabel yaitu 'SALAH' dimana yang berisikan string "SALAH ULANGI PASSWORD ANDA!" dan variabel "BENAR" yang berisi string "BENAR".

Pertama program menampilkan string "PASSWORD ANDA?: " kemudian user diperintahkan untuk menginputkan passwor dimana hasil penginputan akan dimasukkan ke variabel 'PASSWORD1' kemudian isi dari variabel ini akan dibandingkan dengan isi dari variabel LEI. Jika isi dari kedua variabel ini tidak sebanding maka akan tampil "SALAH ULANGI PASSWORD ANDA" jika kedua variabel ini sebanding maka akan tampil "BENAR".

START: JMP MULAI = /ketika program jalan, program langsung jump/melompat ke fungsi Mulai .

KATA DB 'PASSWORD ANDA?: $' = mendeklarasikan variabel KATA dalam bentuk DB (Define byte klo dk salah) yang berisi string 'PASSWORD ANDA?: $' tanda dolar digunakan agar variabel KATA bisa menggunakan Int 21 hexa service 09 hexa.

LEI DB 'LEI' = mendeklarasikan variabel lei yang berisi string lei

PASSWORD1 DB 4,?,4 DUP(?) = mendeklarasikan 4 Define BYTE tidak diketahui isinya dengan nama PASSWORD1

SALAH DB 13,10, 'SALAH ULANGI PASSWORD ANDA!' ,13,10,13,10,'$' = mendeklarasikan variabel SALAH dalam bentuk DB yang berisikan string 'SALAH ULANGI PASSWORD ANDA!'Angka 13,10 itu untuk enter(newline) dan meletakkan kursor ke sebelah kolom 0 dari layar

BENAR DB 13,10, 'BENAR !',13,10,13,10, '$' = variabel BENAR dalam bentuk DB yang berisikan string.

MULAI: MOV AH 09H = AH diisi dengan service number dari interrupt.

MOV DX, OFFSET KATA = merupakan register untuk membaca isi data yang diberi label "kata"

INT 21H = merupakan interrupt yang berisi fungsi yang sangat kompleks yang diberikan oleh DOS (Disk Operating System).

PUSH DS = PUSH berfungsi untuk memasukkan isi suatu register/variabel ke stack.
Stack adalah tempat peletakan sementara isi register.
Stack pada file.COM terdapat diakhir segment dan ketika pertama kali dijalankan program penunjuk stack (SP) akan langsung ke byte terakhir dari segment.
DS adalah segment variabel tempat menampung kata yang akan dicetak 

POP ES = POP merupakan perintah untuk Untuk mengeluarkan isi register/variabel dari stack.d. 
ES (Extra Segment) Register adalah berfungsi untuk pemograman pada saat melakukan operasi ke segment lain.

MOV CX,03H = karena ada 3 karakter password yaitu LEI

CLD = merupakan proses ke bawah

ULANG: CMPSB = proses CMPSB dimana terjadinya  membandingkan string satu byte yang terdapat diposisi ES:[DI] dengan posisi DS:[SI]. setiap selesai membandingkan, maka DI dan SI akan bertambah atau berkurang satu. 

Jc SALAH 1: Jika tidak sama ke salah

MOV AH, 09H =  AH diisi dengan service number dari interrupt

MOV DX, OFFSET BENAR = merupakan register untuk membaca isi data yang diberi label "BENAR"

INT 21H = Cetak kata

MOV DX, OFFSET SALAH = merupakan register untuk membaca isi data yang diberi label "SALAH"

INT 21H = Cetak kata

JMP MULAI = Loncat ke mulai

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI MATAKULIAh Elektronika 2021  OLEH: Muhammad Ilhamdi Akbar 2010953001 Dosen Pengampu: Dr.Darwison,M.T Jurusan Teknik Elek...