instruksi dasar 8085

advertisement
INSTRUKSI DASAR 8085
Salahuddin, SST
Email : [email protected]
salahuddin ali00@gmail com
[email protected]
Web Site : www.salahuddinali.com
Format perintah yang digunakan
pada CPU 8085
p
Instruksi CPU 8085
• IInstruksi
t k i Pemindahan
P i d h D
Data
t (Data
(D t T
Transfer)
f )
„ Instruksi Pemrosesan Data (Data Processing)
„ Instruksi Kendali (Control)
„ Instruksi Masukan-Keluaran
Masukan Keluaran (Input
(Input-Output)
Output)
„ Instruksi Lompat dan Cabang (Jump and
Branch)
Mode Pengalamantan
„
„
„
„
„
Pengalamatan
P
l
t IImplied
li d (I
(Implied
li d addressing)
dd
i )
pengalamatan seketika (immediate addressing),
pengalamatan langsung (direct addressing),
pengalamatan
g
tidak langsung
g
g ((indirect
addressing),
pengalamatan register (register addressing).
Pengalamatan Implied
„
„
Instruksi yang hanya terdiri dari kode operasi
(op-code)
(op
code) yaitu 8-bit
8 bit.
Instruksi pengalamatan paling sederhana ini
adalah operasi
p
yyang
g
men-set atau
meng-clear register bendera (Reg. Flag),
menambah/mengurangi register Internal (A,
B C
B,
C, D
D, E
E, H
H, L
L, SP)
SP), atau mentrasfer isi
dari suatu register ke register yang lain.
Contoh : INR A
ADD B
3C;
80;
Naikkan suatu isi ACC
.
Jumlahkan isi ACC dengan isi register B
Pengalamatan Seketika
(Immediate Addressing)
„
Pengalamatan seketika adalah instruksi yang operandnya
adalah data langsung. Untuk penstranferan data Mikroprosessor
8085 mempunyai dua bentuk dasar dari instruksi pengalamatan
seketika ini yaitu:
…
Bentuk MVI (Move Immediate); Bentuk ini digunakan untuk
mentransfer data 8-bit ke suatu register.
Contoh : MVI A,
A 05 3E-05 ; Data 05 diberikan ke Acc
Acc.
…
Bentuk LXI (Load Immediate); Bentuk ini digunakan untuk
membebani pasangan register dengan data 16-bit.
16 bit. Setiap
Instruksi LXI terdiri dari 3 byte, yaitu byte pertama berisi Op-Code,
byte kedua dan ketiga berisi data immediate 16 bit.
Contoh : LXI H, 7894
21-94-78 ; Reg. HL = 7894
Pengalamatan Langsung
(Direct Addressing)
„
„
„
Pengalamatan yang langsung menuju lokasi
memori.
memori
Instruksi ini terdiri dari kode operasi yang diikuti
oleh alamat dari lokasi yang dituju
dituju.
Mikroprosessor 8085 mempunyai dua
bentuk instruksi pengalamatan langsung
… Instruksi
membebani yang menyimpan Accumulator,
… instruksi membebani yang menyimpan isi pasangan
register HL.
contoh Pengalamatan Langsung
„
LDA a16 3A-ll-hh
3A ll hh
…
„
STA
…
„
a16 32-ll-hh
Isi Reg. A disimpan pada alamat a16
LHLD a16 2A-ll-hh
…
„
Reg. A diisi dengan isi alamat a16
HL dibebani dengan data dari isi memory a16 + 1
1.
SHLD a16
…
Isi pasangan
22-ll-hh
Reg. HL disimpan pada alamat a16 dan a16 +1.
Catatan :
a16 = alamat 16-bit ,
ll
= alamat low byte
g byte
y
hh = alamat high
Pengalamatan Tidak Langsung
(Indirect Addressing)
Pengalamatan suatu lokasi memori
di
dimana
pengalamatan
l
t dil
dilakukan
k k
melalui
l l i
register.
„ Pengalamatan tidak langsung pada 8085
g
M dan dengan
g
dilakukan melalui register
instruksi STAX dan LDAX.
„ Register M adalah memori dimana
alamatnya terdapat pada pasangan
register HL
HL.
„
Contoh Pengalamatan Tidak Langsung
„
LDAX B
02
Bebani Reg. A dengan isi alamat yang alamatnya terdapat pada Reg.
BC
„
LDAX D
0A
Bebani Reg. A dengan isi alamat yang alamatnya terdapat pada Reg.
DE
„
STAX B
12
Simpan isi Reg. A pada lokasi memory yang alamatnya terdapat
pada Reg
Reg. BC
„
STAX D
1A
Simpan isi Reg. A pada lokasi memory yang alamatnya terdapat
pada Reg.
p
g DE
„
MVI M, 05
36-05
Bebani memory dimana alamatnya pada HL dengan data 05
Pengalamatan Register
Pengalamatan
register ini merupakan
pengalamatan yang paling umum
g
digunakan.
„ Pengalamatan register ini mempunyai
panjang 8
8-bit.
bit
„ Instruksi Data Transfer Antara Register
„ Terdiri dari 63 Instruksi yang berbeda.
„
Instruksi ini disebut dengan pemindahan (MOV =
Move).
Format Pengalamatan Register
„
MOV rd, rs
… rd
= Register tujuan
… rs = Register asal
Contoh
MOV D, A
MOV E,
E D
57 ;
5A ;
Isi Acc. Dicopy ke Reg. D
Isi Acc
Acc. Dicopy ke Reg
Reg. E
Operasi Tranfer Data Stack
„
„
„
„
Mikroprosessor 8085A mempunyai sifat penumpukan data dengan
system LIFO (Last In First Out).
Stack digunakan untuk menyimpan alamat kembali (return) dari
subroutine dan juga penyimpanan data untuk sementara waktu.
Agar programer mengetahui lokasi Stack penyimpanan data maka
perlu alamat Stack tersebut ditandai terlebih dahulu
dahulu. Penandaan ini
dilaksanakan dengan mengisi SP (Stack Pointer).
Instruksi yang berhubungan dengan Stack ini adalah PUSH,
POP XTHL
POP,
XTHL. POP membaca data dari Stack,
Stack dan XTHL adalah
mempertukarkan ini Register HL dengan isi Stack yang ditunjuk oleh
SP.
Contoh Operasi Tranfer Data Stack
„
„
„
„
„
„
„
„
„
PUSH PSW
F5
Isi Reg. A dan Flag disimpan pada stack
PUSH B
C5
Isi pasangan Reg. BC disimpan pada stack
PUSH D
D5
Isi p
pasangan
g Reg.
g DE disimpan
p p
pada stack
PUSH H
E5
Isi pasangan Reg. HL disimpan pada stack
POP PSW
F1
data pada stack diambil kembali dan dimasukkan ke Reg
Reg. A dan Flag
Flag.
POP B
C1
data pada stack diambil kembali dan dimasukkan ke Reg. BC
POP D
D1
data pada stack diambil kembali dan dimasukkan ke Reg. DE
POP H
E1
;
data pada stack diambil kembali dan dimasukkan ke Reg. HL
XTHL
E3
;
isi Reg. HL saling dipertukarkan dengan data yang terdapat pada stack.
Operasi PUSH
„
„
„
Bila register SP diisi dengan 9003(H) dan
pasangan register DE berisi data 1234(H)
1234(H).
Instruksi PUSH membuat isi SP dikurangi satu
(SP-1 = 9002) dan 12(H) dari Reg. D disimpan
pada
d memorii 9002
9002.
Kemudian isi SP dikurangi satu lagi (SP2=9001) dan kemudian data 34(H) dari Reg
Reg. E
disimpan pada memory 9001,
sedangkan isi alamat 9003 sampai 9004 dan isi
register tetap.
Ilustrasi Operasi PUSH
Operasi POP
„
„
„
„
Bila isi SP tidak berubah dari saat instruksi
PUSH (SP=9001).
(SP 9001) D
Data
t d
darii St
Stackk alamat
l
t 9001
diambil kembali dan dimasukkan ke Register E
setelah itu isi SP ditambah satu
(SP+1=9002(H)),
kemudian isi alamat 9002(H) dimasukkan ke
register
g
D
selanjutnya isi SP ditambah satu lagi
(SP+2 9003(H)).
(SP+2=9003(H))
Ilustrasi Operasi POP
Download