laporan modul 4

36
LAPORAN MODUL 4 PRAKTIKUM SISTEM MIKROPROSESOR SET INSTRUKSI MIKROPROSESOR Z-80 CPU Disusun Oleh : Nama : Setia Budinugroho NIM : 12502241015 Kelas : A 3.1 JURUSAN PENDIDIKAN TEKNIK ELEKTRONIKA FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA 2013

Upload: setiabn

Post on 26-Dec-2015

78 views

Category:

Documents


2 download

DESCRIPTION

Laporan Mikroprosesor

TRANSCRIPT

Page 1: Laporan Modul 4

LAPORAN MODUL 4

PRAKTIKUM SISTEM MIKROPROSESOR

SET INSTRUKSI MIKROPROSESOR Z-80 CPU

Disusun Oleh :

Nama : Setia Budinugroho

NIM : 12502241015

Kelas : A 3.1

JURUSAN PENDIDIKAN TEKNIK ELEKTRONIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA

2013

Page 2: Laporan Modul 4

A. KOMPETENSI

Menguasai cara kerja seluruh Instruksi Mikroprosesor Zilog Z-80 CPU.

B. SUB KOMPETENSI

1. Dapat mengklasifiasikan sebelas jenis instruksi pada mikroprosesor Z-80 CPU.

2. Menggunakan seluruh instruksi pada mikroprosesor Z-80 CPU.

C. DASAR TEORI

Instruksi pada Z-80 CPU dapat digolongkan menjadi 11 kelompok :

1) Instruksi transfer data 8 bit

2) Instruksi transfer data 16 bit

3) Instruksi pertukaran data

4) Instruksi pelacakan / search data

5) Instruksi aritmatika dan logika

6) Instruksi putar dan geser

7) Instruksi manipulasi bit

8) Instruksi jump

9) Instruksi cell dan return

10) Instruksi restart

11) Instruksi input dan output

D. KEGIATAN BELAJAR DAN ANALISIS

Kegiatan Belajar 1 : Memahami Instruksi Transfer DataOperasi transfer data lebih tepat disebut sebagai operasi copy data. Pada

mikroprosesor Z-80 CPU sebagian besar dijalankan menggunakan perintah LD

singkatan dari Load. Z-80 CPU memiliki 134 perintah Load.

Disamping juga ada perintah 6 jenis perintah EX, EXX singkatan dari EXCHANGE.

Z-80 CPU juga memilki jenis 12 perintah PUSH, dan POP, dapat digunakan untuk

transfer data dalam operasi stack pointer.

Data dapat ditransfer dalam 8 bit atau 16 bit. Perintah transfer data memuat

dua operand yaitu operand pertama menunjukkanlokasi di mana data dapat disimpan,

apakah dalam register atau di memori. Operand pertama ini disebut Destinasi .

operand yang kedua menunjukkan lokasi asli atau asl sebuah data.

Laporan Mikrokontroler Modul 4 1

Page 3: Laporan Modul 4

Operand kedua ini disebut Source. Operand dapat berupa register, memori,

atau data immediate. Lebar data yang ditransfer dapat berupa data 8 bit atau data 16

bit.

Bentuk umum transfer data pada Z-80 CPU adalah :

Sebagai contoh : LD A, B merupakan perintah untuk meng-copy data yang ada di

Register B ke Register A jadi register A disebut destinasi atau tujuan dan register B

disebut source atau asal/sumber.

Transfer data 8 bitTransfer data 8 bit dapat terjadi diantara :

1. Register ke register

2. Memori ke register

3. Data Immediate ke register

4. Register ke memori

5. Memori ke memori

6. Data Immediate ke memori

1. Transfer data 8 bit dari Register ke register

Dapat terjadi diantara register 8 bit yaitu register A, B, C, D, E, H, L dan I

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD A,B A B Muati register A dengan data

dari register B

2 LD B,C B C Muati register B dengan data

dari register C

3 LD B,A B A Muati register B dengan data

dari register A

4 LD B,E B E Muati register B dengan data

dari register E

Laporan Mikrokontroler Modul 4 2

Page 4: Laporan Modul 4

2. Transfer data 8 bit dari memori ke register

Transfer data dari memori ke register mencakup persyaratan bahwa

harus ada cara atau mekanisme pemegangan alamat memori. Dalam Z-80

CPU alamat memori ada 2 byte atau 16 bit. Pemegang alamat memori

menggunakan salah satu register 16 bit.

Transfer data dari memori dapat terjadi dari lokasi EPROM atau dari

lokasi RWM karena kedua memori ini memiliki sifat baca. Untuk operasi

ini ada tanda “( )” sebagai tanda operasi memori.

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD A,(1902) A (1902)Muati register A dengan data dari

memori lokasi alamat 1902 (RWM)

2 LD B,(0066) B (0066)Muati register B dengan data dari

memori lokasi alamat 0066 (ROM)

3 LD B,(HL) B (HL)

Muati register B dengan data dari

memori lokasi alamat sama dengan

isi register HL

4 LD D,(IX+02) D (IX+02)

Muati register D dengan data dari

memori lokasi alamat sama dengan

isi register (IX+02)

3. Transfer data Immediate 8 bit ke register

Transfer data Immediate 8 bit ke register dapat terjadi terhadap

register A, B, C, D, E, H dan L

Contoh:

No. Assembly Simbol Operasi Keterangan

1 LD A,19 A 19h Muati register A dengan data 19h

2 LD A,00 A 00h Muati register A dengan data 19h

3 LD B,3F B 3Fh Muati register B dengan data 3Fh

4 LD C,FF C FFh Muati register C dengan data FFh

Laporan Mikrokontroler Modul 4 3

Page 5: Laporan Modul 4

4. Transfer data 8 bit dari register ke memori

Transfer data 8 bit dari register ke memori mencakup persyaratan

bahwa harus ada cara atau mekanisme pemegangan alamat memori. Dalam

Z-80 CPU alamat memori ada 2 byte atau 16 bit.

Transfer data dari register ke memori dapat terjadi hanya ke lokasi

RWM karena ROM tidak bisa diisi data baru. Untuk operasi ini ada tanda “(

)” sebagai tanda operasi memori menggunakan salah satu register 16 bit

atau angka alamat.

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD (1902), A (1902) AMuati lokasi alamat 1902 (RWM)

