Program Operasi String dengan LODSB & STOSB
1. Tujuan [kembali]
- Memahami Penggunaan EMU 8086
- Mempelajari Cara meletakan dan mengambil string
- Implementasi operasi string dengan LODSB & STOSB
2. Komponen [kembali]
-
EMU8086
EMU8086 - MICROPROCESSOR EMULATOR adalah emulator gratis untuk banyak
platform. Ini menyediakan pengguna dengan kemampuan untuk meniru prosesor
8086 lama, yang digunakan dalam komputer Macintosh dan Windows dari tahun
1980-an dan awal 1990-an. Ini dapat meniru sejumlah besar perangkat lunak
yang digunakan pada mikroprosesor ini, tetapi pengguna yang cerdas juga
dapat memprogram kode assembly mereka sendiri untuk berjalan di atasnya.
EMU8086 - MICROPROCESSOR EMULATOR mengutamakan prosesor, bukan fungsi lain
yang dimiliki oleh mikrokomputer yang menjalankan prosesor 8086. Namun,
masih berfungsi banyak fungsi yang sama yang emulator untuk mikrokomputer
yang lebih spesifik mungkin, dan lebih banyak lagi. Sebagai contoh, baik
NEC-P9801 dan komputer IBM-kompatibel awal menggunakan 8086. Menggunakan
EMU8086, seseorang mungkin dapat menulis perangkat lunak perakitan yang
dapat berjalan di salah satu perangkat tersebut. Di sisi lain, EMU8086 tidak
dapat mengakses beberapa fungsionalitas perangkat keras yang lebih canggih
yang mungkin Anda temukan di monitor atau komponen lain dari perangkat
tersebut.
3. Dasar Teori [kembali]
Emu8086 merupakan aplikasi emulator bagi pemrograman bahasa assembler atau
mikrokontroler. Dengan menggunakan aplikasi emulator, kita dapat
mensimulasikan apakah program kontrol hardware yang kita buat sudah benar
atau masih salah.
Dalam “emu8086” terdapat beberapa menu, antara lain:
-
Emulate : untuk menjalankan emulator kode program yang kita buat
-
Compile : untuk membuat (compile) “binary executable file” atau ekstensi
“.com” atau “.exe” dari kode program.
-
Run : menjalankan aplikasi dari emulator yang dihasilkan (execute).
-
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).
Pseucode operation (pseudo ops) adalah perintah kepada assembler untuk
memberitahukan apa yang harus dilakukan terhadap data, percabangan
bersyarat, perintah macro dan listing. Beberapa pseudo ops yang sering
dijumpai adalah sebagai berikut :
Untuk menjalankan Klik “compile” kemudian pilih lokasi di mana file
executable akan disimpan, lalu “single step”, sehingga hasilnya akan
terlihat seperti dibawah ini :
Contoh operasi penambahan dan pengurangan bahasa assembler menggunakan
"Emu8086"
Untuk menjalankan Klik “compile” kemudian pilih lokasi di mana file
executable akan disimpan, lalu “single step”, atau bisa langsung "Run"
sehingga hasilnya akan terlihat seperti dibawah ini :
Hasil program penambahan dan pengurangan
Penjelasan
MULAI: MOV AX,469 ;Perintah untuk memasukkan nilai 469 ke register AX
XOR CX,CX
; Perintah melakukan logika XOR register CX dengan
register
CX agar nilai dalam register CX dapat direset, CX=0
ULANG1: MOV BH,10 ; Perintah untuk memasukkan nilai 10 ke register BH
DIV BH ; Perintah untuk membagi nilai pada register AX dengan nilai pada register BH
PUSH AX ; Perintah untuk memasukkan nilai register AX ke STACK
INC
CX
; Perintah
untuk melakukan increment pada register CX atau
menambahkan satu kepada register CX
XOR AH,AH ; Perintah untuk melakukan logika XOR register AH dengan
register AH agar nilai dalam register AH dapat direset, AH=0
CMP AL,00 ; Perintah untuk compile nilai register AL, apakah AL=0 atau tidak.
JNE
ULANG1
; Perintah untuk lompat ke ULANG1 apabila nilai
register
tidak sama, apabila sama maka program dilanjutkan ke Ulang2
Ulang2: pop dx
;
Perintah untuk mengeluarkan isi register dari STACK
menjadi register dx
mov dl,dh
; Perintah untuk memindahkan nilai dh ke dl atau
memindahkan
nilai sisa
add dl,30h ; Perintah untuk menambahkan 30hexa ke dalam register dl
mov ah,02 ; Perintah untuk memindahkan nilai 02 ke dalam register ah
int 21h ; Perintah untuk menampilkan isi register ke layar
Loop ulang2 ; Perintah untuk melakukan looping ke ulang2
MOV AH,4CH ; Perintah untuk memindahkan nilai 4Chexa ke register AH
int 21h
; Akhir program
4. Rangkaian [kembali]
5. Video [kembali]
6. Download File [kembali]
1. Download Program [klik]