13
cepat dan efisien dalam memori atau antara memori dan IO. Demikian juga instruksi mikroprosesor Zilog Z80 dibagi ke dalam kategori
pemuatan 8-bit, pemuatan 16-bit, pertukaran, transfer blok, pencarian, operasi logika dan aritmatika 8-bit, kontrol CPU Perputaran rotasi dan pergeseran
shift, operasi set, reset dan tes bit, lompatan, pemanggilan call, kembali return dan restart, serta Operasi masukan dan keluaran.
Berikut merupakan penjelasan setiap instruksi yang dapat dioperasionalkan pada mikroprosesor Z80, meliputi deskripsi fungsi instruksi, op-code, dampak opeasi
terhadap flag dan state yang diperlukan untuk pelaksanaan sebuah instruksi tersebut.
1. Instruksi Transfer Data Z80.
Instruksi transfer data merupakan instruksi yang digunakan oleh mikroprosesor Z80 untuk memindahkan data dari satu register ke register lainnya, dari satu
register ke suatu lokasi memori atau memindahkan data dari satu lokasi memori ke lokasi memori yang lain atau dari memori ke register.
Untuk instruksi transfer ini meliputi instruksi EX, EXX, LD, LDD, LDDR, LDI, LDIR, POP, PUSH.
a. Instruksi EX EX DE,HL
Operasi
pertukaran 16-bit antara isi register DE dan HL.
Op Code 11101011
T State 4
EX AF,AF Operasi
pertukaran 16-bit antara isi register AF dan AF.
14
Op Code 00001000
T State 4
EX SP,HL Operasi
pertukaran SP dengan L, dan SP+1 dengan H.
Op Code 11100011
T State 19
EX SP,reg
index
Operasi
pertukaran SP dengan LSB dari reg
index
, dan SP+1 dengan MSB dari reg
index
.
Op Code
[reg
index
] : 11100011
Register Bit
IX 11011101
IY 11111101
T State 23
b. Instruksi EXX EXX
Operasi
pertukaran 16-bit isi dari BC, DE, dan HL dengan BC, DE, dan HL.
Op Code 11011001
T State 4
15
c. Instruksi LD LD reg
8
D,reg
8
S Operasi
Isi dari register reg
8
S disimpan ke dalam reg
8
D.
Op Code
01[reg
8
D][reg
8
S]
Register Bit
A 111
B 000
C 001
D 010
E 011
H 100
L 101
HL 110
T State 4 atau 7 HL
LD reg
8
,imm
8
Operasi
Menyimpan nilai immediate ke register reg
8
.
Op Code
00[reg
8
]110 : [imm
8
]
Register Bit
A 111
B 000
C 001
D 010
E 011
H 100
16
L 101
HL 110
T State
7 atau 10 HL
LD reg
8
,reg
index
+ ofs
8
Operasi
Menyimpan nilai ditunjuk oleh reg
index
ditambah ofs
8
ke dalam reg
8
.
Op Code
[reg
index
] : 01[reg
8
]110 : [ofs
8
]
Register Bit
IX 11011101
IY 11111101
Register Bit
A 111
B 000
C 001
D 010
E 011
H 100
L 101
T State 19
17
LD reg
index
+ ofs
8
,reg
8
Operasi
Menyimpan reg
8
ke lokasi memori yang ditunjuk oleh reg
index
ditambah ofs
8
.
Op Code
reg
index
: 01110[reg
8
] : [ofs
8
]
Register Bit
IX 11011101
IY 11111101
Register Bit
A 111
B 000
C 001
D 010
E 011
H 100
L 101
T State 19
LD reg
index
+ ofs
8
, imm
8
Operasi
Menyimpan data immediate ke lokasi memori yang ditunjuk oleh reg
index
ditambah ofs
8
.
Op Code
[reg
index
] : 00110110 : [ofs
8
] : [imm
8
]
Register Bit
IX 11011101
IY 11111101
T State 19
18
LD A,reg
16
Operasi
Menyimpan isi memori yang ditunjuk oleh reg
16
ke dalam A.
Op Code
000[reg
16
]1010
Register Bit
BC DE
1
T State 7
LD A,imm
16
Operasi Menyimpan isi memori yang ditunjuk oleh imm
16
ke dalam A.
Op Code 00111010 : [imm
LSB
] : [imm
MSB
]
T State 13
LD reg
16
,A
Operasi
Menyimpan A ke dalam memori yang ditunjuk oleh reg
16
.
Register Bit
BC DE
1
Op Code 000[reg
16
]0010
T State 7
LD imm
16
,A Operasi
Menyimpan A ke dalam memori yang ditunjuk oleh imm
16
.
Op Code
00110010 : [imm
LSB
] : [imm
MSB
]
T State
13
19
LD A,{ I | R } Operasi
Menyimpan isi register I atau R ke dalam A
Op Code
11101101 : 0101[reg]111
Register Bit
I R
1
Flag
S Z berubah sesuai yang diinginkan ditentukan. H
N di-reset.
PV pegang
IFF2. C tidak berubah.
T State 9
LD { I | R },A Operasi
Menyimpan nilai A ke dalam register I atau R.
Op Code
11101101 : 0100[reg]111
Register Bit
I R
1
T State
9
LD reg
16
,imm
16
Operasi Menyimpan data immediate ke dalam register reg
16
.
Op Code
00[reg
16
]0001 : [imm
LSB
] : [imm
MSB
]
Register Bit
BC 00
DE 01
20
HL 10
SP 11
T State
10
LD reg
index
,imm
16
Operasi Menyimpan data immediate ke dalam register reg
index
Op Code
[reg
index
] : 00100001 : [imm
LSB
] : [imm
MSB
]
Register Bit
IX 11011101
IY 11111101
T State 14
LD HL,imm
16
Operasi
Menyimpan isi memori yang ditunjuk oleh imm
16
ke dalam HL.
Op Code
00101010 : [imm
LSB
] : [imm
MSB
]
T State 16
LD reg
16
,imm
16
Operasi
Menyimpan isi memori yang ditunjuk oleh imm
16
ke dalam register reg
16
.
Op Code
11101101 : 01[reg
16
]1011 : [imm
LSB
] : [imm
MSB
]
Register Bit
BC 00
DE 01
HL see Undocumented 10 SP
11
21
T State 20
LD reg
index
,imm
16
Operasi
Menyimpan isi memori yang ditunjuk oleh imm
16
ke dalam index register reg
index
.
Op Code
[reg
index
] : 00101010 : [imm
LSB
] : [imm
MSB
]
Register Bit
IX 11011101
IY 11111101
T State
20
LD imm
16
,HL Operasi
Menyimpan isi HL ke dalam memori yang ditunjuk oleh imm
16
.
Op Code 00100010 : [imm
LSB
] : [imm
MSB
]
T State 16
LD imm
16
,reg
16
Operasi
Menyimpan isi register reg
16
ke dalam memori yang ditunjuk oleh imm
16
.
Op Code
11101101 : 01[reg
16
]0011 : [imm
LSB
] : [imm
MSB
]
Register Bit
BC 00
DE 01
HL 10
SP 11
22
T State 20
LD imm
16
,reg
index
Operasi
Menyimpan isi index register reg
index
ke dalam meori yang ditunjuk oleh imm
16
.
Op Code
[reg
index
] : 00100010 : [imm
LSB
] : [imm
MSB
]
Register Bit
IX 11011101
IY 11111101
T State
20
LD SP,HL Operasi
Menyimpan isi HL ke dalam SP
Op Code 11111001
T State 6
LD SP,reg
index
Operasi Menyimpan isi index register reg
index
ke dalam SP.
Op Code
[reg
index
] : 11111001
Register Bit
IX 11011101
IY 11111101
T State 10
23
d. Instruksi LDD LDD