Anda di halaman 1dari 20

101 

SISTEM MIKROPROSESOR dan MIKROKONTROLER

BAB 6
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
INSTRUKSI MIKROPROSESOR
Setiap mikroprosesor selalu dirancang dan dilengkapi dengan perangkat
instruksi. Bentuk perangkat instruksi masing-masing mikroprosesor bergantung
jenis arsitektur yang digunakan. Seperti telah dibahas dalam Bab 2 arsitektur
mikroprosesor ada tiga jenis yaitu CISC, RIS, dan Super Skalar. Dalam Bab 6
ini diuraikan arsitektur software instruksi mikroprosesor Zilog Z-80 CPU.
Kata kunci: set instruksi, CISC

Mikroprosesor Zilog Z-80 CPU adalah 134 perintah LOAD. Disamping itu ada 6
salah satu jenis mikroprosesor yang jenis perintah EXCHANGE yang disingkat
menggunakan arsitektur CISC. Jumlah dengan EX, EXX. Mikroprosesor Z-80 CPU
instruksi Z-80 CPU cukup banyak yaitu juga memiliki 12 jenis perintah PUSH dan
sekitar 141 jenis. Instruksi Z-80 CPU dapat POP yang digunakan untuk transfer data
digolongkan menjadi 13 kelompok yaitu: dalam operasi stack.

™ Instruksi Transfer Data 8 bit Data dapat ditransfer dalam 8 bit atau 16
™ Instruksi Transfer Data 16 bit
bit. Perintah transfer data memuat dua
™ Instruksi Pertukaran Data
™ Instruksi Pelacakan/Search Data operand yaitu operand pertama
™ Instruksi Aritmetika dan Logika 8 bit
menunjukkan lokasi dimana data akan
™ Instruksi Aritmetika Tujuan Umum
dan Kendali CPU disimpan, apakah dalam register atau di
™ Instruksi Aritmetika 16 bit
memori. Operand pertama Ini disebut
™ Instruksi Putar dan Geser
™ Instruksi Manipulasi bit Destinasi. Operand yang kedua
™ Instruksi Jump
menunjukkan lokasi asli atau asal sebuah
™ Instruksi Call dan Return
™ Instruksi RESTART data. Operand kedua ini disebut Source.
™ Instruksi Input dan Output
Operand dapat berupa register, memori,
atau data immediate. Lebar data yang
1. Instruksi Transfer Data ditransfer dapat berupa data 8 bit atau data

Operasi transfer data atau lebih tepat 16 bit. Bentuk umum transfer data pada

disebut sebagai operasi copy data pada Z-80 CPU adalah seperti Gambar 6.1.

mikroprosesor Z-80 CPU sebagian besar


LD (operand destinasi), (operand Source)
dijalankan menggunakan perintah LD
singkatan dari LOAD. Z-80 CPU memiliki Gambar 6.1. Bentuk umum perintah transfer
data

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
102  SISTEM MIKROPROSESOR dan MIKROKONTROLER

Sebagai contoh instruksi LD A, B No Assembly Operasi Keterangan


menunjukkan perintah untuk meng-copy isi register A
1. LD A,B A Å B dengan data
data yang ada di Register B ke Register A. dari register B
isi register B
Dalam hal ini Register A berfungsi sebagai 2. LD B,C B Å C dengan data
dari register C
destinasi dan Register B berfungsi sebagai isi register B
3. LD B,A B Å A dengan data
Source atau asal/sumber data. dari register A
isi register B
4. LD B,E B Å E dengan data
1.1. Transfer Data 8 Bit dari register E

Instruksi transfer data 8 bit dapat terjadi Gambar 6.2. Contoh-contoh transfer data 8
diantara: bit register ke register

Contoh kasus nomor 1 Gambar 6.2


• Register Ke Register
• Memori Ke Register menunjukkan transfer data 8 bit dari register
• Data Immediate Ke Register B ke register A. Data yang ada di register B
• Register Ke Memori
• Memori Ke Memori di-copy-kan ker egister A. Dalam kasus ini
• Data Immediate Ke Memori register B sebagai source dan register A
sebagai destinasi. Pada kasus ke 2 transfer
1.1.1. Transfer data 8 bit dari
Register ke Register data 8 bit terjadi dari register C ke register B.
Data yang ada di register C di-copy-kan ke
Transfer data 8 bit dari register ke
register B. Dalam kasus ini register C
register adalah proses meng-copy data dari
sebagai source dan register B sebagai
sumber atau source data ke tujuan tempat
destinasi. Pada kasus ke 3 transfer data 8
simpan data yang baru. Keduanya baik
bit terjadi dari register A ke register B. Data
source dan destinasi adalah register 8 bit.
yang ada di register A di-copy-kan ke
Dalam kasus ini ukuran data yang di-copy-
register B. Dalam kasus ini register A
kan adalah 8 bit dan register bekerja baik
sebagai source dan register B sebagai
sebagai sumber dan tujuan sama-sama
destinasi. Pada kasus ke 4 transfer data 8
register 8 bit. Transfer data 8 bit dari register
bit terjadi dari register E ke register B. Data
ke register dapat terjadi diantara register 8
yang ada di register E di-copy-kan ke
bit yaitu register A,B,C,D,E,H,L, dan I.
register B. Dalam kasus ini register E
Tranfer data itu bisa terjadi diantara register
sebagai source dan register B sebagai
A dengan register B, diantara register A
destinasi. Bentuk-bentuk perintah transfer
dengan register C dan sebagainya. Untuk
data 8 bit register ke register selengkapnya
lebih memahami proses transfer data 8 bit
dapat dibaca dalam buku instruction set
dari register ke register perhatikan contoh
mikroprosesor Z-80 CPU.
kasus Gambar 6.2.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
103  SISTEM MIKROPROSESOR dan MIKROKONTROLER

1.1.2. Transfer data 8 bit dari No Assembly Operasi Keterangan


Memori ke Register isi register A
dengan data dari
Transfer data 8 bit dari memori ke 1. LD A,(1902) A Å (1902) memori lokasi
alamat 1902
register adalah transfer data atau copy data (RWM)

8 bit dari salah satu lokasi memori ke salah isi register A


dengan data dari
satu register 8 bit. Memori bertindak sebagai 2. LD A,(0066) A Å (0066) memori lokasi
alamat 0066
source dan register bertindak sebagai (ROM)

destinasi. Satu lokasi memori menyimpan isi register B


