Anda di halaman 1dari 17

Mikroprosesor

Bab 4 : Operasi Aritmetika

INSTRUKSI ARITMETIKA
Terdiri atas : 1. Intruksi Aritmetika 8 bit Menambahkan Isi Akumulator dengan data 8 bit, isi register serba guna, data pada alamat memori. Menambahkan dengan carry isi Akumulator dengan data 8 bit, isi register serba guna, data pada alamat memori. Menambah satu isi register dan data pada alamat memori Mengurangi Isi Akumulator dengan data 8 bit, isi register serba guna, data pada alamat memori. Mengurangi dengan carry isi Akumulator dengan data 8 bit, isi register serba guna, data pada alamat memori. Mengurangi satu isi register dan data pada alamat memori

INSTRUKSI ARITMETIKA
2. Intruksi Aritmetika 16 bit Menambahkan isi register HL, IX, dan IY dengan data pada register 16 bit Menambahkan dengan carry isi register HL dengan data pada register 16 bit Menambahkan satu isi register HL, IX, dan IY Mengurangi dengan carry isi register HL dengan data pada register 16 bit Mengurangi satu isi register HL, IX, dan IY

Note : Pada operasi penambahan dan pengurangan akan menset/mereset isi dari register bendera.

INSTRUKSI ARITMETIKA
MENAMBAH ISI AKUMULATOR DENGAN DATA DARI REGISTER 8 BIT

Instruksi penambahan isi akumulator lain yaitu :

ADD A,n
ADD A, (HL) ADD A, (Ix+d) ADD A, (Iy+d)

=>
=> => =>

C6 , n
86 DD, 86, d FD, 86, d

=> Menambahkan isi akumulator dengan data 8 bit


=> Menambahkan isi akumulator dengan data (HL) => Menambahkan isi akumulator dengan data dari (Ix + d) => Menambahkan isi akumulator dengan data dari (Iy + d)
9

INSTRUKSI ARITMETIKA
Contoh : Isi Register A adalah 7EH. Isi Register C adalah B9. Tambahkan isi Akumulator dengan isi dari register C. START

LD A, 7E H

3E 7E 0E B9 81

A => 7EH => C =>

0111 1110

LD C, B9 H

B9H => 1011 1001

ADD A, C

A => 1 37H => 1 0011 0111

STOP
10

INSTRUKSI ARITMETIKA
Hasil Eksekusi Dissambler File

Memory Editor

11

INSTRUKSI ARITMETIKA
MENAMBAHKAN DENGAN CARRY ISI AKUMULATOR DENGAN DATA 8 BIT

Instruksi penambahan dengan carry isi akumulator lain yaitu :

ADC A, n => CE, n


ADC A,r => 10 001 rrr ADC A, (HL) => 8E ADC A, (Ix+d) => DD, 8E, d

=> Menambahkan dengan carry isi akumulator dengan data 8 bit


=> Menambahkan dengan carry isi akumulator dengan data dari reg. 8 bit => Menambahkan isi dengan carry isi akumulator dengan data dari (HL) => Menambahkan dengan carry isi akumulator dengan data dari (Ix + d)

ADC A, (Iy+d) => FD, 8E, d

=> Menambahkan dengan carry isi akumulator dengan data dari (Iy + d)
9

INSTRUKSI ARITMETIKA
Contoh : Isi Register A adalah BEH. Isi Register D Adela 5F. Tambahkan dengan carry isi Akumulator dengan isi dari register D. START

LD A, BE H

3E BE 16 5F 82

A => BEH => C =>

1011 1110

LD D, 5F H

5FH => 0101 1111

ADC A, D

A => 1 1DH => 1 0001 1101 1 => 1

STOP

A => 1EH => 0001 1110


10

INSTRUKSI ARITMETIKA
MENAMBAHKAN SATU ISI REGISTER 8 BIT

Instruksi penambahan satu isi register 8 bit yaitu : INC r => 00 rrr 100 => Menambahkan satu isi register 8 bit => Menambahkan satu data pada (HL) => Menambahkan satu data pada (Ix+d) => Menambahkan satu data pada (Iy+d)
9