dengan data dari register A

2 LD (HL), B (HL) B

Muati memori lokasi alamat sama

dengan isi register HL dengan data

dari register B

3 LD (IX+02),D (IX+02) D

Muati memori lokasi alamat sama

dengan isi register (IX+02) dengan

data dari register D

5. Transfer data 8 bit dari memori ke memori

Transfer data 8 bit dari memori ke memori mencakup persyaratan

bahwa harus ada cara atau mekanisme pemegangan alamat memori. Dalam

Z-80 CPU alamat memori ada 2 byte atau 16 bit.

Transfer data dari register ke memori dapat terjadi hanya ke lokasi

RWM karena ROM tidak bisa diisi data baru. Untuk operasi ini ada tanda “(

)” sebagai tanda operasi memori.

Laporan Mikrokontroler Modul 4 4

Page 6: Laporan Modul 4

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LDI

(DE) (HL)

DE DE+1

HL HL+1

BC BC-1

Transfer 1 byte data dari lokasi

memori yang alamatnya dicatat oleh

HL ke lokasi memori yang alamatnya

dicatat oleh DE

2 LDIR

(DE) (HL)

DE DE+1

HL HL+1

BC BC-1

Diulang sampai

Reg BC = 0000

Transfer 1 byte data dari lokasi

memori yang alamatnya dicatat oleh

HL ke lokasi memori yang alamatnya

dicatat oleh DE. Diulang sampai isi

reg. BC sama dengan nol ( alamat

naik )

3 LDD

(DE) (HL)

DE DE-1

HL HL-1

BC BC-1

Transfer 1 byte data dari lokasi

memori yang alamatnya dicatat oleh

HL ke lokasi memori yang alamatnya

dicatat oleh DE

4 LDDR

(DE) (HL)

DE DE-1

HL HL-1

BC BC-1

Diulang sampai

Reg BC = 0000

Transfer 1 byte data dari lokasi

memori yang alamatnya dicatat oleh

HL ke lokasi memori yang alamatnya

dicatat oleh DE. Diulang sampai isi

reg. BC sama dengan nol ( alamat

turun )

6. Transfer data Immediate 8 bit ke memori

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD (HL), FF (HL) FF

Muati memori lokasi alamat

sama dengan isi dari register HL

dengan data FFh

2 LD (IX+02), 64 ( IX+02) 64

Muati memori lokasi alamat

sama dengan isi dari register (

IX+02 ) dengan data 64h

3 LD (IY+02),19 (IY+02) 19 Muati memori lokasi alamat

Laporan Mikrokontroler Modul 4 5

Page 7: Laporan Modul 4

sama dengan isi dari register

IY+02 dengan data 19h

7. Latihan kasus

Berikut ini ada 12 perintah transfer data. Identifikasi untuk setiap

perintah tergolong kategori transfer 8 bit yang mana diantara 6 kategori

seperti diatas. Kemudian nyatakan hasil dari masing – masing perintah

tersebut.

No. ADDRESS Kode operasi Assembly Simbol operasi

1 1800 3E 93 LD A, 93H A 93h

2 1802 47 LD B, A B A

3 1803 48 LD C, B C B

4 1804 51 LD D, C D C

5 1805 5A LD E, D E D

6 1806 26 19 LD H, 19H H 19H

7 1808 2E 90 LD L, 90H L 90H

8 180A 36 64 LD(HL),64H (HL) 64H

9 180C 46 LD B,(HL) B (HL)

10 180D 3A 90 19 LD A,(1900) A (1990)

11 1810 32 91 19 LD(1991),A (1991) A

12 1813 FF RST 38 STOP

8. Isikan hasil identifikasi transfer data pada tabel berikut. Gunakan

kolom simbol operasi untuk merumuskan hasilnya.

No. Assembly Kategori Hasil

1 LD A, 93H Data Immediate ke register A =93

2 LD B, A Register ke register B = 93

3 LD C, B Register ke register C = 93

4 LD D, C Register ke register D = 93

5 LD E, D Register ke register E = 93

6 LD H, 19H Data Immediate ke register H = 19

7 LD L, 90H Data Immediate ke register L = 90; HL =1990

Laporan Mikrokontroler Modul 4 6

Page 8: Laporan Modul 4

8 LD(HL),64H Data Immediate ke memori (1990) = 64

9 LD B,(HL) Memori ke register B = 64

10 LD A,(1900) Memori ke register A = 64

11 LD(1991),A Register ke memori (1991) = 64

12 RST 38

9. Mengeksekusi program diatas dengan perintah GO

Reg/memori A F B C D E H L 1990 1991

Data 64 XX 64 93 93 93 19 90 64 64

10. Analisis

Program diatas adalah salah satu contoh dari program transfer data

sederhana. Program tersebut terdiri dari beberapa jenis transfer data, seperti

transfer data immediate ke register, data immediate ke memori, antar register,

memori ke register dan juga dari register ke memori.

11. Penjelasan program

Program diatas pertama mengisi register A dengan data 93 hexa, lalu data

dari register A dicopy ke dalam register B. Setelah itu data register B dicopy ke

register C. Data dari register C selanjutnya dicopy lagi ke register D. Dan

kemudian data dari register D dicopy ke register E. Setelah itu register H diisi

dengan data 19 hexa, lalu L diisi data 90 hexa. Kemudian memori dengan

alamat yang sama dengan isi HL diisi dengan data 64 hexa. Setelah itu data dari

memori tersebut dicopykan lagi ke register B. Selanjutnya memori dengan

alamat 1991 diisi data dari register A.

Transfer data 16 bitTransfer data 16 bit dapat terjadi diantara :

1. Register ke register

2. Register ke memori

3. Memori ke register

4. Data Immediate ke register

5. Memori ke memori

Laporan Mikrokontroler Modul 4 7

Page 9: Laporan Modul 4

Pada transfer data 16 bit, transfer data Immediate ke memori tidak ada,

sehingga transfer data Immediate ke memori hanya dapat dilakukan dengan

cara 8 bit.

1. Transfer data 16 bit dari register ke register

Dapat terjadi diantara register 16 bit yaitu register SP, HL, IX dan IY.

Perintah yang digunakan adalah LD = Load.

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD SP, HL SP HLMuati lokasi Register SP dengan data