dengan data dari
data 8bit. Jadi untuk melakukan transfer memori lokasi
3. LD B, (HL) B Å (HL) alamat sama
data 8 bit dari memori ke register cukup satu dengan isi
register HL
lokasi memori.
isi register D
dengan data dari
Register 8 bit yang bekerja sebagai memori lokasi
4. LD D, (IX+02) D Å(IX+02) alamat sama
destinasi adalah register A, B, C,D,dan E. dengan isi
register IX+02
Untuk menjalankan operasi transfer data 8
bit dari memori ke register diperlukan Gambar 6.3. Contoh-contoh transfer data 8
bit memori ke register
persyaratan bahwa harus ada mekanisme
pemegangan alamat memori. Pemegangan Dari Gambar 6.3. pada contoh kasus 1
alamat memori biasanya menggunakan terjadi proses copy data 8 bit dari memori
register atau alamat langsung. Dalam Z-80 lokasi atau alamat 1902 ke register A.
CPU alamat memori ada dua byte atau 16 Memori alamat 1902 berfungsi sebagai
bit sehingga pemegangan alamat memori source dan register A berfungsi sebagai
menggunakan salah satu register 16 bit destinasi. Proses ini memberikan hasil
yaitu register IX, IY, atau HL. Register IX, IY, register A berisi data 8 bit dari memori
atau HL berfungsi sebagai pemegang alamat 1902. Untuk kasus nomor 3 regsister
alamat lokasi memori tempat data source. B akan dimuati data 8 bit dari memori yang
alamatnya dicatat oleh register HL. Misalnya
Transfer data dari memori dapat terjadi
jika regsister HL berisi 1900 maka data dari
dari lokasi EPROM atau dari lokasi RWM
memori pada alamat 1900 akan di-copy-kan
karena kedua memori ini memiliki sifat baca.
ke register B. Untuk kasus nomor 4 alamat
Untuk operasi transfer data memori
memori sama dengan isi register IX+02. Jika
keregister ada tanda khusus “( ) “ sebagai
register IX berisi 1900 maka alamat yang
penanda operasi memori. Untuk memahami
diakses adalah 1900+02=1902.
operasi ini lihat Gambar 6.3.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
104  SISTEM MIKROPROSESOR dan MIKROKONTROLER

1.1.3. Transfer data Immediate 8 1.1.4. Transfer data 8 bit dari


bit ke Register Register ke Memori
Data immediate adalah data yang Transfer data dari register ke memori
dibangkitkan sendiri bersamaan dengan mencakup persyaratan bahwa harus ada
perintah program.Transfer data immediate 8 cara atau mekanisme pemegangan alamat
bit ke register dapat terjadi terhadap memori. Dalam Z-80 CPU alamat memori
register A, B, C, D, E, H, dan L. Untuk ada dua byte atau 16 bit seperti telah
memahami perintah-perintah transfer data dijelaskansebelumnya.
immediate 8 bit pelajari contoh Gambar 6.4.
Transfer data dari register ke memori
No Assembly Operasi Keterangan dapat terjadi hanya ke lokasi RWM karena
isi register A ROM tidak bisa diisi data baru. Masalah ini
1. LD A,19 A Å 19h dengan data
19h perlu menjadi perhatian khusus karena
isi register A
2. LD A,00 A Å 00h dengan data kesalahan penetapan sasaran memori
00h
isi register B berarti kegagalan proses perintah transfer
3. LD B,3F B Å 3Fh dengan data
3Fh data ke lokasi memori. Lokasi memori ROM
isi register C
4. LD C,FF C Å FFh dengan data
tidak bisa dijadikan sasaran atau destinasi
FFh perintah transfer data register ke memori.
Gambar 6.4. Contoh-contoh transfer data Lokasi memori yang bisa dijadikan sasaran
immediate 8 bit ke register
adalah RWM. Untuk mengetahui lokasi
Dari Gambar 6.4. kasus nomor 1 register memori ROM dan RWM diperlukan peta
A sebagai destinasi akan terisi data 19H. memori. Operasi transfer data dari register
Demikian juga untuk kasus nomor 2 register ke memori menggunakan tanda “( ) “
A sebagai destinasi akan termuati data 00H. sebagai tanda operasi memori. Pemegang
Pada kasus nomor 3 register B sebagai alamat lokasi memori menggunakan salah
destinasi akan termuati data 3FH dan pada satu register 16 bit atau angka alamat 16 bit.
kasus nomor 4 register C sebagai destinasi
Transfer data 8 bit dari register ke
akan terisi data FFH. Data immediate 19H,
memori merupakan kebalikan dari transfer
00H,3FH,dan FFH adalah data 8 bit yang
data 8 bit dari memori ke register seperti
dibangkitkan bersamaan dengan perintah
telah diuraikan sebelumnya. Memori sebagai
program. Transfer data immediate sering
destinasi sering diperlukan untuk
digunakan dalam program terutama untuk
menyimpan data-data yang masih
membangkitkan data segera (immediate).
diperlukan sementara register yang terbatas
jumlahnya harus dikosongkan untuk operasi

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
105  SISTEM MIKROPROSESOR dan MIKROKONTROLER

berikutnya. Cara kerja transfer data 8 bit 1.1.5. Transfer data 8 bit dari
dari register ke memori dapat dijelaskan Memori ke Memori
menggunakan Gambar 6.5. Transfer data 8 dari memori ke memori
terjadi dalam unit memori diluar CPU. Data 8
No Assembly Operasi Keterangan
bit dari satu lokasi memori dicopy kan
isi memori lokasi
LD(1902), A (1902) Å A alamat 1902 kelokasi memori lainnya. Transfer data dari
1. (RWM) dengan
data dari register memori ke memori memerlukan persyaratan
A
bahwa harus ada mekanisme pemegangan
isi memori lokasi
LD (HL), B (HL) Å B alamat sama alamat memori. Seperti sudah dibahas
dengan isi
2.
register HL
sebelumnya dalam Z-80 CPU alamat
dengan data dari memori ada dua byte atau 16 bit.
register B
isi memori lokasi Transfer data dari memori ke memori
LD (IX+02), D (IX+02) Å D alamat sama
dapat terjadi diantara semua lokasi RWM
dengan isi
3.
register IX+ 02 dan dari ROM ke RWM. Transfer data ke
dengan data dari
register D ROM tidak bisa dilakukan karena ROM

Gambar 6.5. Contoh-contoh transfer data 8 tidak bisa diisi data baru. Hal harus menjadi
bit register ke memori perhatian khusus agar tidak terjadi
kegagalan proses. Untuk operasi transfer
Dari Gambar 6.5. kasus nomor 1
data dari memori ke memori ada tanda “( ) “
perintah LD (1902), A akan memberikan
sebagai penanda operasi memori. Untuk
proses meng-copy data 8 bit pada register A
menghindari kegagalan perintah maka peta
ke memori alamat 1902. Alamat 1902
memori sebuah mikrokomputer sangat
adalah alamat RWM dalam mikrokomputer.
penting dan diperlukan. Dengan peta
Sedangkan perintah LD(HL),B menunjukkan
memori diperoleh data lokasi dan luasan
proses copy data yang ada di register B ke
memori RWM dan ROM secara pasti.
memori yang alamatnya dicatat oleh register
Operasi transfer data dari memori ke
HL. Dalam kasus ini jika HL berisi data 1900
memori banyak sekali digunakan untuk
makan data yang ada pada register B akan
memindahkan data atau program dari suatu
di-copy-kan ke memori alamat 1900. Untuk
lokasi memori ke lokasi lain. Disamping juga
kasus nomor 3 sedikit berbeda karena
untuk membuat back-up data dalam suatu
register IX menggunakan indeks. Perintah
lokasi memori memerlukan transfer data dari
LD(IX+02),D bekerja meng-copy-kan data
memori ke memori. Untuk memahami cara
yang ada di register D ke memori alamat
kerja transfer data dari memori ke memori
IX+02.
pelajari Gambar 6.6.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
106  SISTEM MIKROPROSESOR dan MIKROKONTROLER

