PEMROGRAMAN 8085 Kelompok Instruksi
Email :
[email protected] salahuddin ali00@gmail com
[email protected] Web Site : www.salahuddinali.com
Kelompok Instruksi
Transfer Data
MOV transfer data MVI transfer data secara immediate LDA bebani akumulator dengan data memori secara langsung STA simpan akumulator ke dalam memori secara langsung g g LHLD bebani H dan L dengan data memori secara langsung SHLD simpan H dan L ke dalam memori secara langsung b b d d d LXI bebani pasangan register dengan data secara immediate LDAX bebani akumulator dengan data beralamat register pasangan STAX simpan akumulator ke alamat yang ditunjuk register pasangan XCHG exchange h H dan d L dengan d D dan d E XTHL exchange top of stack dengan H dan L
Kelompok Instruksi
Pemrosesan Data
Instruksi pemrosesan data merupakan instruksi aritmatika dan logika. Seluruh operasi dari instruksi ini akan mempengaruhi isi Reg. A (akumulator) Reg Bendera (Flag). (Flag) dan Reg.
Instruksi Pemrosesan Data PENJUMLAHAN
Penjumlahan Penjumlahan Penjumlahan Penambahan
8-bit dengan carry 16-bit 16 bit satu (Increment)
Penjumlahan 8-bit
Penjumlahan 88-bit merupakan instruksi penjumlahan j l h data d t Reg. R A dengan d data d t Reg. R lainnya atau dengan data suatu konstanta Assembly
Kode Mesin
Fungsi
ADI d8
C6C6-d8
Acc=Acc+d8
ADD r
Op--code Op
Acc=Acc + (Reg)
Contoh Penjumlahan 8-bit
Cy
Hasil Operasi p penjumlahan p j ADD C mengakibatkan g
Reg. A = 08H, Reg.C tetap 83H Reg g Flag g bit S=0,, Z=0,, AC=0,, P=0,, Cy=1 y
Penjumlahan dengan carry
Penjumlahan data 8-bit dengan carry adalah penjumlahan j l h Akkumulator Akk l t dengan d data d t register i t dan ditambahkan dengan carry sebelum operasi dil k dilaksanakan k Assembly
Kode Mesin
Fungsi
ACI d8
CE--d8 CE
Acc=Acc Acc Acc + d8 + Cy
ADC r
OpOp-code
Acc=Acc + (Reg) + Cy
Contoh Penjumlahan dengan carry MVI A, 85H MVI C, 83H ADI 83H ADC C RST 1
; Acc = 85H ; Reg.C = 83H ; Acc = Acc + 83H = 85H+83H= 08H , Cy=1 ; Acc = Acc + C + Cy = 08H + 83H + 1= 8CH
Cy
Hasil Operasi penjumlahan ADI 83H mengakibatkan
Reg. A = 08H Reg Flag bit S=0, Z=0, AC=0, P=0, Cy=1
Penjumlahan 16-bit
Instruksi penjumlahan 1616-bit adalah penjumlahan j l h isi i i pasangan register i t HL dengan d pasangan register lain Pemrosesan isi pasangan register tersebut adalah melalui Akkumulator Assemblyy
Kode Mesin
Fungsi g
DAD rp
OpOp-code
HL = HL + rp
Contoh Penjumlahan 16-bit LXI H,8456H , LXI B,8743H DAD B RST 1
Hasil Operasi penjumlahan DAD B mengakibatkan
Reg. HL= HL HL+BC = 8456H + 8743H = 0B99H Reg Flag bit S=0, Z=0, AC=0, P=0, Cy=1
Instruksi Penambahan satu (Increment)
Instruksi penambahan satu ada dua macam
penambahan isi register 8 bit dengan satu penambahan isi pasangan register dengan satu
Tetapi penambahan satu untuk pasangan register tidak mempengaruhi data Reg. Flag Assemblyy
Kode Mesin
Fungsi g
INR r
OpOp-code
Reg. r = Reg. r + 1
INX rp
O -code OpOp d
R Reg. rp = Reg. R rp + 1
Instruksi Pemrosesan Data PENGURANGAN
Pengurangan 8-bit Pengurangan 8-bit dengan borrow Pengurangan satu (Decrement)
Pengurangan 8-bit Assembly
Kode Mesin
Fungsi
SUI d8
Op--code Op
Acc = Acc - d8
SUB r
Op Op--code
Acc = ACC – Reg. r
Contoh: A 84H MVI A,84H MVI B,27H SUB B RST 1 Hasil Operasi pengurangan SUB B mengakibatkan Reg. A = 5DH B=27H Reg Flag bit S=0, Z=0, AC=1, P=0, Cy=0
1101
Pengurangan 8 8-bit bit dengan borrow Assembly
Kode Mesin
Fungsi
SBI d8
OpOp-code
Acc = Acc - d8 - Cy
SBB r
Op Op--code
Acc = ACC – Reg. r - Cy
C t h Contoh: MVI A,57H SUI 58H MVI B,27H SBB B RST 1
Hasil Operasi p penjumlahan p j SUI 58H mengakibatkan g Reg. A = FFH B=27H Reg Flag bit S=1, Z=0, AC=1, P=1, Cy=1
Pengurangan satu (Decrement)
Assembly
Kode Mesin
Fungsi
DCR r
OpOp-code
Reg r = Reg r - 1
DCX rp
Op--code Op
Reg rp = Reg rp – 1
Instruksi Pendesimalan (DAA) ( ) Instruksi ini berfungsi untuk menambahkan 06, 60, 66 terhadap isi akkumulator jika hasil penjumlahan lebih besar dari 9. Penambahan 06 06, 60 atau 66 pada akkumulator berdasarkan isi dari Register Bendera. Contoh : MVI A,84H MVI B,27H ADD B DAA RST 1 Hasil Operasi p penjumlahan p j DAA mengakibatkan g Reg. A =11 B=27H Reg Flag bit S=0, Z=0, AC=1, P=1, Cy=1
Instruksi Banding (Compare)
Instruksi Banding merupakan instruksi pengurangan isi Akumulator dengan suatu data 8-bit atau isi suatu register, tetapi isi dari akumulator tetap yang berubah hanya register bendera. Instruksi Compare dapat digunakan untuk membandingkan kesamaan, lebih besar atau lebih kecil antara dua bilangan dan indikasinya dapat dilihat pada Reg. flag bit zero dan bit carry
Assembly
Kode Mesin
Fungsi
CPI d8
FEFE-d8
Flag = Acc – d8
CMP r
O d Op--code Op
Fl = A R r Flag Acc – Reg
Contoh 1: MVI A,87H MVI B,27H CMP B RST1
Contoh 2: MVI A,78 CPI 78 RST 1
pengurangan dua bilangan yang sama akan mengakibatkan bit Z pada flag akan berlogika 1
OPERASI LOGIKA
Instruksi-instruksi logika ini melaksanakan operasi logika antara Akkumulator dengan g isi suatu suatu data 8-bit atau dengan register
Instruksi logika AND Instruksi Logika OR Instruksi Logika X-OR
Instruksi logika AND Assembly
Kode Mesin
Fungsi
ANI d8
E6--d8 E6
Acc = Acc ^ d8
ANA r
OpOp-code
Acc=Acc ^ Reg. r
Instruksi logika OR Assembly
Kode Mesin
Fungsi
ORI d8
F6--d8 F6
Acc = Acc ∨ d8
ORA r
OpOp-code
Acc=Acc ∨ Reg. r
Instruksi logika X X--OR Assembly
Kode Mesin
Fungsi
XRI d8
EE--d8 EE
Acc = Acc ∨ d8
XRA r
OpOp-code
Acc=Acc ∨ Reg. r
Contoh: A 84H MVI A,84H MVI B,27H XRA B RST 1
Instruksi komplemen
Instruksi Complement ini ada dua instruksi yaitu CMC dan CMA CMC berfungsi untuk mengkomplemenkan isi bit carry dari register bendera b f i untukk mengkomplemenkan k l k CMA berfungsi isi dari register g A.
Instruksi Geser (Shift) dan Putar (rotate).
Instruksi ini berfungsi untuk menggeser isi dari Register A ke arah kanan atau kiri Instruksi yang ada adalah
RAR RAL RRC RLC
Instruksi RLC dan RRC
Geser bit ke kiri dan ke kanan tanpa mengikutkan ik tk carry
akumulator
RLC CY
RRC
D7
D6
D5
D4
D3
D2
D1
D0
D1
D0
akumulator CY
D7
D6
D5
D4
D3
D2
Contoh RLC dan RRC
CONTOH 1:
CONTOH 2:
STC
;;set carryy Cy=1 y
STC
;;set carryy Cy=1 y
CMC MVI A,82H RLC RST 1
;komplemen Cy ;A=82H Cy=0 ;A=05H Cy=1
MVI A,82H RRC RST 1
;A=82H Cy=1 ;A=41H Cy=0
Instruksi RAL dan RAR
Geser bit ke kiri dan ke kanan dengan mengikutkan ik tk carry
akumulator
RAL CY
RAR
D7
D6
D5
D4
D3
D2
D1
D0
D1
D0
akumulator CY
D7
D6
D5
D4
D3
D2
Contoh RAL dan RAR
CONTOH 1:
CONTOH 2:
STC
;;set carryy Cy=1 y
STC
;;set carryy Cy=1 y
CMC MVI A,82H RAL RST 1
;komplemen Cy ;A=82H Cy=0 ;
MVI A,82H RAR RST 1
;A=82H Cy=1 ;
INSTRUKSI KENDALI I t k i LLompatt (JUMP) Instruksi
Instruksi ini terbagi atas dua jenis, jenis yaitu
lompat mutlak (unconditional jump) lompat bersyarat (conditional jump). jump)
Instruksi Cabang dan Kembali (CALL, (CALL RET)
Instruksi CALL membuat prosesor mengeksekusi suatu program subrutin yang alamat awalnya setelah kode operasi dari instruksi CALL tersebut Prosesor akan kembali mengeksekusi g program p g utama jika dijumpai instruksi kembali RET (return) I t k i iinii terdiri t di i dari d i dua d jenis j i yaitu it instruksi i t k i Instruksi bersyarat dan tidak bersyarat. Syarat dari instruksi ini dilihat dari kondisi isi register Bendera. Setelah instruksi ini dieksekusi, isi register bendera tidak berubah.
Instruksi Cabang dan Kembali (CALL, (CALL RET)
Dua hal akan terjadi bila prosesor 8085 mengeksekusi suatu instruksi CALL
Isi program counter (PC) ditumpuk ke dalam STACK Program akan lompat ke alamat memori yang ditulis pada instruksi CALL
IInstruksi t k i CALL merupakan k kombinasi k bi i dari d i instruksi PUSH dan JP
Instruksi Cabang dan Kembali (CALL, (CALL RET)
Instruksi RET digunakan untuk kembali ke program utama t pada d alamat l t yang mengikuti CALL Hal ini terjadi karena alamat yang CALL ini disimpan STACK mengikuti g p pada p Instruksi RET mengembalikan suatu angka dari stack dan menempatkan kembali pada program counter (PC)
Instruksi Cabang dan Kembali (CALL, RET) Contoh: START:
END END: KOMP:
LXI SP,2100H MVI A,1 CALL KOMP CALL KOMP JMP END
; ; ; ; ;
SP=2100H A=1 memanggil routine komp memanggil routine komp t tunggu
CMA INR A RET
; invert A ; bentuk komplemen 2
Instruksi Cabang dan Kembali (CALL, RET)
Diagram alir program dengan sebuah subroutine
Contoh: START:
END:
LXI SP,2100H SP 2100H MVI A,1 MOV B,A , CALL KOMP CALL KOMP DCR B JMP END CALL pertama CALL ke dua
KOMP:
CMA INR A RET
Instruksi HLT
Instruksi HLT digunakan untuk menghentikan eksekusi program Eksekusi prosesor setelah instruksi HLT hanya dapat dilanjutkan dengan mereset prosesor atau terjadi interupsi