dari register HL

2 LD SP,IX SP IXMuati lokasi Register SP dengan data

dari register IX

3 LD SP, IY SP IYMuati lokasi Register SP dengan data

dari register IY

2. Transfer data 16 bit dari register ke memori

Transfer data 16 bit dari register ke memori mencakup persyaratan

bahwa harus ada cara atau mekanisme pemegangan alamat memori. Dalam

Z-80 CPU alamat memori ada 2 byte atau 16 bit.

Transfer data dari register ke memori dapat terjadi hanya ke lokasi

RWM karena ROM tidak bisa diisi data baru. Untuk operasi ini ada tanda “(

)” sebagai tanda operasi memori menggunakan salah satu register 16 bit

atau angka alamat.

Transfer data 16 bit dari register ke memori dapat terjadi dari register

BC, DE, HL, IX, IY, dan AF Perintah yang digunakan adalah LD = Load.

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD (1902), BC (1903) B

(1902) C

Muati lokasi alamat 1902 (RWM)

dengan data dari register A

2 LD (1800),HL (1801) H

(1800) L

Muati memori lokasi alamat sama

dengan isi register HL dengan data

dari register B

3 PUSH IX (SP-1) IXH Muati memori lokasi alamat sama

Laporan Mikrokontroler Modul 4 8

Page 10: Laporan Modul 4

(SP-2) IHL

SP SP -2

dengan isi register (IX+02) dengan

data dari register D

3. Transfer data 16 bit dari memori ke register

Transfer data 16 bit dari register ke memori mencakup persyaratan

bahwa harus ada cara atau mekanisme pemegangan alamat memori. Dalam

Z-80 CPU alamat memori ada 2 byte atau 16 bit.pemegang alamat

menggunakan salah satu register 16 bit. Transfer data dari memori ke

register dapat terjadi dari lokasi EPROM atau RWM karena kedua memori

ini mempunyai sifat baca. Untuk operasi ini ada tanda “( )” sebagai tanda

operasi memori menggunakan salah satu register 16 bit atau angka alamat.

Transfer data 16 bit dari memori ke register dapat terjadi dari register BC,

DE, HL, IX, IY, dan AF Perintah yang digunakan adalah LD dan POP.

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD IX,(1902) IXH (1903)

IXL (1902)

Muati lokasi register IX dengan

data dari memori lokasi alamat

1903 dan 1902

2 LD IY,(0066) IYH (0067)

IYL (0066)

Muati lokasi register IY dengan

data dari memori lokasi alamat

0067 dan 0066

3 LD BC,(1800) B (1801)

C (1800)

Muati lokasi register BC dengan

data dari memori lokasi alamat

1801 dan 1800

4 POP DE D (SP+1)

E (SP)

SP SP+2

Muati lokasi register DE dengan

data dari memori lokasi alamat

sama dengan isi register SP+1 dan

SP.

4. Transfer data immediate 16 bit ke register

Transfer data Immediate 16 bit ke register dapat terjadi dari register

BC, DE, HL,SP, IX,dan IY. Perintah yang digunakan adalah LD = Load.

Laporan Mikrokontroler Modul 4 9

Page 11: Laporan Modul 4

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LD BC,1900 BC 1900h Muati register BC dengan data 1900h

2 LD DE, 1800 DE 1800h Muati register DE dengan data 1800h

3 LD IX, 203F IX 203Fh Muati register IX dengan data 203Fh

4 LD IY, EEFF IY EEFFh Muati register IY dengan data

EEFFh

5. Transfer data 16 bit dari memori ke memori

Transfer data 16 bit dari memori ke memori mencakup persyaratan

bahwa harus ada cara atau mekanisme pemegangan alamat memori. Dalam

Z-80 CPU alamat memori ada 2 byte atau 16 bit.

Transfer data dari register ke memori dapat terjadi hanya ke lokasi

RWM karena ROM tidak bisa diisi data baru. Untuk operasi ini ada tanda “(

)” sebagai tanda operasi memori. Perintah yang dapat digunakan hanya

LDIR dan LDDR. Dalam hal ini jumlah byte data yang dapat ditransfer satu

byte, dua byte atau lebih dengan kemampuan maksimum 64 K byte

tergantung isi register BC.

Contoh :

No. Assembly Simbol Operasi Keterangan

1 LDIR (DE) (HL)

DE DE+1

HL HL+1

BC BC-1

Diulang sampai

Reg.BC =0000

Transfer 1 byte data dari lokasi

memori yang alamatnya dicatat oleh

HL ke lokasi memori yang

alamatnya dicatat oleh DE, diulang

sampai isi reg. BC sama dengan nol

(alamat naik)

2 LDDR (DE) (HL)

DE DE-1

HL HL-1

BC BC-1

Diulang sampai

Reg.BC =0000

Transfer 1 byte data dari lokasi

memori yang alamatnya dicatat oleh

HL ke lokasi memori yang

alamatnya dicatat oleh DE, diulang

sampai isi reg. BC sama dengan nol

(alamat turun)

Laporan Mikrokontroler Modul 4 10

Page 12: Laporan Modul 4

6. Latihan kasus

Berikut ini ada 20 perintah transfer data. Identifikasi untuk setiap

perintah tergolong kategori transfer 16 bit yang mana diantara 5 kategori

diatas. Kemudian nyatakan hasil dari masing – masing perintah tersebut.

No. ADDRESS Kode operasi Assembly Simbol operasi

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) IXL

15 (SP-1) IXH

16 SP SP-2

17 1840 FD E1 POP IY IYh (SP+1)

18 IXh (SP)

19 SP SP+2

20 1842 DD E1 POP IX IYh (SP+1)

21 IXh (SP)

22 SP SP+2

23 1844 FF RST 38 STOP

Laporan Mikrokontroler Modul 4 11

Page 13: Laporan Modul 4

7. Mengisikan hasil identifikasi transfer data pada tabel berikut.

Gunakan kolom simbol operasi untuk merumuskan hasolnya

No. Assembly kategori Hasil

1 LD BC,1963h Data Immediate ke register BC = 1963

2 LD DE,1964h Data Immediate ke register DE = 1964

3 LD HL,1995h Data Immediate ke register HL = 1995

