Bahan kuliah 7 pemograman lanjutan
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
PEMOGRAMAN
I
LANJUTAN
Operasi-operasi aritmatika dan logika pada mikroprosessor sama seperti
operasi pada system digital biasa. Operasi aritmatika yang dapat dikerjakan oleh
mikroprosessor 8085 adalah Penjumlahan, Pengurangan dan operasi logika adalah
Invers, AND, OR, EX-OR, Instruksi Banding dan instruksi Geser serta Putar.
Instruksi Pemrosesan Data (Data Processing)
Instruksi pemrosesan data merupakan instruksi aritmatika dan logika.
Seluruh operasi dari instruksi akan mempengaruhi isi dari Bendera (Flag).
Instruksi aritmatika terdiri dari :
Instruksi Penjumlahan (ADD)
Instruksi Penjumlahan dapat dibedakan lagi atas :
Penjumlahan 8-bit
Instruksi penjumlahan bilangan biner 8-bit ini merupakan penjumlahan
isi register A dengan isi register yang lain atau suatu bilangan konstanta.
Tabel 1. Instruksi Penjumlahan 8-bit tanpa carry
Assembly
Kode-mesin
ADI d8
C6 – d8
ADD r
Fungsi
;
op – code
Acc = Acc + d8
;
Acc = Acc + (Reg)
Contoh :
MVI A,85
;
Acc
Dosen Pembimbing : Salahuddin, SST
= 85
85(H)
1000 0101(2)
1
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
MVI C,83
;
Reg.C= 83
83(H)
1000 0111(2)
ADD C
;
Acc = Acc + C
08(H)
1 0000 1000(2)
RST
;
Dari hasil operasi di atas maka : Acc = 08 dan bit register flag akan berisi : S=0,
H=0, P=0, Cy=1.
Isi register 0 tetap 83.
Instruksi Penjumlahan dengan carry
Penjumlahan data 8-bit dengan carry adalah penjumlahan Akkumulator
dengan data atau isi register dan ditambahkan dengan carry sebelum operasi
dilaksanakan. Bentuk formatnya adalah sebagai berikut :
Tabel 2. Instruksi Penjumlahan 8-bit dengan carry.
Assembli
Kode-mesin
ACI d8
CE-d8
ADC r
op-code
Fungsi
; Acc = Acc + d8 + Cy
; Acc = Acc + Reg.r + Cy
Contoh :
MVI A, 89
;
Acc = 89
MVI C, 83
;
Reg.C = 83
ADI 83
;
Acc + 83
ADC C
;
Acc = Acc + c
RST 1
;
Dari hasil operasi diatas maka : cc=90 dan bit register flag akan berisi:
S=1, z=0, H=1, P=1, Cy=0. Isi register C tetap 83.
Instruksi Penjumlahan dengan 16-bit
Dosen Pembimbing : Salahuddin, SST
2
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi penjumlahan 16-bit adalah penjumlahan isi pasangan register L
dengan pasangan register lain, dimana dalam pemerosesan isi pasangan register
tersebut melalui Akkumulator. Instruksi ini adalah DAD (Double ADD).
Tabel 3. Instruksi Penjumlahan 16-bit
Assembli
Kode-mesin
DAD rp
op-code
Fungsi
;
(HL) = (HL) + rp
Contoh :
LXI H,8456
8456(H)
LXI B,8742
8743(H)
DAD B
Cy-1
OB99
RST 1
Setelah operasi diatas isi Register HL=OB99(H)dan BC=2743 (tetap) dan Cy=1
Instruksi Penambahan satu (Increment)
Instruksi penambahan satu ada dua buah, yaitu penambahan isi register 8bit dengan satu dan penambahan isi pasangan register dengan satu, tetapi
penambahan satu untuk pasangan register tidak mempengaruhi
isi bendera, dengan bentuk formasi sebagai berikut:
Tabel 4. Instruksi Penambahan Satu
Assembli
Kode-mesin
Fungsi
INR r
op-code
; Reg. r
= Reg.r + 1
INX rp
op-code
; Reg. rp
= Reg.rp + 1
Instruksi Pengurangan (SUB)
Dosen Pembimbing : Salahuddin, SST
3
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi Pengurangan dibedakan atas :
-
Instruksi Pengurangan dengan satu (Decremen)
Instruksi ini menyebabkan suatu register atau pasangan register berkurang satu.
Tabel 5. Instruksi Pengurangan Satu
Assembli
Kode-mesin
DCR r
op – code
; Reg. r
DCX rp
op – code
; Reg. rp = Reg. rp - 1
-
Fungsi
= Reg.r - 1
Instruksi Pengurangan data 8 - bit
Instruksi pengurangan data 8-bit adalah pengurangan isi akkumulator dengan data
8-bit atau isi register dengan bentuk format sebagai berikut :
Tabel 6. Instruksi pengurangan 8-bit tanpa borrow.
Assembli
Kode-mesin
SUI
op-code
; Acc = Acc - d8
op-code
; Acc = Acc - Reg.r
d8
SUB r
Fungsi
Contoh :
MVI A,84
84(H)
1000 0100(2)
MVI B,27
27(H)
0010 0111(2)
SUB B
5D(H)
0101
1191(2)
RST 1
Setelah program diatas dieksekusi maka Acc=5D (H), B=27(H), Flag: S=0, Z=0,
H=1, Cy=0.
- Instruksi Pengurangan data 8-bit dengan borrow
Dosen Pembimbing : Salahuddin, SST
4
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Tabel 7. Instruksi pengurangan 8-bit dengan borrow.
Assembli
Kode-mesin
Fungsi
SBI d8
op-code
; Acc = Acc - d8 - Cy
SBB r
op-code
; Acc = Acc - Reg.r – Cy
MVI A,57
57(H)
0101 0111(2)
SUI 58
58(H)
0101 1000(2)
Contoh :
MVI B,27
Cy=1 FF(H)
1111 1111
SBB B
27(H)
0010 0111
RST 1
D7(H)
1101 0111(2)
Setelah program diatas dieksekusi maka Acc=D7(H), B=27(H), Flag : S=1, Z=0,
H=0, Cy=0, P=1.
Instruksi Pendesimalan (DAA)
Instruksi ini berfungsi untuk menambahkan 06, 60, 66 terhadap isi akkumulator
jika hasil penjumlahan lebih besar dari 9. Penambahan 06, 60 atau 66 pada
akkumulator berdasarkan isi dari Register Bendera.
Contoh:
MVI A, 84
84(H)
1000 0100(2)
MVI B,27
27(H)
0010 0111(2)
ADD B
AB(H)
1010 1011(2)
DAA
66
0110 0110(2)
RST 1
Cy=1
Dosen Pembimbing : Salahuddin, SST
11
0001 0001(2)
5
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Penjumlahan diatas adalah penjumlahan Desimal.
Setelah program diatas dieksekusi maka Acc=11(H), B=27(H), Flag: S=0, Z=0,
H=1, Cy=1.
Instruksi Banding (Compare)
Instruksi Banding merupakan instruksi pengurangan isiAkkumulator
dengan suatu data 8-bit atau isi suatu register, tetapi isi dari akkumulator tetap
yang berubah hanya register bendera.
Tabel 8. Instruksi Pembandingan
Assemli
Kode-mesin
Fungsi
CPI d8
FE-d8
;
Flag = Acc – d8
CPM r
op-code
;
Flag = Acc – Reg. r
Contoh :
1. MVI A, 87
2. MVI A, 78
3. MVI A, 67
MVI A, 27
CPI 78
MVI C, 80
CMP B
RST 1
CMP C
RST 1
RST 1
Contoh 1 merupakan pembandingan isi Akumulator dengan isi Register B,
Proses pembandingan ini dilakukan dengan cara pengurangan isi Acc terhadap isi
reg. B tetapi isi Acc tidak berubah. Setelah program diatas dieksekusi maka Acc =
87(H), B=27(H), Flag P = 1, S = 0, Z = 0, H = = 0, Cy = 0.
Program contoh 2 akan menghasilkan Flag : Cy = 0, Z = 1.
Program contoh 3 akan menghasilkan Flag : Cy = 1, Z = 0.
Dosen Pembimbing : Salahuddin, SST
6
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi Operasi Logika
Instruksi-instruksi logika ini melaksanakan operasi logika antara
Akkumulator dengan suatu data 8-bit atau dengan isi suatu register dimana
instruksi ini terdiri dari operasi logika AND (^), logika OR (v), dan Exclusive-OR.
Instruksi Logika AND.
Instruksi Logika AND ini akan menghasilkan output seperti table
kebenaran gerbang logika AND, jadi instruksi ini padat mewakili fungsi
gerbang logika AND biasa.
Tabel 9. Instruksi Logika AND
Assembli
Kode-mesin
Fungsi
ANI d8
E6-d8
;
Acc = Acc ^ d8
ANA r
op-code
;
Acc = Acc ^ Reg. r
Contoh :
MVI A, 84
84(H)
MVI B, 27
27(H)
ANA B
04(H)
1000 0100(2)
^
0010 0111(2)
^
0000 0100(2)
RST 1
Instruksi Logika OR.
Tabel 10. Instruksi Logika OR
Assembli
Kode-mesin
ORI d8
F6-d8
;
Acc = Acc v d8
ORA r
op-code
;
Acc = Acc v Reg. r
Dosen Pembimbing : Salahuddin, SST
Fungsi
7
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Contoh :
MVI A, 84
84(H)
MVI B, 27
27(H)
ORA B
A7(H)
1000 0100(2)
v
0010 0111(2)
v
1010 0111(2)
RST 1
Instruksi Logika Ex-OR
Tabel 11. Instruksi Logika Ex - OR
Assembli
Kode-mesin
Fungsi
XRI d8
EE-d8
;
Acc = Acc v d8
XRA r
op-code
;
Acc = Acc v Reg. r
Contoh :
MVI A, 84
84(H)
MVI B, 27
27(H)
XRA B
A3(H)
1000 0100(2)
v
0010 0111(2)
v
1010 0011(2)
RST 1
Instruksi Komplement (Complement)
Instruksi Complement ini ada dua buah yaitu CMC dan CMA,
dimana CMC berfungsi untuk mengkomplemenkan isi bit carry dari
register bendera dan CMA berfungsi untuk mengkomplemenkan isi dari
register A.
Instruksi Geser (Shift) dan Putar (rotate).
Dosen Pembimbing : Salahuddin, SST
8
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi ini berfungsi untuk menggeser isi dari Register A kea rah kanan
atau kiri seperti digambarkan pada gambar 4.1 berikut :
Cy
Akkumulator
RLC
Cy
Akkumulator
RRC
RAL
RAR
Akkumulator
Cy
Akkumulator
Cy
Cy
Akkumulator
gambar 4.1. Fungsi Instruksi Geser dan Putar
Contoh 1 :
Contoh 2 :
STC
; Set Carry Cy = 1
STC
CMC
: Complement Carry Cy = 0
MVI A, 82 ;A=82(H) Cy=1
Dosen Pembimbing : Salahuddin, SST
; Set Carry Cy = 1
9
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
MVI A, 82
; A = 82(H)
Cy = 0
RRC
RLC
; A = 05(H)
Cy = 1
RST 1
; A = 41(H)
Cy = 0
RST 1
Contoh 3 :
Contoh 4 :
STC
STC ; Set Carry Cy = 1
; Set Carry Cy = 1
MVI A, 82
RAL
; A = 82(H)
; A = 05(H)
Cy = 1
Cy = 1
MVI A, 82 ;A=82(H) Cy=1
RAR ; A = C1(H) Cy = 0
RST 1
RST 1
Instruksi Kontrol
CPU 8085 mempunyai beberapa instruksi control yang menentukan arah
suatu program, mengambil keputusan dan memodifikasi arah program sesuai
dengan hasil pengambilan keputusan. Instruksi ini terdiri dari :
1.
Instruksi Lompat (JUMP)
Instruksi ini terbagi atas dua jenis, yaitu mutlak lompat (unconditional
jump) dan lompat bersyarat (conditional jump). Adapun bentuk format dari
instruksi ini seperti pada table 12.
Tabel 12. Instruksi Lompat
Assembli
Kode-Mesin
JMP a16
C3-ll-hh
; Lompat ke alamat a 16
JZ
a16
CA-ll hh
; Lompat jika ZERO
JNZ a16
C2-ll-hh
; Lompat jika tidak ZERO
JC
a16
DA-ll-hh
; Lompat jika ada Carry
JNC a16
D2-ll-hh
; Lompat jika tidak ada Carry
JM
a16
FA-ll-hh
; Lompat jika minus
JP
a16
F2-ll-hh
; Lompat jika Positif
Dosen Pembimbing : Salahuddin, SST
Fungsi
10
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
2.
JPE a16
EA-ll-hh
; Lompat jika Parity Genap
JPO a16
E2-ll-hh
; Lompat jika Parity Ganjil
Instruksi Cabang dan Kembali (CALL, RET)
Instruksi CALL membuat suatu program melaksanakan suatu program
subrutin yang alamat awalnya setelah kode operasi dari instruksi CALL tersebut,
dan akan kembali lagi ke program utama jika instruksi kembali RET (return)
dijumpai. Instruksi ini terdiri dari dua jenis yaitu instruksi bersyarat dan tidak
bersyarat. Syarat dari instruksi ini dilihat dari kondisi isi register Bendera. Setelah
instruksi ini dikerjakan isi register bendera tidak berubah.
Tabel 13. Instruksi Cabang
Assembli
Kode-Mesin
Fungsi
CALL a16
CE-ll-hh
; CALL Sub Rutin pada alamat a 16
CC
a16
DC-ll hh
; CALL Sub Rutin jika ada Carry
CNC a16
D4-ll-hh
; CALL Sub Rutin jika tidak ada Carry
CZ
a16
CC-ll-hh
; CALL jika zero
CNZ a16
C4-ll-hh
; CALL jika tidak zero
CM
a16
FC-ll-hh
; CALL jika minus
CP
a16
F4-ll-hh
; CALL jika Positif
CPE a16
EC-ll-hh
; CALL jika Parity Genap
CPO a16
E4-ll-hh
; CALL jika Parity Ganjil
Tabel 14. Instruksi Kembali
Dosen Pembimbing : Salahuddin, SST
11
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Assembli
Kode-Mesin
RET
C9
; Kembali ke Program Utama
RC
D8
; Kembali jika ada Carry
RNC
D0
; Kembali jika tidak ada Carry
RZ
C8
; Kembali jika hasil 0
RNZ
C0
; Kembali jika hasil tidak 0
RM
F0
; Kembali jika Akkumulator negatif
RP
FB
; Kembali jika Akkumulator Positif
RPE
E0
; Kembali jika Acc berparity Genap
RPO
EB
; Kembali jika Acc berparity Ganjil
Dosen Pembimbing : Salahuddin, SST
Fungsi
12
PEMOGRAMAN
I
LANJUTAN
Operasi-operasi aritmatika dan logika pada mikroprosessor sama seperti
operasi pada system digital biasa. Operasi aritmatika yang dapat dikerjakan oleh
mikroprosessor 8085 adalah Penjumlahan, Pengurangan dan operasi logika adalah
Invers, AND, OR, EX-OR, Instruksi Banding dan instruksi Geser serta Putar.
Instruksi Pemrosesan Data (Data Processing)
Instruksi pemrosesan data merupakan instruksi aritmatika dan logika.
Seluruh operasi dari instruksi akan mempengaruhi isi dari Bendera (Flag).
Instruksi aritmatika terdiri dari :
Instruksi Penjumlahan (ADD)
Instruksi Penjumlahan dapat dibedakan lagi atas :
Penjumlahan 8-bit
Instruksi penjumlahan bilangan biner 8-bit ini merupakan penjumlahan
isi register A dengan isi register yang lain atau suatu bilangan konstanta.
Tabel 1. Instruksi Penjumlahan 8-bit tanpa carry
Assembly
Kode-mesin
ADI d8
C6 – d8
ADD r
Fungsi
;
op – code
Acc = Acc + d8
;
Acc = Acc + (Reg)
Contoh :
MVI A,85
;
Acc
Dosen Pembimbing : Salahuddin, SST
= 85
85(H)
1000 0101(2)
1
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
MVI C,83
;
Reg.C= 83
83(H)
1000 0111(2)
ADD C
;
Acc = Acc + C
08(H)
1 0000 1000(2)
RST
;
Dari hasil operasi di atas maka : Acc = 08 dan bit register flag akan berisi : S=0,
H=0, P=0, Cy=1.
Isi register 0 tetap 83.
Instruksi Penjumlahan dengan carry
Penjumlahan data 8-bit dengan carry adalah penjumlahan Akkumulator
dengan data atau isi register dan ditambahkan dengan carry sebelum operasi
dilaksanakan. Bentuk formatnya adalah sebagai berikut :
Tabel 2. Instruksi Penjumlahan 8-bit dengan carry.
Assembli
Kode-mesin
ACI d8
CE-d8
ADC r
op-code
Fungsi
; Acc = Acc + d8 + Cy
; Acc = Acc + Reg.r + Cy
Contoh :
MVI A, 89
;
Acc = 89
MVI C, 83
;
Reg.C = 83
ADI 83
;
Acc + 83
ADC C
;
Acc = Acc + c
RST 1
;
Dari hasil operasi diatas maka : cc=90 dan bit register flag akan berisi:
S=1, z=0, H=1, P=1, Cy=0. Isi register C tetap 83.
Instruksi Penjumlahan dengan 16-bit
Dosen Pembimbing : Salahuddin, SST
2
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi penjumlahan 16-bit adalah penjumlahan isi pasangan register L
dengan pasangan register lain, dimana dalam pemerosesan isi pasangan register
tersebut melalui Akkumulator. Instruksi ini adalah DAD (Double ADD).
Tabel 3. Instruksi Penjumlahan 16-bit
Assembli
Kode-mesin
DAD rp
op-code
Fungsi
;
(HL) = (HL) + rp
Contoh :
LXI H,8456
8456(H)
LXI B,8742
8743(H)
DAD B
Cy-1
OB99
RST 1
Setelah operasi diatas isi Register HL=OB99(H)dan BC=2743 (tetap) dan Cy=1
Instruksi Penambahan satu (Increment)
Instruksi penambahan satu ada dua buah, yaitu penambahan isi register 8bit dengan satu dan penambahan isi pasangan register dengan satu, tetapi
penambahan satu untuk pasangan register tidak mempengaruhi
isi bendera, dengan bentuk formasi sebagai berikut:
Tabel 4. Instruksi Penambahan Satu
Assembli
Kode-mesin
Fungsi
INR r
op-code
; Reg. r
= Reg.r + 1
INX rp
op-code
; Reg. rp
= Reg.rp + 1
Instruksi Pengurangan (SUB)
Dosen Pembimbing : Salahuddin, SST
3
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi Pengurangan dibedakan atas :
-
Instruksi Pengurangan dengan satu (Decremen)
Instruksi ini menyebabkan suatu register atau pasangan register berkurang satu.
Tabel 5. Instruksi Pengurangan Satu
Assembli
Kode-mesin
DCR r
op – code
; Reg. r
DCX rp
op – code
; Reg. rp = Reg. rp - 1
-
Fungsi
= Reg.r - 1
Instruksi Pengurangan data 8 - bit
Instruksi pengurangan data 8-bit adalah pengurangan isi akkumulator dengan data
8-bit atau isi register dengan bentuk format sebagai berikut :
Tabel 6. Instruksi pengurangan 8-bit tanpa borrow.
Assembli
Kode-mesin
SUI
op-code
; Acc = Acc - d8
op-code
; Acc = Acc - Reg.r
d8
SUB r
Fungsi
Contoh :
MVI A,84
84(H)
1000 0100(2)
MVI B,27
27(H)
0010 0111(2)
SUB B
5D(H)
0101
1191(2)
RST 1
Setelah program diatas dieksekusi maka Acc=5D (H), B=27(H), Flag: S=0, Z=0,
H=1, Cy=0.
- Instruksi Pengurangan data 8-bit dengan borrow
Dosen Pembimbing : Salahuddin, SST
4
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Tabel 7. Instruksi pengurangan 8-bit dengan borrow.
Assembli
Kode-mesin
Fungsi
SBI d8
op-code
; Acc = Acc - d8 - Cy
SBB r
op-code
; Acc = Acc - Reg.r – Cy
MVI A,57
57(H)
0101 0111(2)
SUI 58
58(H)
0101 1000(2)
Contoh :
MVI B,27
Cy=1 FF(H)
1111 1111
SBB B
27(H)
0010 0111
RST 1
D7(H)
1101 0111(2)
Setelah program diatas dieksekusi maka Acc=D7(H), B=27(H), Flag : S=1, Z=0,
H=0, Cy=0, P=1.
Instruksi Pendesimalan (DAA)
Instruksi ini berfungsi untuk menambahkan 06, 60, 66 terhadap isi akkumulator
jika hasil penjumlahan lebih besar dari 9. Penambahan 06, 60 atau 66 pada
akkumulator berdasarkan isi dari Register Bendera.
Contoh:
MVI A, 84
84(H)
1000 0100(2)
MVI B,27
27(H)
0010 0111(2)
ADD B
AB(H)
1010 1011(2)
DAA
66
0110 0110(2)
RST 1
Cy=1
Dosen Pembimbing : Salahuddin, SST
11
0001 0001(2)
5
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Penjumlahan diatas adalah penjumlahan Desimal.
Setelah program diatas dieksekusi maka Acc=11(H), B=27(H), Flag: S=0, Z=0,
H=1, Cy=1.
Instruksi Banding (Compare)
Instruksi Banding merupakan instruksi pengurangan isiAkkumulator
dengan suatu data 8-bit atau isi suatu register, tetapi isi dari akkumulator tetap
yang berubah hanya register bendera.
Tabel 8. Instruksi Pembandingan
Assemli
Kode-mesin
Fungsi
CPI d8
FE-d8
;
Flag = Acc – d8
CPM r
op-code
;
Flag = Acc – Reg. r
Contoh :
1. MVI A, 87
2. MVI A, 78
3. MVI A, 67
MVI A, 27
CPI 78
MVI C, 80
CMP B
RST 1
CMP C
RST 1
RST 1
Contoh 1 merupakan pembandingan isi Akumulator dengan isi Register B,
Proses pembandingan ini dilakukan dengan cara pengurangan isi Acc terhadap isi
reg. B tetapi isi Acc tidak berubah. Setelah program diatas dieksekusi maka Acc =
87(H), B=27(H), Flag P = 1, S = 0, Z = 0, H = = 0, Cy = 0.
Program contoh 2 akan menghasilkan Flag : Cy = 0, Z = 1.
Program contoh 3 akan menghasilkan Flag : Cy = 1, Z = 0.
Dosen Pembimbing : Salahuddin, SST
6
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi Operasi Logika
Instruksi-instruksi logika ini melaksanakan operasi logika antara
Akkumulator dengan suatu data 8-bit atau dengan isi suatu register dimana
instruksi ini terdiri dari operasi logika AND (^), logika OR (v), dan Exclusive-OR.
Instruksi Logika AND.
Instruksi Logika AND ini akan menghasilkan output seperti table
kebenaran gerbang logika AND, jadi instruksi ini padat mewakili fungsi
gerbang logika AND biasa.
Tabel 9. Instruksi Logika AND
Assembli
Kode-mesin
Fungsi
ANI d8
E6-d8
;
Acc = Acc ^ d8
ANA r
op-code
;
Acc = Acc ^ Reg. r
Contoh :
MVI A, 84
84(H)
MVI B, 27
27(H)
ANA B
04(H)
1000 0100(2)
^
0010 0111(2)
^
0000 0100(2)
RST 1
Instruksi Logika OR.
Tabel 10. Instruksi Logika OR
Assembli
Kode-mesin
ORI d8
F6-d8
;
Acc = Acc v d8
ORA r
op-code
;
Acc = Acc v Reg. r
Dosen Pembimbing : Salahuddin, SST
Fungsi
7
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Contoh :
MVI A, 84
84(H)
MVI B, 27
27(H)
ORA B
A7(H)
1000 0100(2)
v
0010 0111(2)
v
1010 0111(2)
RST 1
Instruksi Logika Ex-OR
Tabel 11. Instruksi Logika Ex - OR
Assembli
Kode-mesin
Fungsi
XRI d8
EE-d8
;
Acc = Acc v d8
XRA r
op-code
;
Acc = Acc v Reg. r
Contoh :
MVI A, 84
84(H)
MVI B, 27
27(H)
XRA B
A3(H)
1000 0100(2)
v
0010 0111(2)
v
1010 0011(2)
RST 1
Instruksi Komplement (Complement)
Instruksi Complement ini ada dua buah yaitu CMC dan CMA,
dimana CMC berfungsi untuk mengkomplemenkan isi bit carry dari
register bendera dan CMA berfungsi untuk mengkomplemenkan isi dari
register A.
Instruksi Geser (Shift) dan Putar (rotate).
Dosen Pembimbing : Salahuddin, SST
8
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Instruksi ini berfungsi untuk menggeser isi dari Register A kea rah kanan
atau kiri seperti digambarkan pada gambar 4.1 berikut :
Cy
Akkumulator
RLC
Cy
Akkumulator
RRC
RAL
RAR
Akkumulator
Cy
Akkumulator
Cy
Cy
Akkumulator
gambar 4.1. Fungsi Instruksi Geser dan Putar
Contoh 1 :
Contoh 2 :
STC
; Set Carry Cy = 1
STC
CMC
: Complement Carry Cy = 0
MVI A, 82 ;A=82(H) Cy=1
Dosen Pembimbing : Salahuddin, SST
; Set Carry Cy = 1
9
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
MVI A, 82
; A = 82(H)
Cy = 0
RRC
RLC
; A = 05(H)
Cy = 1
RST 1
; A = 41(H)
Cy = 0
RST 1
Contoh 3 :
Contoh 4 :
STC
STC ; Set Carry Cy = 1
; Set Carry Cy = 1
MVI A, 82
RAL
; A = 82(H)
; A = 05(H)
Cy = 1
Cy = 1
MVI A, 82 ;A=82(H) Cy=1
RAR ; A = C1(H) Cy = 0
RST 1
RST 1
Instruksi Kontrol
CPU 8085 mempunyai beberapa instruksi control yang menentukan arah
suatu program, mengambil keputusan dan memodifikasi arah program sesuai
dengan hasil pengambilan keputusan. Instruksi ini terdiri dari :
1.
Instruksi Lompat (JUMP)
Instruksi ini terbagi atas dua jenis, yaitu mutlak lompat (unconditional
jump) dan lompat bersyarat (conditional jump). Adapun bentuk format dari
instruksi ini seperti pada table 12.
Tabel 12. Instruksi Lompat
Assembli
Kode-Mesin
JMP a16
C3-ll-hh
; Lompat ke alamat a 16
JZ
a16
CA-ll hh
; Lompat jika ZERO
JNZ a16
C2-ll-hh
; Lompat jika tidak ZERO
JC
a16
DA-ll-hh
; Lompat jika ada Carry
JNC a16
D2-ll-hh
; Lompat jika tidak ada Carry
JM
a16
FA-ll-hh
; Lompat jika minus
JP
a16
F2-ll-hh
; Lompat jika Positif
Dosen Pembimbing : Salahuddin, SST
Fungsi
10
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
2.
JPE a16
EA-ll-hh
; Lompat jika Parity Genap
JPO a16
E2-ll-hh
; Lompat jika Parity Ganjil
Instruksi Cabang dan Kembali (CALL, RET)
Instruksi CALL membuat suatu program melaksanakan suatu program
subrutin yang alamat awalnya setelah kode operasi dari instruksi CALL tersebut,
dan akan kembali lagi ke program utama jika instruksi kembali RET (return)
dijumpai. Instruksi ini terdiri dari dua jenis yaitu instruksi bersyarat dan tidak
bersyarat. Syarat dari instruksi ini dilihat dari kondisi isi register Bendera. Setelah
instruksi ini dikerjakan isi register bendera tidak berubah.
Tabel 13. Instruksi Cabang
Assembli
Kode-Mesin
Fungsi
CALL a16
CE-ll-hh
; CALL Sub Rutin pada alamat a 16
CC
a16
DC-ll hh
; CALL Sub Rutin jika ada Carry
CNC a16
D4-ll-hh
; CALL Sub Rutin jika tidak ada Carry
CZ
a16
CC-ll-hh
; CALL jika zero
CNZ a16
C4-ll-hh
; CALL jika tidak zero
CM
a16
FC-ll-hh
; CALL jika minus
CP
a16
F4-ll-hh
; CALL jika Positif
CPE a16
EC-ll-hh
; CALL jika Parity Genap
CPO a16
E4-ll-hh
; CALL jika Parity Ganjil
Tabel 14. Instruksi Kembali
Dosen Pembimbing : Salahuddin, SST
11
Bahan Kuliah Mikroprosessor untuk Teknik Listrik
Assembli
Kode-Mesin
RET
C9
; Kembali ke Program Utama
RC
D8
; Kembali jika ada Carry
RNC
D0
; Kembali jika tidak ada Carry
RZ
C8
; Kembali jika hasil 0
RNZ
C0
; Kembali jika hasil tidak 0
RM
F0
; Kembali jika Akkumulator negatif
RP
FB
; Kembali jika Akkumulator Positif
RPE
E0
; Kembali jika Acc berparity Genap
RPO
EB
; Kembali jika Acc berparity Ganjil
Dosen Pembimbing : Salahuddin, SST
Fungsi
12