Anda di halaman 1dari 4

Bab 3.

Pemrograman Lanjutan Bahasa Assembly

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 :

1. Source operand dibandingkan dengan data di register A


2. Untuk melakukan compare, source operand dikurangkan dari register A. Flag
dipengaruhi sesuai hasil pengurangan.
3. Baik source operand maupun register A tidak berubah setelah melaksanakan
perintah ini.

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

Source operand = register A ; Z = 1

Source operand < register A ; C = 0

Z=0

Source operand > register A ; C = 1

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

1. Rotate tanpa carry


Mnemonic
RLCA rotate ke kiri
RRCA rotate ke kanan
(lihat gambar 3.6)

Rotate kiri Rotate kanan


Gambar 3.6 instruksi rotate tanpa carry
Gambar 3.7 menunjukkan pengaruh instruksi RLCA dan RRCA pada data di register A
CY D7 DO
0 1 0 0 1 0 1 0 0 sebelum
RLCA

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

Gambar 3.7 Pengaruh instruksi RLCA dan RRCA

2. Rotate dengan carry

RLA rotate ke kiri melalui carry

RRA rotate ke kanan melalui carry

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

Anda mungkin juga menyukai