4 LD SP,1991h Data Immediate ke register SP = 1991

5 LD (1993),BC Register ke memori (1993) = 63

6 (1994) = 19

7 LD (1995),DE Register ke memori (1995) = 64

8 (1996) = 19

9 LD IX,1800h Data Immediate ke register IX = 1800

10 LD IY,1813h Data Immediate ke register IY = 1813

11 PUSH IX Register ke memori (198F) = 00

12 (1990) = 18

13 SP = 198F

14 PUSH IY Register ke memori (198D) = 13

15 (199E) = 18

16 SP = 198D

17 POP IY Memori ke register IY = 1813

18 SP = 198F

19 POP IX Memori ke register IX = 1800

20 SP = 1991

21 RST 38

8. Mengeksekusi program diatas dengan perintah GO

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

Data 1963 1964 1995 1991 1800 1813 13 18 00 18

Laporan Mikrokontroler Modul 4 12

Page 14: Laporan Modul 4

9) Analisis Penjelasan program

Program diatas menggunakan op code PUSH dan POP. Perintah

PUSH untuk memindah isi register ke memori sesuai alamat yang di

tentukan register IX dan IY, sedangkan perintah POP untuk memindah dari

isi memori ke register tetapi perintah POP haruslah setelah perintah PUSH

di kerjakan. Perintah PUSH dan POP memerlukan register SP juga. Selain

itu dalam memakai instruksi PUSH dan POP harus juga diingat bahwa data

yang masuk pertama harus dikeluarkan terakhir.

Kegiatan Belajar II: Memahami Instruksi Aritmetika

Dalam mikroprosesor Zilog Z-80 CPU instruksi-instruksi aritmetika yang

tersedia jumlahnya terbatas pada instruksi penjumlahan (ADD dan ADC) dan

pengurangan (SUB dan SBC) saja. Bagaimana dengan operasi aritmetika perkalian

dan pembagian?. Persoalan aritmetika perkalian dan pembagian dapat

diselesaikan dengan menggabungkan beberapa instruksi yang tersedia dalam

program subroutin. Perkalian adalah penjumlahan berulang. Pembagian adalah

pengurangan berulang. Kebutuhan hitung menghitung lazimnya didasarkan

bilangan desimal. Pada mikroprosesor operasi penjumlahan dan pengurangan

dilakukan dalam sistim komplemen berbasis dua. Instruksi Decimal Addjust

Accumulator (DAA) disediakan untuk memberikan faktor koreksi pada saat kita

bekerja dalam sistim bilangan desimal dalam kode BCD.

Instruksi CP,s disediakan untuk membandingkan isi akumulator dengan

sebuah data tanpa merubah isi akumulator. Instruksi ini memberikan akibat pada

perubahan register flag sebagai status pembandingannya. Status tersebut diantaranya

adalah (S=Sign, Z=Zerro, H=Half Carry, dan C=Carry). Dalam melaksanakan

instruksi pembandingan, mikroprosesor menggunakkan sistim bilangan komplemen

dua.

Pada sistim komplemen dua bilangan terkecil adalah 80H = 1000 0000B = -128

dan bilangan terbesar adalah 7F = 0111 1111 = +127.

a. Instruksi ADD

Instruksi ADD digunakan untuk melakukan operasi penjumlahan 8 bit dan

Laporan Mikrokontroler Modul 4 13

Page 15: Laporan Modul 4

16 bit. Ada 38 jenis perintah penjumlahan pada mikroprosesor Z-80 CPU. Pada

operasi 8 bit register A (akumulator) ditambahkan dengan isi sebuah register 8

bit atau data immediate 8 bit, atau data pada satu lokasi memori yang alamatnya

dicatat oleh register HL, IX, atau IY. Pada operasi aritmetika 16 bit register HL,

IX, dan IY berfungsi sebagai akumulator yang dapat ditambahkan dengan isi

register BC, DE, HL, SP. Untuk lebih jelasnya perhatikan tabel berikut:

Contoh :

Perhatikan semua perintah Assembly dan maknanya pada kolom simbol operasi.

Misalnya perintah ADD A,B proses operasinya disimbolkan A ← A + B.

Artinya nilai register A yang baru sama dengan nilai register A semula

ditambahkan dengan nilai data register B. Misalnya jika semula A = 2Ch dan B =

35h maka nilai yang baru A = 2C + 35 = 61h.

Laporan Mikrokontroler Modul 4 14

Page 16: Laporan Modul 4

1. Kasus

2. Isikan hasil identifikasi perintah kasus 1 pada tabel berikut. Gunakan kolom

simbol operasi untuk merumuskan hasilnya.

3. Dengan perintah eksekusi STEP pelajari program latihan kasus 1 step demi

step. Cocokkan hasil identifikasi saudara dengan hasil eksekusi

Step keRegister

A B C D E H L1 4E 01 43 0C F3 CD 012 4E 1F 43 0C F3 CD 013 4E 1F 3D 0C F3 CD 014 4E 1F 3D F4 F3 CD 01

Laporan Mikrokontroler Modul 4 15

Page 17: Laporan Modul 4

5 6D 1F 3D F4 F3 CD 016 AA 1F 3D F4 F3 CD 017 9E 1F 3D F4 F3 CD 018 9E 1F 3D F4 F3 24 569 9E 1F 3D F4 45 24 5610 9E 1F 3D F4 45 43 9111 9E 1F 3D F4 45 37 D6

4. Analisis program :

Program diatas menggunakan perintah ADD atau pertambahan tanpa

memperdulikan carry. Pertama mengisi register A, B, C, dan D seperti data diatas.

Kemudian perintah ADD A, B untuk menambahkan isi data register A +B dan

hasilnya disimpan di register A, begitu juga perintah ADD A,C dan ADD A,D

untuk pertambahan 8 bit. Untuk perintah pertambahan 16 bit dengan perintah ADD

HL, DE.

b. Instruksi SUB

Instruksi SUB digunakan hanya untuk melakukan operasi pengurangan 8 bit.

Pada operasi SUB isi register A dikurangkan dengan salah satu isi register A, B, C,

D, E, H, L, atau data immediate 8 bit. Disamping juga isi register A dapat

dikurangi dengan data pada suatu lokasi memori yang alamatnya dicatat oleh

register HL, IX, dan IY.