INC (HL) => 34 INC (Ix +d) => DD, 34, d INC (Iy +d) => FD, 34, d

INSTRUKSI ARITMETIKA
MENGURANGI ISI AKUMULATOR DENGAN DATA DARI REGISTER 8 BIT

Instruksi pengurangan isi akumulator lain yaitu :

SUB n
SUB r SUB (HL)

=> D6 , n
=> 10 010 rrr => 96

=> Mengurangi isi akumulator dengan data 8 bit


=> Mengurangi isi akumulator dengan data dari reg. 8 bit => Mengurangi isi akumulator dengan data dari (HL) => Mengurangi isi akumulator dengan data dari (Ix + d)

SUB (Ix+d) => DD, 96, d

SUB (Iy+d) => FD, 96, d

=> Mengurangi isi akumulator dengan data dari (Iy + d)


9

INSTRUKSI ARITMETIKA
MENGURANGI DENGAN CARRY ISI AKUMULATOR DENGAN DATA DARI REGISTER 8 BIT

Instruksi pengurangan dengan carry isi akumulator yaitu :

SBC A, n => DE, n


SBC A,r => 10 011 rrr SBC A, (HL) => 9E SBC A, (Ix+d) => DD, 9E, d

=> Mengurangi dengan carry isi akumulator dengan data 8 bit


=> Mengurangi dengan carry isi akumulator dengan isi reg. 8 bit => Mengurangi dengan carry isi akumulator dengan data (HL) => Mengurangi dengan carry isi akumulator dengan data (Ix + d)

SBC A, (Iy+d) => FD, 9E, d

=> Mengurangi dengan carry isi akumulator dengan data (Iy + d)


9

INSTRUKSI ARITMETIKA
MENGURANGI SATU ISI REGISTER 8 BIT

Instruksi pengurangan 1 isi register 8 bit :

DEC r

=> 00 rrr 101

=> Mengurangi satu isi register 8 bit


=> Mengurangi satu data pada (HL) => Mengurangi satu data pada (Ix+d) => Mengurangi satu data pada (Iy+d)
9

DEC (HL) => 35 DEC (Ix +d) => DD, 35, d DEC (Iy +d) => FD, 35, d

INSTRUKSI PENAMBAHAN (8 Bit)


N o Mnemonic Opcode + Operands Keterangan
Menambahkan isi akumulator dengan data 8 bit
Menambahkan isi akumulator dengan data dari reg. 8 bit Menambahkan isi akumulator dengan data (HL) Menambahkan isi akumulator dengan data dari (Ix + d) Menambahkan isi akumulator dengan data dari (Iy + d) Menambahkan dengan carry isi akumulator dengan data 8 bit Menambahkan dengan carry isi akumulator dengan data dari reg. 8 bit Menambahkan isi dengan carry isi akumulator dengan data dari (HL) Menambahkan dengan carry isi akumulator dengan data dari (Ix + d) Menambahkan dengan carry isi akumulator dengan data dari (Iy + d) Menambahkan satu isi register 8 bit Menambahkan satu data pada (HL) Menambahkan satu data pada (Ix+d) Menambahkan satu data pada (Iy+d) 12

1
2 3 4 5 6 7 8 9 10 11 12 13 14

ADD A,n
ADD A,r ADD A, (HL) ADD A, (Ix+d) ADD A, (Iy+d) ADC A, n ADC A,r ADC A, (HL) ADC A, (Ix+d) ADC A, (Iy+d) INC r INC (HL) INC (Ix +d) INC (Iy +d)

C6 , n
10 000 rrr 86 DD, 86, d FD, 86, d CE, n 10 001 rrr 8E DD, 8E, d FD, 8E, d 00 rrr 100 34 DD, 34, d FD, 34, d

INSTRUKSI PENGURANGAN (8 Bit)