No Assembly Operasi Keterangan 1901. Sedangkan register BC berkurang

LDI (DE) Å (HL) Transfer 1 byte data satu. Untuk kasus nomor 2 LDIR adalah
dari lokasi memori
DE Å DE+1 yang alamatnya singkatan dari Load Increament Repeat.
1. dicatat oleh HL ke
HL Å HL+1 lokasi memori yang Proses yang terjadi sama dengan LDI hanya
alamatnya dicatat
BC Å BC-1 oleh DE proses ini berulang sebanyak nilai register
Transfer 1 byte data BC. Karena register BC adalah register 16
LDIR (DE) Å (HL)
dari lokasi memori
DE Å DE+1 yang alamatnya
bit maka kemungkinan jumlah pengulangan-
dicatat oleh HL ke
HL Å HL+1 lokasi memori yang nya adalah diantara 1 sampai dengan 65536
2. alamatnya dicatat
BC Å BC-1 kali.
oleh DE , Diulang
Repeat until BC sampai isi reg BC
sama dengan nol
=0
(alamat naik) 1.1.6. Transfer data Immediate 8
Transfer 1 byte data
bit ke Memori
LDD (DE) Å (HL)
dari lokasi memori
DE Å DE-1 yang alamatnya Transfer data immediate ke memori
3. dicatat oleh HL ke
HL Å HL-1 lokasi memori yang menunjukkan transfer data langsung atau
alamatnya dicatat
BC Å BC-1 oleh DE
segera dari program dengan tujuan/destinasi
Transfer 1 byte data memori. Kembali hal penting yang harus
LDDR (DE) Å (HL)
dari lokasi memori
DE Å DE-1 yang alamatnya
diperhatikan adalah lokasi memori sebagai
dicatat oleh HL ke
HL Å HL-1 lokasi memori yang destinasi adalah RWM. Untuk lebih
4.
alamatnya dicatat mendalami perintah ini pelajari Gambar 6.7.
BC Å BC-1 oleh DE , Diulang
Repeat until BC sampai isi reg BC berkut ini.
=0 sama dengan nol.

Gambar 6.6. Contoh-contoh transfer data 8


bit memori ke memori No Assembly Operasi Keterangan
isi memori lokasi
Dari Gambar 6.6 kasus nomor LDI LD (HL), FF (HL) Å FF alamat sama
dengan isi
adalah mnemonik dari Load Increament. 1. register HL
Dalam kolom operasi dapat dibaca terjadi dengan data
FFh
proses transfer data dari memori yang
isi memori lokasi
alamatnya dicatat oleh HL ke momori yang LD (IX+02), 64 (IX+02) Å 64 alamat sama
dengan isi
2.
alamatnya dicatat oleh DE. Misalnya jika HL register IX+ 02
dengan data 64h
berisi 1900H dan DE berisi 1A00H maka
isi memori lokasi
akan terjadi transfer data 8 bit dari alamat LD (IY+02), 19 (IY+02) Å 19 alamat sama
3. dengan isi
1900H ke alamat 1A00H. Bersamaan register IY+ 02
dengan proses transfer data ini selanjutnya dengan data 19h

isi register DE bertambah satu menjadi 1A01 Gambar 6.7. Contoh-contoh transfer data 8
bit immediate ke memori
dan isi register HL bertambah satu menjadi

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
107  SISTEM MIKROPROSESOR dan MIKROKONTROLER

Contoh Kasus 1

Berikut ini adalah contoh kasus susunan beberapa perintah transfer data. Identifikasi
untuk setiap perintah tergolong kategori transfer data 8 bit yang mana diantara enam
jenis perintah transfer data yaitu (1) Register Ke Register, (2) Memori Ke Register, (3)
Data Immediate Ke Register, (4) Register Ke Memori, (5) Memori Ke Memori, atau (6)
Data Immediate Ke Memori. Dan apa hasil dari masing-masing perintah tersebut.
Uraikan proses program Gambar 6.8. di bawah langkah demi langkah sehingga
diperoleh hasil seperti Gambar 6.9.

No. Address Kode operasi Assembly Keterangan Hasil

1. 1800 3E 93 LD A , 93H A Å 93H A=93


2. 1802 47 LD B , A B Å A B=93
3. 1803 48 LD C , B C Å B C=93
4. 1804 51 LD D , C D Å C D=93
5. 1805 5A LD E , D E Å D E=93
6. 1806 26 19 LD H , 19H H Å 19H H=19
7. 1808 2E 90 LD L , 90H L Å 90H L=90
8. 180A 36 64 LD (HL) , 64H (HL) Å 64H (1990)=64
9. 180C 46 LD B , (HL) B Å (HL) B=64
10. 180D 3A 90 19 LD A , (1900) A Å (1900) A=64
11. 1810 32 91 19 LD (1991) , A (1991) Å A (1991)=64
12. 1813 FF RST 38 STOP

Gambar 6.8. Contoh program sederhana perintah transfer data 8 bit

Jika dieksekusi penuh kasus program di atas maka maka akan diperoleh hasil
seperti Gambar 6.9. berikut.

Reg./Memori A F B C D E H L (1990) (1991)

Data 64 XX 64 93 93 93 19 90 64 64

Gambar 6.9. Hasil program sederhana perintah transfer data 8 bit

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
108  SISTEM MIKROPROSESOR dan MIKROKONTROLER

1.2. Transfer Data 16 Bit No Assembly Operasi Keterangan


Transfer data 16 bit adalah transfer data isi register SP
dengan data
dengan kapasitas lebih besar dua kali lipat 1. LD SP,HL SP Å HL dari register
dari transfer data 8 bit. Transfer data 16 bit HL

memiliki lima kemungkinan yaitu: isi register SP


dengan data
2. LD SP, IX SP Å IX dari register
¾ Register ke Register, IX
¾ Register ke Memori,
¾ Data Immediate ke Register isi register SP
3. LD SP, IY dengan data
¾ Memori ke Register, SP Å IY dari register IY
¾ Memori ke Memori
Gambar 6.10. Contoh-contoh transfer data
16 bit register ke register
Untuk membahas lebih lanjut proses
Dari Gambar 6.10. kasus nomor 1
transfer data 16 bit berikut disajikan contoh-
menjalankan proses meng-copy data pada
contoh dan uraian proses transfer data 16
register HL ke register SP. Register SP
bit.
adalah register stack pointer dengan
1.2.1. Transfer data 16 bit dari kapasitas 16 bit yang bekerja sebagai
Register ke Register destinasi.
Transfer data 16 bit register ke register
1.2.2. Transfer data 16 bit dari
menunjukkan transfer data dimana source
Memori ke Register
dan destinasi sama-sama register. Transfer
Transfer data dari memori ke register
data 16 bit register ke register dapat terjadi
mencakup persyaratan bahwa harus ada
diantara register 16 bit yaitu register SP, HL,
cara atau mekanisme pemegangan alamat
IX, dan IY. Perintah yang digunakan adalah
memori. Dalam Z-80 CPU alamat memori
LD (Load). Gambar 6.10. menunjukkan
ada dua byte atau 16 bit. Pemegang alamat
beberapa contoh transfer data 16 bit register
memori menggunakan salah satu register
ke register. Register 16 bit biasanya
16 bit.
digunakan sebagai pemegang alamat
memori. Register indeks IX dan IY sangat Transfer data dari memori dapat terjadi
efektif digunakan untuk memegang alamat dari lokasi EPROM atau dari lokasi RWM
memori. Disamping untuk memegang karena kedua memori ini memiliki sifat baca.
alamat memori register 16 bit HL dapat Untuk operasi ini ada tanda “( ) “ sebagai
dioperasikan sebagai akumulator operasi tanda operasi memori. Transfer data 16 bit
aritmetika 16 bit. dari memori ke register dapat terjadi
terhadap register IX, IY, BC, DE, HL, SP,

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
109  SISTEM MIKROPROSESOR dan MIKROKONTROLER