Contoh:

Laporan Mikrokontroler Modul 4 16

Page 18: Laporan Modul 4

Instruksi SUB dapat mempengaruhi status Sign, Zerro, HalfCarry, Overflow,

dan Carry pada Register Flag. Pada instruksi ADD flag N = 0 dan pada instruksi

SUB flag N = 1. Dua keadaan ini digunakan untuk menyatakan fungsi flag C

sebagai carry atau borrow.

1. Kasus

2. Isikan hasil identifikasi perintah kasus 1 pada tabel berikut. Gunakan kolom

simbol operasi untuk merumuskan hasilnya.

NO ASSEMBLY KATEGORI HASIL

1 LD A , EEh data immediate ke register 8 bit A = EE

2 LD B , 1Fh data immediate ke register 8 bit B = 1F

3 LD C , 3Dh data immediate ke register 8 bit C = 3D

4 LD D , 24h data immediate ke register 8 bit D = 24

5 SUB , B Aritmetika jumlah 8 bit A = CF

6 SUB , C Aritmetika jumlah 8 bit A = 92

7 SUB , D Aritmetika jumlah 8 bit A = 6E

8 RST 38 STOP

Laporan Mikrokontroler Modul 4 17

Page 19: Laporan Modul 4

3. Dengan perintah eksekusi STEP pelajari program latihan kasus 1) step demi

step.

Cocokkan hasil identifikasi saudara dengan hasil eksekusi

4. Analisis program :

Program diatas menggunakan perintah SUB atau pengurangan tanpa

memperdulikan carry. Pertama mengisi register A, B, C, dan D seperti data diatas.

Kemudian perintah SUB B untuk mengurangi isi data register A - B dan hasilnya

disimpan di register A, begitu juga perintah SUB C dan SUB D untuk pertambahan

8 bit.

c. Instruksi ADC (ADD With Carry) dan SBC (Sub With Carry)

Instruksi ADC digunakan untuk menambahkan isi register A dengan data 8

bit yang berada pada suatu register atau data immediate atau data suatu memori dan

mengikut sertakan bit Carry (C). Instruksi ADC juga digunakan untuk

menambahkan isi register HL dengan data 16 bit yang berada pada register BC,

DE, HL, dan SP dengan mengikut sertakan bit Carry Flag (C).

NO ASSEMBLY HASIL IDENTIFIKASI HASIL EKSEKUSI STEP

1 LD A , EEh A = EE A = EE

2 LD B , 1Fh B = 1F B = 1F

3 LD C , 3Dh C = 3D C = 3D

4 LD D , 24h D = 24 D = 24

5 SUB , B A = CF A = CF

6 SUB , C A = 92 A = 92

7 SUB , D A = 6E A = 6E

8 RST 38 STOP

Laporan Mikrokontroler Modul 4 18

Page 20: Laporan Modul 4

Contoh :

Instruksi SBC digunakan untuk mengurangkan isi register A dengan

data 8 bit yang berada pada suatu register atau data immediate atau data suatu

memori dengan mengikutsertakan bit carry flag. Instruksi SBC juga

digunakan untuk mengurangkan isi register HL dengan data 16 bit yang

berada pada register BC, DE, HL, dan SP dengan mengikutsertakan bit Carry

Flag (Cy). Hasil dari kedua bentuk pengurangan tersebut dicatat di Register A

dan Register HL.

Laporan Mikrokontroler Modul 4 19

Page 21: Laporan Modul 4

Contoh :

1. Kasus

2. Isikan hasil identifikasi perintah kasus 1) pada tabel berikut. Gunakan kolom

simbol operasi untuk merumuskan hasilnya.

Laporan Mikrokontroler Modul 4 20

Page 22: Laporan Modul 4

3. Dengan perintah eksekusi STEP pelajari program latihan kasus 1) step demi

step.

Cocokkan hasil identifikasi saudara dengan hasil eksekusi.

NO ASSEMBLY HASIL IDENTIFIKASI HASIL EKSEKUSI STEP

1 LD A , 4Eh A = 4E A = 4E

2 LD B , 1Fh B = 1F B = 1F

3 LD C , 3Dh C = 3D C = 3D

4 LD D , F4h D = F4 D = F4

5 ADD A, B A = 6D; Cy=0 A = 6D; Cy=0

6 ADC A, C A = AA; Cy=0 A = AA; Cy=0

7 ADC A, D A = 9E; Cy=1 A = 9E; Cy=1

8 SBC A, B A = 7E; Cy=0 A = 7E; Cy=0

9 SBC A, C A = 41; Cy=0 A = 41; Cy=0

10 SBC A, D A = 4D; Cy=0 A = 4D; Cy=0

11 RST 38 STOP

Laporan Mikrokontroler Modul 4 21

Page 23: Laporan Modul 4

4). Analisis program :

Program diatas menggunakan perintah ADD, ADC, SBC atau pertambahan

memperdulikan carry. Pertama mengisi register A, B, C, dan D seperti data diatas.

Kemudian perintah ADD A, B untuk menambahkan isi data register A + B dan hasilnya

disimpan di register A, diteruskan perintah ADC A, C untuk menambahkan isi data

register A + C dan ada carry di masukan ke register F. perintah SUB A, B untuk

mengurangi isi data register A - B dan hasilnya disimpan di register A, diteruskan

perintah SBC A, C untuk mengurangi isi data register A - C dan ada carry di masukan ke

register F .

d. Instruksi INC (Increment) dan DEC (Decrement)

Instruksi INC digunakan untuk menambah isi suatu register atau

memori dengan satu nilai. Instruksi ini sangat potensial digunakan untuk

membuat counter cacah naik.

Contoh :

Laporan Mikrokontroler Modul 4 22

Page 24: Laporan Modul 4

Instruksi DEC digunakan untuk mengurangi isi register atau data suatu

memori dengan nilai 1.

Contoh:

Laporan Mikrokontroler Modul 4 23

Page 25: Laporan Modul 4

1. Kasus

2. Isikan hasil identifikasi perintah kasus 1) pada tabel berikut. Gunakan kolom

simbol operasi untuk merumuskan hasilnya.

Laporan Mikrokontroler Modul 4 24

Page 26: Laporan Modul 4

3. Analisis Program :

