Instruksi Compare
Sub group instruksi berikut adalah compare. Instruksi ini membandingkan 2 operand dan
mengeset flag sesuai dengan hasil compare. Semua operasi compare adalah sebagai
berikut :
Contoh:
Misalkan kita ingin meng-compare isi dari register B dengan register A. Misalkan B=
45H dan A= 44H. Maka dengan instruksi
CP B
akan menghasilkan :
1. B adalah source operand dan dikurangi dengan A ; 44H- 45H = -1= FFH
2. Hasilnya tidak sama dengan nol sehingga
Zero flag = false = 0
3. Hasilnya menghasilkan borrow sehingga
Carry flag = true = 1
Dengan menggunakan flag Z dan C maka programmer akan dapat menentukan bila
Z=0
63
Bab 3. Pemrograman Lanjutan Bahasa Assembly
Mnemonic
CP r ; compare A dengan register r
CP (HL) ; compare A dengan memori
CP data ; compare A dengan immediate data
Contoh:
Misalkan ada 2 bilangan pada 2 lokasi memori yang berbeda. Kita akan menulis pada
output port FEH suatu kondisi perbandingan antara 2 bilangan tersebut. Misalkan, lokasi
masing-masing data adalah BIL_1 dan BIL_2
Bila : BIL_1 = BIL_2 Port FE = 1
Bila : BIL_1 < BIL_2 Port FE = 3
Bila : BIL_1 > BIL_2 Port FE = 2
Programnya adalah :
LD A, (BIL_2)
LD HL,BIL_1
CP (HL)
JP C, KURANG
JP NZ, LEBIH
LD A,01
JP AKHIR
KURANG: LD A,03
JP AKHIR
LEBIH : LD A,02
AKHIR : OUT (OFEH) ,A
HALT
64
Bab 3. Pemrograman Lanjutan Bahasa Assembly
Instruksi Rotate
Terdiri atas
1. Rotate tanpa carry
2. Rotate dengan carry
65
Bab 3. Pemrograman Lanjutan Bahasa Assembly
CY
1 0 0 . 0 1 0 0 1 setelah
(a) RLCA
CY D7 DO
0 1 0 0 1 0 1 0 0 sebelum
RRCA
CY
0 0 1 0 0 1 0 1 0 setelah
(b) RRCA
Bisa Anda bayangkan sebagai rotate data 9-bit di register A- (lihat gambar 3.8)
CY D7 DO
0 1 0 0 1 0 1 0 1 sebelum
RLA
66