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