Setiap mikroprosesor selalu dirancang dan dilengkapi dengan perangkat instruksi. Bentuk perangkat instruksi masing-masing mikroprosesor bergantung jenis arsitektur yang digunakan. Arsitektur mikroprosesor ada tiga jenis yaitu CISC, RIS, dan Super Skalar.
INSTRUKSI MIKROPROSESOR ZILOG Z-80CPU
- Mikroprosesor Zilog Z-80 CPU adalah salah satu jenis mikroprosesor yang menggunakan arsitektur CISC.
- Jumlah instruksi Z-80 CPU cukup banyak yaitu sekitar 141 jenis.
INSTRUKSI MIKROPROSESOR ZILOG Z-80CPU
Instruksi Z-80 CPU dapat digolongkan menjadi 13 kelompok yaitu:
- Instruksi Transfer Data 8 bit
- Instruksi Transfer Data 16 bit
- Instruksi Pertukaran Data
- Instruksi Pelacakan/Search Data
- Instruksi Aritmetika dan Logika 8 bit
- Instruksi Aritmetika Tujuan Umum dan Kendali CPU
- Instruksi Aritmetika 16 bit
- Instruksi Putar dan Geser
- Instruksi Manipulasi bit
- Instruksi Jump
- Instruksi Call dan Return
- Instruksi RESTART
- Instruksi Input dan Output
Bentuk umum transfer data pada Z-80 CPU adalah seperti gambar di bawah ini :
- Sebagai contoh instruksi LD A, B menunjukkan perintah untuk meng-copy data yang ada di Register B ke Register A.
- Dalam hal ini Register A berfungsi sebagai destinasi dan Register B berfungsi sebagai
Source atau asal/sumber data.
Untuk lebih jelasnya mari kita lihat contoh instruksi mikroprosesor di bawah ini.
Instruksi Transfer Data 8 bit
Transfer Data 8 bit dapat terjadi diantara:
- Register Ke Register
- Memori Ke Register
- Data Immediate Ke Register
- Register Ke Memori
- Memori Ke Memori
- Data Immediate Ke Memori
Contoh Instruksi Transfer Data dari Register ke Register :
Contoh Instruksi Transfer Data dari Memori ke Register :
Contoh Transfer data Immediate 8 bit ke Register
Contoh Transfer data 8 bit dari Register ke Memori :
Contoh Transfer data 8 bit dari Memori ke Memori :
Contoh Transfer data Immediate 8 bit ke Memori :
Instruksi Transfer Data 16 bit
Transfer data 16 bit adalah transfer data dengan kapasitas lebih besar dua kali lipat dari transfer data 8 bit. Transfer data 16 bit memiliki lima kemungkinan yaitu:
- Register ke Register,
- Register ke Memori,
- Data Immediate ke Register
- Memori ke Register,
- Memori ke Memori
Contoh Transfer data 16 bit dari Register ke Register :
Contoh Transfer data 16 bit dari Memori ke Register:
Contoh Transfer data Immediate 16 bit ke Register:
Contoh Transfer data 16 bit dari Register ke Memori :
Contoh Transfer data 16 bit dari Memori ke Memori :
Instruksi Pertukaran Data
Contoh Pertukaran Data 16 bit dari Memori ke Memori :
Instruksi Pelacakan/Search Data
Contoh Pelacakan/Search Data Register dan Memori :
Instruksi Aritmetika dan Logika 8 bit
Contoh Perintah Penambahan :
Contoh Perintah Pengurangan :
Instruksi ADC (ADD With Carry) :
Contoh Instruksi SBC (Sub With Carry):
Contoh Instruksi INC (Increment) :
Contoh Instruksi DEC (Decrement) :
Contoh Instruksi LOGIKA AND, OR, dan XOR :
Instruksi Aritmetika Tujuan Umum dan Kendali CPU
Dalam operasi aritmetika disediakan beberapa instruksi khusus yaitu :
- DAA mnemonic dari Decimal Adjust Accumulator
- CPL mnemonic dari Complement Accumulator (Komplemen 1)
- NEG mnemonic dari Negate Accumulator (Komplemen 2)
Contoh Instruksi CP (Compare):
Instruksi Aritmetika 16 bit
Sama seperti Aritmetika 8 bit, tapi operasi yang digunakan pada Register-register 16 bit.
Instruksi Putar dan Geser
Contoh Instruksi Rotate Left Circular (RLC) :
Contoh Instruksi Rotate Right Circular (RRC) :
Contoh Instruksi Rotate Left (RL) :
Contoh Instruksi Rotate Right (RR):
Contoh Instruksi Shift Left Arithmetic (SLA) :
Contoh Instruksi Shift Right Logical (SRL) :
Instruksi Manipulasi bit
Contoh Instruksi Manipulasi Bit :
Instruksi Jump
Dalam mikroprosesor Zilog Z-80 CPU instruksi-instruksi pencabangan mengguna kan instruksi JUMP. Instruksi JUMP membuat mikroprosesor menjadi perangkat yang sangat ampuh. Instruksi JUMP dapat dikategorikan menjadi empat kategori yaitu :
- JUMP bersyarat
- JUMP tanpa syarat
- JUMP absolut
- JUMP relatif
Perintah Jump Bersyarat :
JP NZ, nn JR NZ, n DJNZ, n JP Z, nn JR Z, n JP NC, nn JR NC, n JP C, nn JR C, n JPPO, nn JPPE, nn JPP, nn JPM, nn
Perintah JUMP Tanpa Syarat :
JP
JR
Perintah JUMP ABSOLUT TANPA SYARAT :
JP nn
Perintah JUMP RELATIF TANPA SYARAT :
JR e
Di samping Jump bersyarat masih ada tiga jenis Jump lainnya yaitu Jump Absolut berbasis register HL, IX, dan IY dengan mnemonic :
JP (HL)
JP (IX)
JP (IY)
Instruksi Call dan Return
Instruksi CALL dan RET ada dua jenis yaitu :
- CALL tanpa Syarat
- CALL bersyarat
- RET tanpa Syarat
- RET bersyarat
Perintah CALL bersyarat :
CALL C,nn CALL M,nn CALL NC,nn CALL NZ,nn CALL Z,nn CALL P,nn CALL PE,nn CALL PO,nn
Perintah CALL tanpa syarat :
CALL nn
Perintah RET bersyarat :
RET C RET M RET NC RET NZ RET Z RET P RET PE RET PO
Di samping itu ada dua perintah RETURN lainnya yaitu :
RETI : Return from Interrupt
RETN1 : Return from Non Maskable Interrupt
Perintah RETURN tanpa Syarat :
RET
Instruksi RESTART
Perintah Restart alamat yang dipanggil sudah tertentu yaitu :
RST 00h : memanggil alamat 0000h
RST 08h : memanggil alamat 0008h
RST 10h : memanggil alamat 0010h
RST 18h : memanggil alamat 0018h
RST 20h : memanggil alamat 0020h
RST 28h : memanggil alamat 0028h
RST 30h : memanggil alamat 0030h
RST 38h : memanggil alamat 0038h
Instruksi Input dan Output
Pengalamatan I/O dapat menggunakan pengalamat langsung (direct) atau tidak langsung (indirect).
IN A,(41) : Masukan isi port B ke reg A
OUT (40),A : Tampilkan data reg A di port A