Program diatas menggunakan perintah INC, DEC atau mengurangi 1 dari

data untuk perintah DEC (decrement) dan menambah 1 dari data untuk perintah INC

(increment). Pertama mengisi register A, B, C, dan D seperti data diatas. Kemudian

perintah INC A untuk menambah 1 isi data register A +1 dan hasilnya disimpan di

register A, diteruskan perintah INC B untuk menambahkan isi data register B+1 dan

disimpan di register B. dilanjutkan INC C , dan INC D, kemudian dilanjutkan

perintah DEC C untuk mengurangi isi data register C - 1 dan hasilnya disimpan di

register C, diteruskan perintah DEC D untuk mengurangi isi data register D-1, dan

disimpan di register D.

e. Instruksi Aritmetika Khusus

Dalam operasi aritmetika disediakan beberapa instruksi khusus yaitu :

1. DAA mnemonic dari Decimal Adjust Accumulator

2. CPL mnemonic dari Complement Accumulator ( Komplemen 1)

3. NEG mnemonic dari Negate Accumulator (Komplemen 2)

1. Instruksi DAA

Instruksi DAA digunakan untuk merubah isi register A ke bentuk BCD.

Instruksi DAA digunakan untuk memberi faktor koreksi pada saat bekerja dengan

bilangan desimal.

DAA dalam melakukan koreksi bekerja sbb :

Jika Bit b3, b2, b1, b0 > 9 atau ada Half Carry (H = 1) maka bit b3, b2, b1,

b0 ditambah dengan 0110 = 6.

Jika Bit b7, b6, b5, b4 > 9 atau ada Carry (C = 1) maka bit b7, b6, b5, b4

ditambah dengan 0110 = 6.

Contoh :

Laporan Mikrokontroler Modul 4 25

Page 27: Laporan Modul 4

Nilai hasil BCD seharusnya 55 tidak sesuai dengan hasil penjumlahan biner

0100 1111

= 4F.

Koreksi DAA

2. Instruksi CPL ( Complement)

Instruksi CPL digunakan untuk merubah isi akumulator menjadi bentuk

komplemen 1 yaitu dengan menginverse semua bit yang ada di akumulator.

A NOT A

3. Instruksi NEG (Negate)

Instruksi NEG digunakan untuk merubah isi akumulator (register A)

menjadi bentuk negatifnya yaitu dengan merubahnya menjadi nilai komplemen

dua.

A NOT A +

4. Instruksi CP (Compare)

Digunakan untuk membandingkan isi akumulator dengan data

immediate 8 bit atau isi salah satu register 8 bit atau isi/data suatu lokasi

memori tanpa merubah isi akumulator. Instruksi CP membangun keadaan

pada status Flag pada Bit Sign, Zero, Over Flow, Half Carry dan Carry pada

Register Flag. Instruksi CP sangat baik digunakan untuk menguji sebuah data

apakah data tersebut sama dengan suatu nilai tertentu atau lebih atau lebih

kecil dari suatu nilai tertentu.

Laporan Mikrokontroler Modul 4 26

Page 28: Laporan Modul 4

Kegiatan Belajar VI : Memahami Instruksi JumpInstruksi JUMP membuat mikroprosesor menjadi perangkat yang sangat

ampuh.Instruksi JUMP dapat dikatagorikan menjadi empat katagori :

JUMP bersyarat

JUMP tanpa syarat

JUMP absolut

JUMP relatif

JUMP Bersyarat

Jump bersarat adalah jenis instruksi Jump yang bekerja melakukan

lompatan atau kontinyu/tidak melolompat berdasarkan syarat yang diberikan.

Mnemonik untuk lompatan bersyarat ada tiga yaitu:

a. JP cc : Lompatan absolut bersyarat adalah lompatan yang langsung

menunjukan alamat sasaran dengan data alamat 16Bit

b. JRcc : lompatan Relatif bersyarat adalah lompatan yang penunjukan

alamatnya bernilai relatif terhadap alamat posisi saat melompat

c. DJNZ: lompatan Relatif khusus terhadap register B adalah lompatan yang

penujukan alamatnya bernilai relatif terhadap alamat posisi saat melompat

Bentuk perintah Jump bersyarat adalah sebagai berikut:

Lompatan absolut bersyarat : JPcc,nn :

Laporan Mikrokontroler Modul 4 27

Page 29: Laporan Modul 4

Jika kondisi syarat cc terpenuhi makaa PC ← nn mengeksekusi perintah

program pada alamat nn. Bisa melaju kealamat yang lebih tinggi atau alamat

yang lebih rendah . nn adalah alamat absolut .Jika syarat cc tidak terpenuhi

maka kontiny atau meneruskan keprogram berikutnya

Lompatan Relatif bersyarat : JRcc, nn:

Jika kondisi syarai cc terpenuhi maka PC← PC + e dan mengeksekusi

perintah program pada alamat PC+e. E bisa bernilai negatif untuk mundur

alamt sebelumnya dan e bernilai positif un tuk malu ke alamat yang lebih

tinggi. Jika syarat cc tidak terpenuhi maka kontinyu atau meneruskan

keperintah program berikutnya

Lompatan Relatif bersyarat Khusus :DJNZ

B ← b-1

Jika B=0 kontinyu dan

Jika B<>0 maka PC ← PC + e

Untuk memudahkan memehami terladinya lompatan untuk setiap persyaratan

pada setiap perintah dapat digambarkan sebagai berikut:

YES YES

NO NO

JPNZ / JRNZ / DJNZ JPZ / JRZ

YES YES

NO NO

JPNC / JRNC JPC / JRC

Z = 0 Z = 1

C = 0 C = 1

Laporan Mikrokontroler Modul 4 28

Page 30: Laporan Modul 4

YES YES

NO NO

JPPO JPPE

YES YES

NO NO

JPP JPM

JP NZ,nn : mengandung makna jump absolut if Not Zerro yaitu hasil oprasi

ALU sebelumnya tidak bernilai 0 atau nilai flag Z = 0 maka keputusan maka

keputusan melompat dilaksanakan ke alamat absolut nn dimana n adalah

alamat 16bit. Sebaliknya jika nilai Z = 1 maka program counter akan

diteruskan atau kontinyu naik satu step tanpa lompat.

JR NZ,nmengandung makna jump relatif if Not Zerro yaitu jika hasil operasi