dan AF. Perintah yang digunakan adalah Kemudian data pada alamat 0067 sebagai
LOAD dan POP. Gambar 6.11. byte high di-copy-kan ke byte high register
menunjukkan contoh operasi transfer data IY. Hasil akhir register IY berisi data 16 bit
16 bit dari memori ke register. dari memori alamat 0067 dan 0066. Pada
kasus 3 LD BC,(1800) menjalankan proses
No Assembly Operasi Keterangan
transfer data dua kali 8 bit. Data pada
IXH Å (1903) isi register IX
dengan data dari alamat 1800 sebagai byte low di-copy-kan
1. LD IX,(1902) IXL Å (1902) memori lokasi
alamat 1903 dan
ke register C. Kemudian data pada alamat
1902 1801 sebagai byte high di-copy-kan ke
IYH Å (0067) isi register IY
dengan data dari register B. Hasil akhir register BCberisi data
2. LD IY,(0066) IYL Å (0066) memori lokasi
16 bit dari memori alamat 1801 dan 1800.
alamat 0067 dan
0066 Pada kasus 4 perintah POP DE
B Å (1801) isi register BC
dengan data dari
memberikan proses transfer data dari
3. LD BC,(1800) C Å (1800) memori lokasi memori alamat yang dicatat oelh SP ke
alamat 1801 dan
1800 register E dan memori dari alamat SP+1 ke
D Å (SP+1) isi register DE
register D. Bersamaan perintah ini nilai SP
dengan data dari
E Å (SP) memori lokasi yang baru bertambah dua.
4. POP DE alamat sama
SP Å SP+2 dengan isi
register SP+1 Perintah atau instruksi mikroprosesor
dan SP,
banyak yang sulit difahami hanya dengan
Gambar 6.11. Contoh-contoh transfer data
16 bit dari memori ke register mencermati perintah assemblynya. Setiap
perintah atau instruksi harus difahami lebih
Pada Gambar 6.11. dari contoh kasus 1
detail dengan melihat operasi yang terjadi
perintah LD IX,(1902) memberikan proses
dengan memperhatikan kolom operasi.
transfer data dua kali 8 bit. Data pada
Dalam kolom operasi ditunjukkan skema
alamat 1902 sebagai byte low di-copy-kan
proses yang terjadi untuk setiap instruksi.
ke byte low register IX. Kemudian data pada
Setiap instruksi bisa memberikan satu
alamat 1903 sebagai byte high di-copy-kan
proses, dua proses,tiga proses, bahkan ada
ke byte high register IX. Dalam kasus ini
yang empat proses. Disamping itu hal lain
register IX berisi data 16 bit bersala dari
yang perlu dicermati adalah status flag
memori alamat 1903 dan alamat 1902.
sebagai akibat dari setiap perintah. Status
Untuk kasus 2 perintah LD IY,(0066)
ini penting sekali untuk beberapa hal dalam
memberikan proses transfer data dua kali 8
pengambilan keputusan dan pemilihan
bit. Data pada alamat 0066 sebagai byte low
instruksi khusus seperti DAA.
di-copy-kan ke byte low register IY.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
110  SISTEM MIKROPROSESOR dan MIKROKONTROLER

1.2.3. Transfer data Immediate 16 No Assembly Operasi Keterangan


bit ke Register
1. LD BC,1900 BC Å1900 isi register
Transfer data immediate 16 bit ke BC dengan
register adalah pembangkitan data secara data 1900h

langsung ke dalam register melalui data


2. LD DE,1800 DE Å1800 isi register
dalam instruksi. Transfer data immediate 16 DE dengan
data 1800h
bit ke register dapat terjadi terhadap
register BC, DE, HL, SP, IX, dan IY. 3. isi register IX
LD IX, 203F IX Å 203F
Perintah yang digunakan adalah LD (Load). dengan data
203Fh
Transfer data immediate 16 bit ke register
banyak dan sering digunakan pada 4. LD IY, EEFF IY Å EEFF isi register IY
pengembangan program. Untuk memahami dengan data
EEFFh
instruksi transfer data immediate 16 bit ke
register perhatikan Gambar 6.12. Gambar 6.12. Contoh-contoh transfer data
immediate 16 bit ke register
Dari Gambar 6.12. pada kasus 1 instruksi
LD BC,1900 memberikan proses pengisian
register BC dengan data immediate 16 bit 1.2.4. Transfer data 16 bit dari
bernilai 1900H. Data 16 bit 1900H secara Register ke Memori
langsung dibangkitkan di register BC.
Transfer data 16 bit dari register ke
Serupa dengan kasus 1 pada kasus 2
memori adalah transfer data yang
instruksi LD DE,1800 memberikan hasil
melibatkan sebuah register 16 bit dan dua
proses pengisian data 16 bit immediate ke
buah lokasi memori karena setiap lokasi
register DE. Perintah ini memberikan hasil
memori hanya menyimpan 8 bit data.
register DE=1800H. Pada kasus 3 register
Transfer data dari register ke memori
IX diisi data immediate 16 bit 203FH.
memerlukan persyaratan bahwa harus ada
Demikian juga pada kasus 4 menunjukkan
cara atau mekanisme pemegangan alamat
instruksi dengan proses pengisian register
memori. Dalam Z-80 CPU alamat memori
IY dengan data immediate 16 bit EEFFH.
ada dua byte atau 16 bit.
Instruksi-instruksi transfer data immediate
16 bit selengkapnya dapat dilihat dalam Transfer data dari register ke memori
instruction set. Untuk kasus-kasus yang lain dapat terjadi hanya ke lokasi RWM karena
operasinya hampir sama yaitu data 16 yang ROM tidak bisa diisi data baru. Untuk
harus dimasukkan secara langsung. operasi ini ada tanda “( )“ sebagai tanda

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
111  SISTEM MIKROPROSESOR dan MIKROKONTROLER