N o Mnemonic Opcode + Operands Keterangan
Mengurangi isi akumulator dengan data 8 bit Mengurangi isi akumulator dengan data dari reg. 8 bit Mengurangi isi akumulator dengan data dari (HL) Mengurangi isi akumulator dengan data dari (Ix + d) Mengurangi isi akumulator dengan data dari (Iy + d) Mengurangi dengan carry isi akumulator dengan data 8 bit Mengurangi dengan carry isi akumulator dengan isi reg. 8 bit Mengurangi dengan carry isi akumulator dengan data (HL) Mengurangi dengan carry isi akumulator dengan data (Ix + d)

1
2 3 4 5 6

SUB n
SUB r SUB (HL) SUB (Ix+d) SUB (Iy+d) SBC A, n

D6 , n
10 010 rrr 96 DD, 96, d FD, 96, d DE, n

7
8 9

SBC A,r
SBC A, (HL) SBC A, (Ix+d)

10 011 rrr
9E DD, 9E, d

10
11 12 13 14

SBC A, (Iy+d)
DEC r DEC (HL) DEC (Ix +d) DEC (Iy +d)

FD, 9E, d
00 rrr 101 35 DD, 35, d FD, 35, d

Mengurangi dengan carry isi akumulator dengan data (Iy + d)


Mengurangi satu isi register 8 bit Mengurangi satu data pada (HL) Mengurangi satu data pada (Ix+d) Mengurangi satu data pada (Iy+d) 13

INSTRUKSI PENAMBAHAN (16 Bit)


N o
1 2 3 4 Mnemonic ADD HL,ss ADD Ix, pp ADD Iy, rr INC ss

Opcode + Operands
00 ss 1001 DD, 00 pp 1001 FD, 00 rr 1001 00 ss 0011

Keterangan
Menambahkan isi HL dengan isi reg. 16 bit. (ss bisa BC, DE, HL, SP) Menambahkan isi IX dgn isi reg. 16 bit. (pp bisa BC, DE, Ix, SP) Menambahkan isi IY dgn isi reg. 16 bit. (rr bisa BC, DE, Iy, SP) Menambahkan satu isi register 16 bit Menambahkan satu isi register Ix Menambahkan satu isi register Iy Menambahkan dengan carry isi HL dengan isi reg. 16 bit

5
6 7

INC Ix
INC Iy ADC HL,ss

DD, 23
FD, 23 ED, 01 ss 0010

INSTRUKSI PENGURANGAN (16 Bit)

N o 1 2 3 4

Mnemonic SBC HL, ss DEC ss DEC Ix DEC Iy

Opcode + Operands ED, 01 ss 0010 00 ss 1011 DD, 2B FD, 2B

Keterangan
Mengurangi isi HL dengan data dari register 16 bit. (ss bisa berupa BC, DE, HL, SP) Mengurangi satu isi register 16 bit Mengurangi satu isi Ix Mengurangi satu isi Iy

INSTRUKSI ARITMETIKA
Latihan :
Buat Flowchartnya, tentukan kode operasi dari setiap intruksi, dan tentukan isi akumulator di akhir program ! 1. Isi Akumulator XYH. Tambahkan ke Akumulator data 16H. Incrementkan regiter A. Jumlahkan dengan carry isi Akumulator dengan data XYH.

2.

Isi BC dengan data 1XY5 H. Jumlahkan dengan carry isi Akumulator dengan isi reg. C. Memory Address 1XYAH berisi data 87H. Tambahkan isi Akumulator dengan isi dari memory address 1XYAH.
Isi Reg. C adalah FDH. Pindahkan isi Reg. C ke Akumulator. DE berisi 1XYB H. Kurangkan isi Akumulator dengan data XYH. Kurangkan dengan carry isi Akumulator dengan data dari reg. D. Isi register B dengan data XY H. Isi akumulator dengan data 67H. Decrementkan isi regiater B. Jumlahkan isi register B dengan akumulator. Isi regiter H dengan data 98H, regiater L dengan data XYH. Isi register BC dengan data 23XYH. Incrementkan register BC. Kurangkan dengan carry isi register HL dengan data dari register BC.

3.

4. 5.

Anda mungkin juga menyukai