sebelumnya tidak bernilai 0 atau nilai falg Z = 0 maka keputusan melompat

dilaksanakan ke alamat relatif n dimana n adalah nilai alamat yang dituju.

Dan jika Z = 1 maka step program akan kontinyu kelangkah berikutnya

DJNZ, n mengandung makna Decrement B jump if not zerro yaitu jika hasil

oprasi pengurangan nilai B tidak sama dengan 0 atau nilai flag Z = 0 maka

keputusan melompat dilaksanakan ke alamat relatif n dimana n adalah nilai

relatif yang dituju. Dan jika nilai B = 0 atau Z = 1 maka step program akan

kontinyu kesatu langkah berikutnya

JP Z,nn mengandung makna jump absolut if Zerro yaitu jika hasil operasi

ALU sebelumnya bernilai 0 atau nilai flag Z = 1 maka keputusan melompat

dilaksanakan ke alamat absolut nn dimana nn adalah alamat 16bit.

Sebaliknya jika Z =1 maka program akan diteruskan atau kontinyu naik 1

step tanpa lompatan

P = 0 P = 1

S = 0 S = 1

Laporan Mikrokontroler Modul 4 29

Page 31: Laporan Modul 4

JR Z, n mengandung makna jump relatif if zerro yaitu jika hasil operasi

sebelumnya bernilai 0 atau flag = 1 maka keputusan melompat dilaksanakan

kealamat relatif n dimana n adalah nilai relatif alamat yang dituju. Dan jika

Z = 0 maka step program akan kontinyu ke satu langkah berikutnya.

JP NC,nn : mengandung makna jump absolut if Not Carry yaitu jika hasi

operasi ALU sebelumna tidak ada nilai carry atau nila flag C = 0 maka

keputusan melompat dilaksanakan ke alamat absolut nn, dimana nn adalah

alamat 16bit. Sebaliknya jika C = 1 maka program counter akan diteruskan

atau kontinyu naik satu step tanpa lompat

JR NC, n mengandung nilai jump relatif if Not Carry yaitu jika hasi operasi

sebelumnya tidak ada nilai Carry atau nilai flag C = 0 maka keputusan

melompat dilaksanaka ke alamat relatif n dimana n adalah alamat relatif yang

dituju. Dan jika c =1 maka step program akan kontinyu ke satu langkah

berikutnya.

JP C,nn : mengandung makan jump absolut if Carry yaitu jika jika hasil

operasi ALU sebelumnya tidak ada carry atau nilai Flag C = 1 maka

keputusan melompat dilaksanaka ke alamat absolut nn dimana nn adalah

alamat 16bit. Sebaliknya jika CC = 0 maka program counter akan kontinyu

naik satu step tanpa lomptan

JR C, n mengandung makna jump relatif if Carry yaitu jika hasil operasi

sebelumnya tidk ada carry atau nisli flag C = 1 maka keputusan melompat

dilaksanakan kealamat relatif n dimana n adalah nilai relatif alamat yang

dituju. Dan jika C = 0 maka step program akan kontinyu ke satu langkah

berikutnya.

JPPO,nn : mengandung makan jump absolut if Parity Odd(ganjil) yaitu jika

jika hasil operasi ALU sebelumnya paritanya ganjil atau nilai Flag P = 0

maka keputusan melompat dilaksanaka ke alamat absolut nn dimana nn

adalah alamat 16bit. Sebaliknya jika P = 1 maka program counter akan

kontinyu naik satu step tanpa lomptan

JPPE,nn : mengandung makan jump absolut if Parity Odd(genap) yaitu jika

jika hasil operasi ALU sebelumnya paritanya ganjil atau nilai Flag P = 1

maka keputusan melompat dilaksanaka ke alamat absolut nn dimana nn

adalah alamat 16bit. Sebaliknya jika P = 0 maka program counter akan

kontinyu naik satu step tanpa lomptan

Laporan Mikrokontroler Modul 4 30

Page 32: Laporan Modul 4

JPP,nn : mengandung makan jump absolut if Pluss yaitu jika jika hasil

operasi ALU sebelumny nilai plus atau bit B7=0 atau nilai Flag S = 0 maka

keputusan melompat dilaksanaka ke alamat absolut nn dimana nn adalah

alamat 16bit. Sebaliknya jika S = 1 maka program counter akan kontinyu

naik satu step tanpa lomptan

JPM, nn : mengandung makan jump absolut if Minus yaitu jika jika hasil

operasi ALU sebelumny nilai plus atau bit B7=1 atau nilai Flag S = 1 maka

keputusan melompat dilaksanaka ke alamat absolut nn dimana nn adalah

alamat 16bit. Sebaliknya jika S = 0 maka program counter akan kontinyu

naik satu step tanpa lomptan.

JUMP Tanpa Syarat

Jump tanpa syarat adalah jenis instruksi jump yang bekerja melakukan

lompatan atau kontinyu tanpa ada syarat yang diberikan. Mnemonik untuk

lompatan tanpa syarat ada dua yaitu :

1. JP : lompatan absolut tanpa syarat adlah lompatan yang langsung

menunjukan alamat yang dituju denan alamat 16bit.

2. JR : lompatan relatif tanpa syarat adalah lompatan yang penujukan

alamatnya bernilai alamat relatif terhadap alamat posisi melompat.

Lompatan Absolut Tanpa Syarat: JP, nn : PC ← nn

Instruksi ini memasukkan alamt memeori nn keregister PC (Program

Counter), sehingga mikro prosesor akan menjalankan instruksi yang ada

pada lokasi alamat nn.

Lompatan Relatif Tanpa Syarat : JR e : PC ← PC+ee

Instruksi ini akan membuat lompatan saat bilangan bertanda yang bernilai

positif jika melompat maju ke alamat berikutnya dan bernilai negatif jika

melompat mundur atau kebelakang dari alamat sebelumnya.

Laporan Mikrokontroler Modul 4 31

Page 33: Laporan Modul 4

Di samping jump bersyarat masih ada tiga jenis jump lainya yaitu jump

absolut berbasis register HL , IX ,dan IY dengan menemonik :

JP (HL) : PC ← HL

JP(IX) : PC ← IX

JP(IY) : PC ← IY