operasi memori menggunakan salah satu dipasangkan dengan instruksi POP. Kedua
register 16 bit atau angka alamat. perintah ini digunakan pada operasi
pembentukan stack pointer. Sehingga selalu
Transfer data 16 bit dari register ke
berhubungan dengan register SP (Stack
memori dapat terjadi drai register BC, DE,
Pointer). PUSH mendorong data ke memori
HL, IX, IY, dan AF. Perintah yang
sehingga termasuk kategori transfer data 16
digunakan adalah LD (Load) dan PUSH.
bit dari register ke memori. Sedangkan
Untuk memahami perintah transfer data 16
instruksi POP bekerja menarik data 16 bit
bit dari register ke memori perhatikan
dari dua lokasi memori ke register 16 bit.
Gambar 6.13.

Dari Gambar 6.13. untuk kasus 1 No Assembly Operasi Keterangan

instruksi LD(1902),BC menunjukkan 1. LD(1902), BC (1903) Å B Isi memori


alamat 1902
instruksi berhubungan dengan memori (1902) Å C (RWM)
karena ada (1902). Dalam instruksi ini ada dengan data
dari register C
dua proses yang terjadi yaitu proses
dan memori
pertama meng-copy data pada register C ke alamat 1903
memori alamat 1902 dan kedua proses dengan data
register B
meng-copy data pada register B ke memori
2. LD (1800), HL (1801) Å H Isi memori
alamat 1903. Kedua proses transfer data ini alamat 1800
(1800) Å L dengan isi
menghasilkan transfer data 16 bit di dua
register L dan
lokasi memori yaitu alamat 1902 dan 1903.
alamat 1801
Untuk kasus ke dua instruksi LD (1800),HL dengan data
dari register H
melakukan proses isi register H di-copy ke
memori alamat 1801 dan register L di-copy 3. PUSH IX (SP-1) Å IXH Isi memori
alamat sama
ke memori alamat 1800. Hasil akhir adalah (SP-2) Å IXL dengan isi
transfer data 16 bit dari register HL ke SP Å SP-2 register SP-1
dengan data
memori alamat 1800 dan 1801. Pada kasus dari register
ke 3 PUSH IX melakukan tiga proses yaitu IXH dan SP-2
dengan data
memasukan data dari register IX low ke dari register
memori alamat SP-1dan memasukkan data IXL

dari register IX high ke memori alamat SP-2.


Dalam proses ini selanjutnya isi register SP Gambar 6.13. Contoh-contoh transfer data
yang baru SP semula kurang dua. Perintah 16 bit dari register ke memori

PUSH adalah instruksi yang biasa

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
112  SISTEM MIKROPROSESOR dan MIKROKONTROLER

1.2.5 Transfer data 16 bit dari No Assembly Operasi Keterangan


Memori ke Memori 1. LDIR (DE) Å (HL) Transfer 1 byte data
DE Å DE+1 dari lokasi memori
Transfer data 16 bit dari memori ke yang alamatnya
HL Å HL+1 dicatat oleh HL ke
memori merupakan kelompok instruksi yang BC Å BC-1 lokasi memori yang
Repeat until BC alamatnya dicatat
bekerja meng-copy data dari dua lokasi =0 oleh DE , Diulang
sampai isi reg BC
memori source ke dua lokasi memori sama dengan nol
(alamat naik)
destinasi. Transfer data dari memori ke
2. LDDR (DE) Å (HL) Transfer 1 byte data
memori juga membutuhkan persyaratan dari lokasi memori
DE Å DE-1
yang alamatnya
bahwa harus ada mekanisme pemegangan HL Å HL-1 dicatat oleh HL ke
BC Å BC-1 lokasi memori yang
alamat memori. Dalam Z-80 CPU alamat
Repeat until BC alamatnya dicatat
memori ada dua byte atau 16 bit. =0 oleh DE , Diulang
sampai isi reg BC
sama dengan nol
Transfer data dari memori ke memori (alamat turun)

dapat terjadi hanya ke lokasi RWM atau dari Gambar 6.14. Contoh-contoh transfer data
16 bit dari memori ke memori
ROM ke RWM karena ROM tidak bisa diisi
data baru. Untuk operasi ini ada tanda “( ) “ Instruksi LDIR melakukan operasi copy
sebagai tanda operasi memori. Perintah data dari satu lokasi memori yang alamatnya
yang dapat digunakan hanya LDIR (load dicatat oleh register HL ke satu lokasi
increament repeat) dan LDDR (load memori yang alamatnya dicatat oleh
decreament repeat). Dalam hal ini jumlah regsister DE. Selanjutnya terjadi proses
byte data yang dapat ditransfer dua byte penambahan nilai register DE=DE+1,
atau lebih dengan kemampuan maksimum HL=HL+1, dan BC=BC-1. Proses ini akan
64 K byte bergantung isi register BC. berulang hingga isi register BC=0000H.
Dengan demikian sangat jelas jumlah byte
Jenis instruksi LDIR dan LDDR sangat
data yang di-copy bisa diatur dengan seting
baik digunakan untuk memindahkan atau
nilai data pada register BC. Jika diinginkan
meng-copy sejumlah data dari suatu lokasi
ada 10 byte data yang di-copy maka register
memori kelokasi memori lain untuk
BC diisi data 000AH. LDIR bekerja dari
keperluan penggandaan data dari suatu blok
alamat kecil ke alamat besar. Instruksi
memori ke blok lokasi memori lainnya. Untuk
LDDR bekerja hampir sama dengan LDIR.
memahami transfer data 16 bit dari memori
Perbedaannya terletak pada proses LDIR
ke memori dapat digambarkan seperti
dari memori besar ke kecil.
Gambar 6.14.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
113  SISTEM MIKROPROSESOR dan MIKROKONTROLER

Contoh Kasus 2

Gambar 6.15 berikut ini adalah susunan beberapa perintah transfer data 16 bit. Identifikasi
untuk setiap perintah tergolong kategori transfer data 16 bit yang mana dan apa hasil dari
masing-masing perintah tersebut.

No. Address Kode operasi Mnemonic Keterangan


1. 1820 01 63 19 LD BC, 1963H BC Å 1963H
2. 1823 11 64 19 LD DE, 1964H DE Å 1964H
3. 1826 21 95 19 LD HL, 1995H HL Å 1995H
4. 1829 31 91 19 LD SP, 1991H SP Å 1991H
5. 182C ED 43 93 19 LD (1993), BC (1993) Å C
6. (1994) Å B
7. 1830 ED 53 95 19 LD (1995), DE (1995) Å E
8. (1996) Å D
9. 1834 DD 21 00 18 LD IX, 1800H IX Å 1800H
10. 1838 FD 21 13 18 LD IY, 1813H IY Å 1813H
11. 183C DD E5 PUSH IX (SP-2) Å IXL
12. (SP-1) Å IXH
13. SP Å SP-2
14. 183E FD E5 PUSH IY (SP-2) Å IYL
15. (SP-1) Å IYH
16. SP Å SP-2
17. 1840 DD E1 POP IX IXH Å (SP+1)
18. IXL Å (SP)
19. SP Å SP+2
20. 1842 FD E1 POP IY IYH Å (SP+1)
21. IYL Å (SP)
22. SP Å SP+2
23. 1844 FF RST 38 STOP

Gambar 6.15a. Kasus program sederhana perintah transfer data 16 bit

