Bahan Kuliah Mikroprosessor untuk Teknik Listrik G INSTRUKSI DASAR MIKROPROSESSOR 8085 Agar suatu mikrokomputer dapat bekerja maka harus diberikan instruksi, dimana instruksi ini merupakan perintah-perintah yang akan dilaksanakan oleh mikroprosessor. Instruksi ini terdiri dari kode operasi (Op-Code) dan alamat atau data yang diperlukan. Kode Operasi (Op-Code) pada CPU 8085 terdiri dari 8-bit, yang berarti terdapat 256 (28) instruksi yang berbeda tetapi yang diperkenalkan pada umum hanya 246 instruksi. Bentuk format dari instruksi umumnya terdiri dari Op-Code dan Operand. Op-Code adalah singkatan dari Operation Code yang menyatakan instruksi yang akan dilaksanakan, sedangkan Operand adalah data yang digunakan oleh Op-Code yang berupa data atau alamat. Format dari bentuk perintah yang digunakan pada CPU 8085 ada 3 jenis yaitu 1 byte, 2 byte, 3 byte yang ditunjukkan pada gambar berikut. Byte 1 Byte 2 Byte 3 Kode Operasi (Op-Code) Data byte rendah (low order data) atau byte rendah alamat (low order address) Data byte tinggi (high order data) Atau Byte tinggi alamat (high order address) Gambar Bentuk Format dari Perintah CPU 8085 Berdasarkan fungsinya instruksi CPU 8085 dapat dibedakan atas 5 jenis, yaitu : Instruksi Pemindahan Data (Data Transfer) Instruksi Pemrosesan Data (Data Processing) Instruksi Kendali (Control) Instruksi Masukan-Keluaran (Input-Output) Instruksi Lompat dan Cabang (Jump and Branch) Dosen Pembimbing : Salahuddin, SST 1 Bahan Kuliah Mikroprosessor untuk Teknik Listrik H SISTEM STACK 1. 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 pemogram mengetahui lokasi Stack penyimpanan data maka perlu alamat Stack tersebut ditandai terlebih dahulu. Penandaan ini dilaksanakan dengan mengisi SP (Stack Pointer). Instruksi yang berhubungan dengan Stack ini adalah PUSH, POP, XTHL. POP membaca data dari Stack, dan XTHL adalah mempertukarkan ini Register HL dengan isi Stack yang ditunjuk oleh SP. Assembly Machine PUSH PSW F5 Comment ; Isi Reg. A dan Flag disimpan pada stack PUSH B C5 ; Isi pasangan Reg. BC disimpan pada stack PUSH D D5 ; Isi pasangan Reg. DE disimpan pada stack PUSH H E5 ; Isi pasangan Reg. HL disimpan pada stack POP PSW F1 ; data pada stack diambil kembali dan dimasukkan ke Reg. A dan Flag. POP B C1 ; data pada stack diambil kembali dan dimasukkan ke Reg. BC Dosen Pembimbing : Salahuddin, SST 2 Bahan Kuliah Mikroprosessor untuk Teknik Listrik 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. 2. Operasi PUSH Instruksi PUSH merupakan instruksi untuk menyimpan data pada Stack. Instruksi set ini terdiri dari instruksi PUSH, POP, XTHL. Operasi dari PUSH ini ditunjukkan paada gambar berikut: PUSH D setelah sebelum D SP 12 34 900 3 E D SP 12 34 E 900 1 9001 B6 9001 34 9002 05 9002 12 9003 0F 9003 0F 9004 08 9004 08 Memory Stack Gambar Operasi PUSH Anggap bahwa isi SP adalah 9003(H) dan pasangan register DE berisi data 1234(H). Instruksi PUSH membuat isi SP dikurangi satu (SP-1 = 9002) dan 12(H) dari Reg. D disimpan pada memori 9002. Kemudian isi SP dikurangi satu lagi Dosen Pembimbing : Salahuddin, SST 3 Bahan Kuliah Mikroprosessor untuk Teknik Listrik (SP-2=9001) dan kemudian data 34(H) dari Reg. E disimpan pada memory 9001, sedangkan isi alamat 9003 sampai 9004 dan isi register tetap. 3. Operasi POP Instruksi POP adalah instruksi yang membaca data kembali dari Stack, seperti ditunjukkan pada gambar berikut ini : POP D setelah sebelum D SP 66 87 900 1 E D SP 12 34 E 900 3 9001 34 9001 34 9002 12 9002 12 9003 0F 9003 0F 9004 08 9004 08 Memory Stack Gambar Operasi POP Langkah-langkah operasi POP D menghasilkan sebagai berikut: Anggap bahwa isi SP tidak berubah dari saat instruksi PUSH (SP=9001). Data dari Stack alamat 9001 diambil kembali dan dimasukkan ke Register E dan setelah itu isi SP Dosen Pembimbing : Salahuddin, SST 4 Bahan Kuliah Mikroprosessor untuk Teknik Listrik ditambah satu (SP+1=9002(H)), kemudian isi alamat 9002(H) dimasukkan ke register D selanjutnya isi SP ditambah satu lagi (SP+2=9003(H)). 4. Operasi Exchange HL dengan Data Stack (XTHL): Instruksi ini meng-exchange isi pasangan Register HL dengan data yang ada pada stack. Contoh : Data 1000 (H) di push pada stack dan HL berisi 2000 (H), maka setelah instruksi XTHL akan mengakibatkan kedua harga ini diexchage, sehingga HL berisi 1000 (H) dan stack berisi 2000 (H). 5. Miscelleneous Data Transfer Instruction. Instruksi Miscelleneous adalah instruksi yang tidak termasuk kepada kelompok diatas. Instruksi-instruksi ini seperti yang terdapat pada table. Assembly Machine IN DB p8 p8 Comment ; Baca data yang ada pada Port p8 dan simpan di Acc. OUT p8 D3 p8 ; Keluarkan isi Acc ke Port beralamat p8 SPHL F9 ; Isi pasangan Reg. HL diberikan pada Stack Pointer (SP) XCHG EB ; HL dan DE saling dipertukarkan 6. Instruksi IN dan OUT Instruksi IN dan OUT berfungsi untuk berhubungan dengan peralatan input/output. Instruksi IN dan OUT diikuti dengan alamat input output yang akan dituju. Pada saat mikroprosessor melaksanakan instruksi IN atau OUT saluran Dosen Pembimbing : Salahuddin, SST 5 Bahan Kuliah Mikroprosessor untuk Teknik Listrik alamat byte rendah dan byte tinggi sama yaitu berisiskan alamat input/output yang dituju, jadi untuk mendekodekan alamat input/output dapat diambil dari saluran alamat tinggi atau alamat rendah. Jadi lokasi alamat input/output yang dapat diakses maksimum 256. Instruksi OUT 20H menyebabkan isi akkumulatordikeluarkan ke port (Bandar) yang beralamat 20H dan instruksi IN 21H menyebabkan data pada port yang beralamat 21H masuk pada akkumulator. 7. Instruksi SPHL Instruksi ini berguna untuk membebani Stack Pointer dengan isi pasangan register HL. Instruksi SPHL ini hanya 1 byte (Op-Code saja). Instruksi ini sering digunakan untuk menandai Stack Pointer untuk menggantikan instruksi LXI SP. Misalnya sebelum instruksi SPHL ini isi Stack Pointer (SP) adalah 0008 (H) dan pasangan register HL berisi 7008 (H). Setelah instruksi ini dikerjakan microprocessor maka Stack Pointer akan berisi 7008 (H). 8. Instruksi XCHG Instruksi ini berfungsi untuk meng-exchange isi pasangan register HL dengan pasangan register DE. Anggap sebelum instruksi XCHG isi pasangan register HL = 5643 (H), DE = 7613 (H), maka setelah instruksi XCHG dikerjakan mikroprosessor maka isi pasangan register HL = 7613 (H) dan DE = 5643 (H). Contoh : Assembly Machine LXI D, 1200 (H) 11-00-12 ; Tanda untuk alamat 1200 (H) LXI H, 1000 (H) 21-00-10 ; Tanda untuk alamat 1000 (H) Dosen Pembimbing : Salahuddin, SST Comment 6 Bahan Kuliah Mikroprosessor untuk Teknik Listrik MOV A, M 7E ; Data dari alamat 1000 (H) dimasukkan ke Accumulator. XCHG EB ; Tanda untuk alamat saling dipertukarkan. MOV B, M 46 ; Isi alamat 1200 (H) dimasukkan ke register B MOV M, A 77 ; Isi alamt 1000 (H) dimasukkan ke alamat 1200 (H). XCHG EB ; Tanda dipertukarkan kembali. MOV M, B 70 ; Isi alamat 1200 (H) yang pertama dimasukkan ke alamat memori. Dosen Pembimbing : Salahuddin, SST 7 Bahan Kuliah Mikroprosessor untuk Teknik Listrik Tugas dan Pertanyaan : 1. Apa yang dimaksud dengan Op-Code dan Operand 2. Sebutkan 5 jenis instruksi pada Mikroprosessor 8085 menurut fungsinya. 3. Sebutkan dan jelaskan Mode Pengalamatan pada Mikroprosessor 8085 serta berikan contohnya. 4. Isilah alamat, Op-Code dan comment pada table berikut sesuai dengan Instruksi pada Mnemonic. Address Op-Code Mnemonic LXI H, 7800 LXI B, 7801 MVI M, FF MOV A, M STAX B SHLD 7802 RST 1 Comment Setelah program di atas dilaksanakan (execute) isi dari : Reg. A = _______Reg. B = ______ Reg. L = _______ Isi alamat dari : 7800 (H) = 7801 (H) = 7802 (H) = 7803 (H) = 5. Buatlah sebuah Program Perkalian untuk mengalikan dua buah bilangan yaitu 07 dikalikan dengan 06, dan hasil perkaliannya disimpan pada Register D, dan alamat nya dimulai dari alamt 9000. Dosen Pembimbing : Salahuddin, SST 8