Kegiatan Belajar VII : Memahami Instruksi CALL dan ReterunInstruksi Call dan RET digunakan untuk mem bangun dan menjalankan sub

routine program. Sub routine program adalah routrine sebagai program pennggalan

aplikasi yang dapat dipanggil secara berulang-ulang dari program utama, untuk

pemnggilan program routine digunakan perintah CALL sedangkan untuk kembali

lagi digunakan RET. Pembentukan layanan sub routine dapat digambarkan sebagai

berikut :

Instruksi CALL dan RET ada dua jenis yaitu :

CALL tanpa syarat

CALL ber syarat

RET tanpa syarat

RET bersyarat

Nilai relatif lompatan dapat dihitung denagn rumus :1. Jika melompat maju ke alamat diatasnya :

e = d – (S + 02)2. Jika melompt mundur ke alamat sebelumnya:

e =(S + 02) – d lalu di kompelemen duakan

dimana d = alamatr tujuan dan S = alamat asal perintah jump

ProgramUtama

CAAL RT1 RT1 ---------------------------------RET

Laporan Mikrokontroler Modul 4 32

Page 34: Laporan Modul 4

CALL tanpa syarat

Instruksi CALL tanpa syarat adlah perintah menjlankan sub routin

program dengan menunjukan alamat absolut dari program sub routine.

Perintah CALL tanpa syarai dinyataka dengan perintah :

CALL nn

Pada saat ini terjadi proses :

(SP-1) ← PCH

(SP-2) ← PCL

PC ← nn

Nilai dari program kounter pada program utama dimasukkan ke stack

semacam perintah PUSH, dan PC diisi nilai alamat awal nn dimana sub routin

yang di CALL.

CALL bersyarat

Instruksi CALL tanpa syarat adlah perintah menjlankan sub routin

program dengan menunjukan alamat absolut dari program sub routine tersebut

jika syarat terpenuhi . Perintah CALL tanpa syarai dinyataka dengan perintah :

CALL cc, nn

Pada saat ini terjadi proses,jika syarat terpenuhi atau kondisi terpenuhi maka :

(SP-1)← PCH

(SP-2)←PCL

SP ←SP-2

PC ←nn

Nilai dari program kounter pada program utama dimasukkan ke stack

semacam perintah PUSH, dan PC diisi nilai alamat awal nn dimana sub routin

yang di CALL

Jika syarat tidak terpenuhi maka program counter tidak mencabang atau

kontinyu keperintah berikutnya.

Perintah CALL bersyarat adalah :

Laporan Mikrokontroler Modul 4 33

Page 35: Laporan Modul 4

CALL C, nn : jika ada Carry flag atau Cy = 1 maka PC diisi nn, untuk keadaan

lain PC kontinyu.

CALL M,nn : jika ada sign flag atau S =n 1 maka PC diisi nn, untuk keadaan

lain PC kontinyu

CALL NC, nn : jika tidak ada carry flag atau Cy = 0 maka PC diisi nn, untuk

keadaan lain PC kontinyu

CALL NZ, nn : jika operasi ALU sebelumnya tidak sama dengan nol atau Z =

0 maka PC diisi nn, untuk keadaan lain PC kontinyu

CALL Z, nn : jika operasi ALU sebelumnya sama denagan nol atau Z =1

maka PC diisi nn, untuk keadaan lain PC kontinyu

CALL P, nn : jika tidak ada sign flag atau S =0 maka PC diisi nn, untuk

keadaan lain PC kontinyu

CALL PE, nn : jika hasil operasi ALU sebelumnya paritasnya genap atau nilai

falg P =1 maka PC diisi nn, untuk keadaan lain PC kontinyu

CALL Po, nn : jika hasil operasi ALU sebelumnya paritasnya ganjil atau nilai

falg P =0 maka PC diisi nn, untuk keadaan lain PC kontinyu

RETURN tanpa syarat

Perintah RETURN tanpas syarat digunakan untuk mengembalikan

program counter ke program utama setelah menyelesaikan program sub

routine. Perintah return tanpa syarat adalah :

RET

Pada saat ini terjadi proses:

PCL ← (SP)

PCH ←(SP+1)

SP ←SP +2

RETURN bersyarat

Perintah RETURN bersyarat digunakan untuk mengembalikan program

counter ke program utama setelah menyelesaikan program sub routine, jika

jika syarat yang ditetapkan terpenuhi. Jika syarat tidak terpenuhi maka PC

kontinyu di sub routine.

Perintah RETURN bersyarat adalah:

Laporan Mikrokontroler Modul 4 34

Page 36: Laporan Modul 4

RET cc

Pada saat ini terjadi proses:

PCL ← (SP)

PCH ←(SP+1)

SP ←SP +2

Dan jika syarat tidak terpenuhi maka : PC kotinyu ke instruksi

berikutnya di sub routine.

Perintah RET bersyarat adlah :

o RET C, nn : jika ada Carry flag atau Cy = 1 maka PC diisi nn, untuk

keadaan lain PC kontinyu.

o RET M,nn : jika ada sign flag atau S =n 1 maka PC diisi nn, untuk

keadaan lain PC kontinyu

o REL NC, nn : jika tidak ada carry flag atau Cy = 0 maka PC diisi nn,

untuk keadaan lain PC kontinyu

o RET NZ, nn : jika operasi ALU sebelumnya tidak sama dengan nol atau

Z = 0 maka PC diisi nn, untuk keadaan lain PC kontinyu

o RET Z, nn : jika operasi ALU sebelumnya sama denagan nol atau Z =1

maka PC diisi nn, untuk keadaan lain PC kontinyu

o RET P, nn : jika tidak ada sign flag atau S =0 maka PC diisi nn, untuk

keadaan lain PC kontinyu

o RET PE, nn : jika hasil operasi ALU sebelumnya paritasnya genap atau

nilai falg P =1 maka PC diisi nn, untuk keadaan lain PC kontinyu

o RET Po, nn : jika hasil operasi ALU sebelumnya paritasnya ganjil atau

nilai falg P =0 maka PC diisi nn, untuk keadaan lain PC kontinyu

Disamping itu ada dua perintah RETURN lainya yaitu :

RETI : Return from interrupt

RETNI : Return from Non maskabele interrupt.

Laporan Mikrokontroler Modul 4 35