Dengan menguraikan proses program Gambar 6.15a. langkah demi langkah akan diperoleh
hasil-hasil akhir seperti Gambar 6.15b.

Reg./Memori BC DE HL SP IX IY 198D 198E 198F 1990


Data 1963 1964 1995 1991 1800 1813 13 18 00 18

Gambar 6.15b. Hasil kasus program sederhana perintah transfer data 16 bit

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
114  SISTEM MIKROPROSESOR dan MIKROKONTROLER

2. Pertukaran Data pada register utama BC, DE, HL dengan

Pertukaran data berbeda dengan transfer register alternatif BC’, DE’, HL’ maka

data. Pertukaran data bekerja saling meng- instruksinya adalah EXX.

copy diantara dua lokasi register atau


Instruksi EX (SP),HL bekerja melakukan
memori. Pertukaran data dapat dilakukan
pertukaran data 16 bit diantara memori yang
diantara dua register, kelompok pasangan
alamatnya dicatat oleh SP dan SP+1
register dan antara register dengan memori.
dengan register HL. Data yang ada pada
Jadi sangat jelas pertukaran data berbeda
lokasi memori alamat (SP) dipertukarkan
dengan transfer data.
dengan data 8 bit di register L dan data 8 bit

Instruksi yang digunakan untuk di memori alamat (SP+1) dipertukarkan

pertukaran data adalah EX (exchange) dan dengan data 8 bit di register H.

EXX (exchange). Perintah EX dan EXX


Instruksi EX (SP),IX melakukan proses
memiliki perbedaan dimana EX hanya untuk
pertukaran data yang sama dengan proses
satu register 16 bit. Sedangkan perintah
EX (SP),HL. Bedanya terletak pada jenis
EXX bekerja untuk tiga kelompok register 16
registernya yaitu register IX .
bit yaitu diantara register utama dan register
alternatif. Jenis
Assembly Operasi Transfer
Pertukaran data dapat terjadi diantara Data
EX DE, HL DE ÅÆ HL Reg
register DE, HL, BC, BC’, DE’, HL’, memori, Reg
EX AF , AF’ AF ÅÆ AF’
memori dengan register. Pada Gambar 6.17. Reg
EXX BC ÅÆ BC’ Reg
ditunjukkan sejumlah contoh instruksi
DE ÅÆ DE’
pertukaran data. Dari Gambar 6.16. instruksi
HL ÅÆ HL’
EX DE,HL bekerja mempertukarkan data 16
EX (SP) , HL HÅÆ (SP+1)
bit di register HL dengan data 16 bit di Reg
L ÅÆ (SP) Memori
register DE. Hasilnya register HL yang baru
EX (SP) , IX IXHÅÆ(SP+1)
berisi data 16 bit dari register DE dan
IXL ÅÆ (SP)
register DE akan berisi data baru dari
register HL. Gambar 6.16. Contoh-contoh instruksi
pertukaran data
Instruksi EX AF,AF’ bekerja
mempertukarkan isi register utama AF
dengan isi register alternatif AF’. Jika ingin
mempertukarkan seluruh data yang ada

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
115  SISTEM MIKROPROSESOR dan MIKROKONTROLER

Contoh Kasus 3
Untuk melatih dan meningkatkan pemahaman maka analisislah program Gambar 6.17a
berikut ini dan tentukan hasil untuk setiap perintah !!

No. Address Kode operasi Assembly Keterangan HASIL

1. 1800 11 01 01 LD DE , 0101H DE Å 0101H DE = 0101


2. 1803 21 FF FF LD HL , FFFFH HL Å FFFFH HL = FFFF
3. 1806 EB EX DE , HL HL Å Æ DE DE=FFFF ; HL=0101
4. 1807 01 02 02 LD BC , 0202H BC Å 0202H BC = 0202
5. 180A 11 03 03 LD DE , 0303H DE Å 0303H DE = 0303.
6. 180D 78 LD A , B A Å B A = 02
7. 180E 08 EX AF , AF’ AF ÅÆ AF’ AF=XXXX; AF’=02XX
8. 180F 31 90 19 LD SP , 1990H SP Å 1990H SP = 1990
9. 1812 E3 EX (SP) , HL H ÅÆ (SP+1) HL = XXXX
10. L ÅÆ (SP) (1990) = FF; (1991)=FF
11. 1813 DD 21 22 00 LD IX , 0022H IX Å 0022H IX = 0022
12. 1817 31 92 19 LD SP , 1992H SP Å 1992H SP = 1992
13. 181A DD E3 EX (SP) , IX IXH ÅÆ (SP+1) IX = FFFF
14. IXL ÅÆ (SP) (1990) = 00; (1991)=22
15. 181C FF RST 38 STOP
16.

Gambar 6.17a. Contoh kasus program sederhana pertukaran data

Dengan menguraikan proses program Gambar 6.17a. langkah demi langkah akan diperoleh
hasil-hasil akhir seperti Gambar 6.17b.

Reg./Memori BC DE HL SP IX IY 198D 198E 1990 1991

Data 0202 0303 XXXX 1992 FFFF XXXX 13 18 00 22

Gambar 6.17b. Hasil kasus program sederhana perintah transfer data 16 bit

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
116  SISTEM MIKROPROSESOR dan MIKROKONTROLER

3. Pelacakan Data Assembly Operasi Keterangan

CPI A - (HL) Bandingkan isi A dengan


Pelacakan atau searching data sangat data di memori lokasi
HL ÅHL + 1 alamat dicatat HL. Alamat
diperlukan dalam pengembangan program. memori oleh HL naik
BC ÅBC – 1
Pelacakan atau searching data dilakukan
CPIR A - (HL) Bandingkan isi A dengan
dengan perintah compare atau bandingkan. data di memori lokasi
HL Å HL + 1 alamat dicatat HL.
Dalam mikroprosesor instruksi membading Berhenti sampai nilai
BC ÅBC – 1
kan dilakukan dengan mengurangkan nilai A=(HL) atau BC = 0.
Repeat until A Alamat memori oleh HL
bilangan yang dibandingkan dengan bilangan = (HL) or BC=0 naik
pembanding. Instruksi perbandingan tidak CPD A - (HL) Bandingkan isi A dengan
data di memori lokasi
merubah nilai yang dibanding dengan nilai HL Å HL - 1 alamat dicatat HL. Alamat
bilangan pembanding. Dalam Z-80 CPU memori oleh HL turun
BC Å BC – 1
pembandingan merujuk ke register A. CPDR A - (HL) Bandingkan isi A dengan
data di memori lokasi
HL Å HL - 1 alamat dicatat HL.
Untuk mengetahui nilai sebuah data Berhenti sampai nilai
BC Å BC – 1
dalam suatu lokasi memori perlu melakukan A=(HL) atau BC = 0.
Repeat until Alamat memori oleh HL
pembandingan dan pelacakan. Misalnya A = (HL) or turun
BC=0
dalam 100 lokasi memori jika diinginkan
untuk mengetahui jumlah data bernilai 90
Gambar 6.18. Contoh-contoh instuksi
dari 100 data dapat dilakukan dengan pelacakan data
instruksi ini. Untuk keperluan lain jika ingin
mengetahui lokasi sebuah data juga dapat Instruksi CPI bekerja membandingkan
menggunakan jenis instruksi ini. Untuk data register A dengan data yang ada di
mengetahui nilai sebuah data pada suatu memori yang alamatnya dicatat oleh register
lokasi memori atau menemukan ada tidaknya HL. Perbandingan dua buah data akan
sebuah data bernilai tertentu dari memberikan status carry = 1 jika data di
sekelompok data dapat ditempuh dengan register A lebih kecil dari data memori alamat
melakukan searching. Perintah search yang dicatat oleh register HL. Untuk keadaan lai
digunakan adalah CPI (compare carry = 0 jika data di register A sama atau
increament), CPIR (compare increament lebih besar dari data memori alamat dicatat
repeat), CPD (compare decreament), dan oleh register HL dan zerro flag Z=1 jika data
CPDR (compare decreament repeat). Untuk di register A sama dengan data memori
memahami instruksi pelacakan data pelajari alamat dicatat oleh register HL.Selanjutnya
Gambar 6.18. terjadi juga penambahan HL=HL+1 dan
pengurangan BC= BC-1.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
117  SISTEM MIKROPROSESOR dan MIKROKONTROLER

