Diberdayakan oleh Blogger.
RSS

Counter dan Attribut karakter

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

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar