1. Melakukan simulasi STOSW,
2. Simulasi menampilkan string pada layar.
Gambar 1. Simulasi program dengan LODSB dan STOSB
Berikut merupakan program yang digunakan beserta penjelasannya
START: JMP MULAI
GAMBAR DB ' '
DB ' ## ######### ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ## ######### ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ######### ######### ## '
DB ' '
MULAI: MOV AX,0B800H ;SEGMENT MEMORY LAYAR
MOV ES,AX
MOV BX, OFFSET GAMBAR
XOR DI,DI ;OFFSET DI=0
ULANG: MOV AH,1FH ;WARNA BIRU PUTIH
MOV AL,[BX] ;MENGAMBIL GAMBAR
STOSW ;MELETAKKAN KE MEMORI
INC BX
MOV AL,[BX] ;MENGAMBIL GAMBAR
CMP AL,0 ;MEMBANDINGKAN DENGAN 0
JE SELESAI ;JIKA SAMA SELESAI
JMP ULANG ;ULANGI OPERASI
SELESAI:
MOV AH,4CH
INT 21H
GAMBAR DB ' '
DB ' ## ######### ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ## ######### ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ## ## ## '
DB ' ######### ######### ## '
DB ' '
MULAI: MOV AX,0B800H ;SEGMENT MEMORY LAYAR
MOV ES,AX
MOV BX, OFFSET GAMBAR
XOR DI,DI ;OFFSET DI=0
ULANG: MOV AH,1FH ;WARNA BIRU PUTIH
MOV AL,[BX] ;MENGAMBIL GAMBAR
STOSW ;MELETAKKAN KE MEMORI
INC BX
MOV AL,[BX] ;MENGAMBIL GAMBAR
CMP AL,0 ;MEMBANDINGKAN DENGAN 0
JE SELESAI ;JIKA SAMA SELESAI
JMP ULANG ;ULANGI OPERASI
SELESAI:
MOV AH,4CH
INT 21H
- Pada fungsi start terdapat JMP MULAI yang berarti program akan langsung melompat ke fungsi mulai.
- Dibawah jmp terdapat DB yang berisikan string. DB merupakan (Define Byte) yang mendifinisikan variabel per byte.
- lalu pada fungsi mulai diawali dengan MOV AX,0B800H. Fungsi mov adalah untuk memberikan nilai pada operand 1 dengan nilai pada operand2 yang disini berarti AX diberi nilai 0B800H. 0B800H merupakan segment memory layar.
- lalu terdapat MOV ES,AX. ES (extra segment) berfungsi untuk mengoperasikan segment lain, pada program ini yaitu layar
- Lalu ada MOV BX, OFFSET GAMBAR. Register BS diberi nilai OFFSET GAMBAR. Base register adalah salah satu dari dua register base Addressing mode, yang dapat mengambil atau menulis langsung dari/ke memory.
- lalu ada XOR DI,DI yang merupakan operator logika yang membandingkan DI dengan DI dengan logika XOR.
- lalu program akan masuk ke fungsi ulang yang kemudian mengeksekusi MOV AH,1FH. fungsi ini memberikan AH nilai 1FH yang berfungsi untuk memberikan warna biru putih pada layar.
- lalu terdapat MOV AL,[BX] yaitu memberikan nilai AL dengan nilai BX. pada program ini kode ini berfungsi untuk mengambil gambar (string)\
- lalu terdapat STOSW yang berfungsi meletakkan gambar ke memory yang ditandai dengan munculnya string pada layar serta nilai DI otomatis ditambah 2.
- kemudian terdapat INC BX yang berfungsi untuk menambah nilai BX sebesar 1.
- lalu terdapat kembali MOV AL,[BX] yang berfungsi untuk mengubah nilai AL menjadi nilai BX yang telah ditambahkan.
- lalu terdapat CMP AL,0 fungsi CMP adalah untuk membandingkan nilai operand1 dengan operand 2, pada program ini yaitu AL dengan 0.
- lalu ada program JE SELESAI. JE (jump if equal) merupakan fungsi untuk loncat ke fungsi yang dituju (dalam hal ini fungsi SELESAI) jika perbandingan pada CMP tadi bernilai sama. jika tidak memenuhi maka akan lanjut ke program berikutnya
- berikutnya ada JMP ULANG, ini berarti bahwa program kembali melompat (lebih tepatnya mengulang) ke fungsi ULANG.
- Jika CMP AL,0 tadi memenuhi maka program akan melompat ke fungsi selesai. pada fungsi selesai akan ada MOV AH,4CH yang disusul dengan int 21. ini berarti bahwa fungsi tersebut merupakan interrupt 21 service 4CH yang berfungsi untuk menghentikan program
1. video download disini
2. Emu8086 Download disini
3. Program download disini
4. HTML download di sini
1. Pada perintah dibawah ini yang manakah yang berfungsi untuk memberikan operand1 nilai dari operand2?
a. JMP
b. CMP
c. JE
d. MOV
Jawaban: D
karena MOV [operand1],[operand2] Berfungsi untuk memberikan operand 1 nilai dari operand2
2. perintah dibawah ini yang manakah yang berfungsi untuk meletekan gambar (string) ke memory yang ditunjukkan?
a. MOV
b. CMP
c. STOSW
d. INC
Jawaban: C
STOSW berfungsi untuk meletakkan gambar ke memory yang ditunjuk. lalu secara otomatis menambah DI sebesar 2
Tidak ada komentar:
Posting Komentar