Instruksi CPIR menunjukkan tipe 4. Instruksi Aritmetika


instruksi yang lebih jelas dalam melakukan
Dalam mikroprosesor Zilog Z-80 CPU
proses pelacakan data. Dalam operasi
instruksi-instruksi aritmetika yang disediakan
sangat jelas terjadi proses membandingkan
jumlahnya terbatas pada instruksi
data yang ada pada register A dengan data
penjumlahan (ADD dan ADC) dan
yang ada pada suatu lokasi memori yang
pengurangan (SUB dan SBC) saja. Dengan
alamatnya dicatat oleh register HL. Data
demikian untuk memecahkan persoalan
register HL kemudian ditambah 1 dan
aritmetika lainnya seperti perkalian dan
register BC datanya berangsur dikurangi 1.
pembagian tidak dapat diselesaikan secara
Proses pembandingan dihentikan jika nilai
langsung dengan satu buah instruksi.
data di register A sama dengan data di
Dengan menggabungkan beberapa instruksi
memori yang alamatnya dicatat oleh register
yang tersedia dapat dibuat program
HL. Instruksi CPIR bekerja melacak data 8
subroutin untuk perkalian dan pembagian,
bit di memori melalui register A. Lokasi
mencari nilai kuadrat suatu bilangan, sortir
alamat data yang dilacak tercatat pada
data, pengurutan, dan sebagainya.
register HL. Pelacakan data berlangsung
terus sampai ditemukan data yang sama Perlu diingat bahwa mikroprosesor
dengan data yang ada di register A atau melalukan operasi penjumlahan dan
berhenti jika isi register BC=0000. Jadi pengurangan dalam sistim bilangan biner.
register BC dapat digunakan untuk Mikroprosesor menyediakan layanan
menetapkan luasan atau jumlah data yang operasi baik untuk bilangan tidak bertanda
dilacak di dalam memori. maupun bilangan bertanda. Pada saat
bekerja dalam bilangan bertanda user harus
Instruksu CPIR bekerja maju menuju
mampu memaknai nilai sebuah data. Dalam
alamat diatasnya. Karena isi register HL
operasi bilangan bertanda digunakan
bertambah satu. Pelacakan dimulai dari
komplemen dua. Untuk keperluan tertentu
alamat rendah kealamat yang lebih tinggi
juga dibutuhkan bekerja dalam sistim
sampai dinyatakan diketemukan atau tidak
bilangan desimal hampir di segala bidang.
diketemukan tetapi cacahan register
Untuk itu dalam operasi aritmetika
BC=0000. Untuk kasus instruksi CPD dan
disediakan instruksi Decimal Addjust
CPDR mekanisme kerja proses pelacakan
Accumulator (DAA) untuk memberikan
data sama dengan CPIR. Bedanya pada
faktor koreksi pada saat kita bekerja dalam
CPDR pelacakan dimulai dari alamat tinggi
sistim bilangan desimal dalam kode BCD.
ke alamat rendah.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
118  SISTEM MIKROPROSESOR dan MIKROKONTROLER

Instruksi CP,s disediakan untuk BC, DE, HL, SP. Untuk lebih jelasnya
membandingkan isi akumulator dengan perhatikan Gambar 6.19. berikut.
sebuah data tanpa merubah isi akumulator.
Instruksi ini memberikan akibat pada Operasi Assembly Operasi Ket.

perubahan register flag sebagai status 8 Bit ADD A , A AÅA+A • Mempe-


pembandingannya. Status tersebut ADD A , B A Å A+B ngaruhi
Flag S, Z,
diantaranya adalah (S=Sign, Z=Zerro, ADD A , C A Å A+C H, V, C
ADD A , D A Å A+D • N= data
H=Half Carry, dan C=Carry). Dalam
ADD A, E A Å A+E 8 bit
melaksanakan instruksi pembandingan, ADD A , H A Å A+H
mikroprosesor menggunakkan sistim ADD A , L A Å A+L
bilangan komplemen dua. ADD A, N A Å A+N
ADD A, (HL) AÅ A + (HL)
Pada sistim komplemen dua bilangan ADD A,(IX+d) A Å A + IX+d)
ADD A , (IY+d) A Å A+(IY+d)
terkecil adalah 80H = 1000 0000B = -128
dan bilangan terbesar adalah 7F = 0111
16 BIt ADD HL , BC HL Å HL + BC
1111 = +127. Bit 7 digunakan sebagai ADD HL , DE HL ÅHL + DE
tanda bilangan. Jika bit 7=0 menunjukkan ADD HL , HL HL ÅHL + HL Hanya
ADD HL , SP HL ÅHL + SP Mempenga
nilai positif dan jika bit 7= 1 menunjukkan ruhi Flag
ADD IX, BC IX Å IX + BC carry
bilangan bernilai getatif.
ADD IX , DE IX Å IX + DE
ADD IX , IX IX Å IX + IX
ADD IX, SP IX Å IX + SP
4.1. Instruksi ADD dan SUB.
ADD IY , BC IY Å IY + BC
Instruksi ADD digunakan untuk ADD IY , DE IY Å IY + DE
melakukan operasi penjumlahan 8 bit dan ADD IY , IY IY Å IY + IY
16 bit. Ada 38 jenis perintah penjumlahan ADD IY , SP IY Å IY + SP

pada mikroprosesor Z-80 CPU. Pada


operasi 8 bit register A (akumulator) Gambar 6.19. Contoh-contoh instruksi ADD
ditambahkan dengan isi sebuah register 8
bit atau data immediate 8 bit, atau data pada Pada Gambar 6.18. tercatat ada dua

satu lokasi memori yang alamatnya dicatat kelompok instruksi ADD yaitu kelompok 8 bit

