Program Counter dan Attribut karakter
ragister CX adalah register yang berfungsi segai Counter, sehingga progam
akan mencetak sebanyak n kali sesuai dengan operand yang di tentukan
sedangkan register bl , di gunakan untuk memberikan attribut dari karakter
yang akan kita cetak dengan bantuan interrupt 10h dan service 09h untuk
memanipulasi layar.
Nilai yang di masukkan kedalam register bl dapat berupa nilai biner 8 bit
atau nilai hexa desimal yang nilainya sama dengan nilai biner tersebut.
Setelah di compail
dengan menambahkan interrupt 21h dengan service 09h, kemudian
mengulang register bl yang berisi attribut warna, maka akan menghasilkan
karakter yang kita cetak tadi mempunya warna yang bervariasi.
untuk mencetak string dapat menggunakan variabel yang di deklarasikan
seperti perintah di atas
bagian deklarasi variabel tidak boleh di lalui oleh progam sehingga
langsung menuju ke label selanjutnya dengan perintah jmp
untuk mencetak string tersebut kita menggunakan interrupt 21h dengan
service 09h
pindahkan nilai yang ada di dalm varaibel tersebut kedalam register dx
untuk di tampilkan di layar(mov dx,offset
Perintah ini juga dapat di ganti dengan lea dx,
Program mencari karakter
.model small
.code
org 100h
data:
jmp mulai
asal db 'widyautama$'
kata db 'masukan huruf yang dicari: $'
ket1 db 'huruf ditemukan $'
ket2 db 'huruf tidak ditemukan $'
mulai:
xor bx, bx ; cek panjang kalimat
cek:
mov al, asal [bx]
inc bx
cmp al, '$'
jne cek
dec bx
mov cx, bx
xor bx, bx
mov ah, 9
mov dx, offset asal
int 21h
mov ah, 2
mov dl, 13
int 21h
mov dl, 10
int 21h
mov ah, 9
mov dx, offset kata
int 21h
mov ah, 1
int 21h
ulang:
mov dl, asal [bx]
inc bx
cmp dl, '$'
je salah
cmp al, dl
jne ulang
jmp benar
salah:
mov ah, 2
mov dl, 13
int 21h
mov dl, 10
int 21h
mov ah, 9
mov dx, offset ket2
int 21h
jmp barisBaru
benar:
mov ah, 2
mov dl, 13
int 21h
mov dl, 10
int 21h
mov ah, 9
mov dx, offset ket1
int 21h
mov ah, 02h
mov dl, 13
int 21h
mov dl, 10
int 21h
mov ah, 02h
mov dl, 2dh
int 21h
mov ah, 09h
lea dx, asal [bx]
int 21h
barisBaru:
mov ah, 2
mov dl, 13
int 21h
mov dl, 10
int 21h
int 20h
end data
Perintah JMP(JUMP) ini digunakan untuk melompat menuju tempat yang
ditunjukkan oleh perintah JUMP.
JE (Jump If Equal)| Lompat, jika Operand1 = Operand2
JNE (Jump If Not Equal) Lompat, jika Operand1 tidak sama
dengan Operand2
Hasil compail
Hasil compail
Hasil compail
0 komentar:
Posting Komentar