7 Arithmetic

Arithmetic adalah operasi bilangan seperti penjumlahan, pengurangan, increment dan decrement.

Format penulisan program

ADD A, rADD A, nADD A, (HL)
ADC A, rADC A, nADC A, (HL)
SUB A, rSUB A, nSUB A, (HL)
SBC A, rSBC A, nSBC A, (HL)
ADD HL, BCADD HL, DEADD HL, HL

ADD = Aritmatika yang berfungsi penjumlahan

ADC = Aritmatika yang berfungsi penjumlahan dengan carry

SUB = Aritmatika yang berfungsi pengurangan

SBC = Aritmatika yang berfungsi pengurangan dengan carry


Operasi arithmatic akan berpengaruh pada Flag register (F). Carry bernilai 1 jika ada kelebihan nilai dari penjumlahan/kekurangan nilai dari pengurangan.

contoh penulisan program

org 2000 h ; menuju memory program 2000 hLD A, 4 hLD B, 1 hSUB A, B ; A dikurangi BLD C, A ; mengisi register C dg data pada register A

hasil program ini register C berisi 3 hexsa

catatan: penjumlahan dan pengurangan hanya bisa dilakukan di register A. khusus operasi aritmetik 16bit dilakukan di register HL.

1. contoh penulisan program ADD A, r

org 2000h ; menuju memori program 2000hLD A, 10 h ; register A diisi data 10 hLD C, 20 h ; register C diisi data 20 hADD A, C ; register A diisi data 20 h

2. contoh penulisan program ADD A, n

org 2000h ; menuju memori program 2000hLD A, 10 h ; register A diisi data 10 hADD A, 20 h ; register A ditambah 20 h

3. contoh penulisan program ADD A, (HL)

LD A, 10 h ; register A diisi data 10 hLD HL, 8001 h ; register HL diisi data 8001 hADD A, (HL) ; register A ditambah 20 h
catatan: memori alamat 8001 harus sudah diisi data terlebih dahulu misal 1A

4. contoh penulisan program SUB A, r

org 2000h ; menuju memori program 2000hLD A, 20 h ; register A diisi data 20 hLD B, 10 h ; register B diisi data 10 hSUB A, B ; register A dikurangi register B

5. contoh penulisan program ADD HL, BC

org 2000h ; menuju memori program 2000hLD HL, 123A h ; register HL diisi data 123A hLD BC, 3200 h ; register BC diisi data 3200 hADD HL, BC ; register HL ditambah register BC