oleh register HL, IX, atau IY. dan kelompok16 bit. Dalam kelompok 8 bit
semua hasil operasi ADD tercatat di register
Pada operasi aritmetika 16 bit register A. Register A sebagai penampung hasil atau
HL, iX, dan IY berfungsi sebagai akumulator lebih umum disebut dengan akumulator.
yang dapat ditambahkan dengan isi register Dalam kelompok 16 bit register HL, IX,dan

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
119  SISTEM MIKROPROSESOR dan MIKROKONTROLER

IY salah satu bisa berfungsi sebagai Instruksi SUB digunakan hanya untuk
akumulator. melakukan operasi pengurangan 8 bit.
Pada operasi SUB isi register A dikurangkan
Instruksi ADD A,A akan menjalankan
dengan salah satu isi register A, B, C, D, E,
proses menjumlahkan data yang ada di
H, L, atau data immediate 8 bit. Disamping
register A dengan dirinya sendiri. Sehiingga
itu isi register A juga dapat dikurangkan
instruksi ini mewakili perkalian register A
dengan data pada suatu lokasi memori yang
dengan 2. Instruksi ADD A, B melakukan
alamatnya dicatat oleh register HL, IX, dan
perintah penjumlahan data yang ada di A
IY. Gambar 6.20. menunjukkan contoh-
dengan data yang ada di B dan hasilnya
contoh perintah SUB.
dicatat di register A. Demikian juga dengan
instruksi ADD yang lain yang terjadi antara Operasi Assembly Operasi Keterangan
register A dengan register 8 bit lainnya.
8 Bit SUB , A A Å A- A Mempengaruhi
Instruksi ADD A,N menunjukkan instruksi SUB , B A Å A- B Flag S, Z, H, V,
C
penjumlahan data yang ada di register A SUB , C A Å A- C
SUB , D A Å A- D N = data 8 bit
dengan data immediate dan hasilnya dicatat
SUB, E A ÅA- E
di register A. Instruksi ADD A, (HL) SUB , H A ÅA- H
menjalankan perintah penjumlahan data SUB , L AÅA-L
SUB, N A Å A- N
yang ada di A dengan data yang ada di
SUB , HL) AÅA-(HL)
memori yang alamatnya dicatat oleh register SUB, (IX+d) A ÅA-(IX+d)
HL. Dua perintah dibawahnya identik SUB,(IY+d) A ÅA-(IY+d)

terhadap memori yang alamatnya dicatat


Gambar 6.20. Contoh-contoh perintah SUB
oleh register IX dan IY.
Semua instruksi ADD dan SUB dapat
Penjumlahan 16 bit dengan instruksi
mempengaruhi status flag yaitu Sign, Zerro,
ADD HL, BC bekerja menjalankan perintah
Half Carry, Overflow, dan Carry pada
penjumlahan data 16 bit di register HL
Register F. Pada instruksi ADD akan terjadi
dengan data 16 bit di register BC dan
flag N=0 dan pada instruksi SUB akan
hasilnya dicatat di register HL. Instruksi ADD
terjadi flag N=1. Dua keadaan ini digunakan
HL, DE bekerja menjalankan perintah
untuk menyatakan fungsi flag C sebagai
penjumlahan data 16 bit di register HL
carry atau borrow. Flag C bermakna Carry
dengan data 16 bit di register DE dan
jika operasi aritmetika itu adalah ADD dan
hasilnya dicatat di register HL. Untuk
flag C bermakna borrow jika operasi
instruksi yang lain penjumlahannya bekerja
aritmetika itu adalah SUB.
identik.

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 
120  SISTEM MIKROPROSESOR dan MIKROKONTROLER

4.2. Instruksi ADC (ADD With Instruksi SBC digunakan untuk


Carry) dan SBC (Sub With mengurangkan isi register A dengan data 8
Carry) bit yang berada pada suatu register atau
data immediate atau data suatu lokasi
Instruksi ADC digunakan untuk
memori dengan mengikutsertakan bit carry
menambahkan isi register A dengan data 8
flag. Instruksi SBC juga digunakan untuk
bit yang berada pada suatu register atau
mengurangkan isi register HL dengan data
data immediate atau data suatu lokasi
16 bit yang berada pada register BC, DE,
memori dan mengikut sertakan bit Carry
HL, dan SP dengan mengikutsertakan bit
(C) yang ada di register F. Instruksi ADC
Carry Flag (Cy). Hasil dari kedua bentuk
juga digunakan untuk menambahkan isi
pengurangan tersebut dicatat di Register A
register HL dengan data 16 bit yang berada
atau Register HL. Gambar 6.22.
pada register BC, DE, HL, dan SP dengan
menunjukkan beberapa contoh instruksi
mengikut sertakan bit Carry Flag (C).
SBC. Untuk operasi 8 bit register A sebagai
Beberapa contoh instruksi ADC dapat
penampung hasil dan untuk operasi 16 bit
dipelajari dari Gambar 6.20. Pada Gambar
register HL sebagai penampung hasil.
6.20 dapat dilihat instruksi ADC juga
Karena register A sebagai penampung hasil
menggunakan register A sebagai
maka disebut juga akumulator.
penampung atau akumulator untuk operasi 8
bit dan register HL untuk operasi 16 bit.
Operasi Assembly Operasi Ketera
ngan
Operasi Assembly Operasi Keterangan 8 Bit SBC A , A A ÅA - A - Cy Mempenga
8 Bit ADC A , A A ÅA + A + Cy Mempengaruhi SBC A , B A ÅA - B - Cy ruhi Flag
Flag S, Z, H, SBC A , C A ÅA - C - Cy S, Z, H, V,
ADC A , B A Å A + B + Cy
V, C SBC A , D A Å A- D - Cy C
ADC A , C A Å A + C + Cy
N = data 8 bit SBC A, E A ÅA - E - Cy N = data 8
ADC A , D A Å A + D + Cy
SBC A , H A ÅA - H - Cy bit
ADC A, E A Å A + E + Cy
SBC A , L A Å A- L - Cy
ADC A , H A Å A + H + Cy
SBC A, N A Å A- N - Cy
ADC A , L A Å A + L + Cy
SBC A, (HL) AÅA- (HL)-Cy
ADC A, N A Å A + N + Cy
SBC A, (IX+d) AÅA- (IX-d)-Cy
ADC A , (HL) A Å A + (HL)+Cy SBC A, (IY+d) A ÅA- (IY-d)-Cy
ADC A, (IX+d) A ÅA + (IX+d)+Cy
ADC A, (IY+d) A ÅA + (IY+d)+Cy 16 BIt SBC HL, BC HLÅ HL- BC-Cy Hanya
SBC HL, DE
Mempen
HLÅ HL- DE- Cy
Hanya garuhi
ADC HL , BC HLÅ HL+ BC + Cy SBC HL HL HL ÅHL- HL- Cy
16 BIt Mempengaru Flag
ADC HL , DE HLÅ HL+ DE + Cy hi Flag carry SBC HL, SP HL ÅHL-SP- Cy carry
ADC HL , HL HLÅ HL + HL+ Cy
ADC HL , SP HLÅHL + SP + Cy
Gambar 6.22. Contoh-contoh instruksi SBC
Gambar 6.21. Contoh-contoh instruksi ADC

Dr. Putu Sudira MP. Diknik Elektronika FT UNY


 

Anda mungkin juga menyukai