MODUL KE 7 Sistem Mikroprosesor (3 sks) 7 MATERI KULIAH : Pengertian program sistem mikroprosesor; instruction set (perangkat instruksi); format instruksi secara umum; cara mengurangi panjang instruksi; tujuan addressing methods/addressing modes (metode pengalamatan); pengelompokan addressing methods : direct, indirect, immediate, indexed, relative, register direct, register indirect, dan stack addressing; pengertian secara rinci serta perbandingan direct, indirect, dan immediate addressing, disertai beberapa contoh program pendek menggunakan salah satu dan kombinasi dari ketiga addressing methods tersebut. POKOK BAHASAN : Perangkat dan format Instruksi, Immediate, Direct, & Indirect Addressing Oleh Ir. INDRAGUNG PRIYAMBODO, MT. 7.1 PERANGKAT DAN FORMAT INSTRUKSI 7.1.1 Program Sistem Mikroprosesor Program untuk sistem mikroprosesor adalah urutan perintah yang disusun menurut suatu aturan tertentu untuk suatu (sistem) mikroprosesor agar mikroprosesor tersebut dapat melaksanakan fungsi atau operasi tertentu. Bahasa Pemrograman : Bahasa mesin : dalam bilangan biner (atau heksadesimal) Bahasa assembly (rakitan) Bahasa tingkat tinggi 7.1.2 Perangkat Instruksi (Instruction Set) adalah seperangkat instruksi-instruksi atau tabel (daftar) keseleruhan perintah (instruksi) yang dikenal oleh suatu mikroprosesor. Tabel tersebut pada umumnya berisi : Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-1
Perintah/instruksi dalam bahasa assembly; Perintah/instruksi dalam bahasa mesin (dalam bilangan heksadesimal); Jenis addresing modes/methods (metode pengalamatan); Arti perintah (secara singkat) yang menunjukkan fungsi apa yang dapat dilakukan mikroprosesor tersebut; Keterangan lainnya, misalnya : Instruction time (execution time) Jumlah Byte yang diperlukan Perubahan/pengaruhnya terhadap status register Contoh : Misalnya pada mikroprosesor Motorola 6800/6802 Addressing Modes Operasi Mnemonic Immediate Extended Arti Status Register OP OP H I N Z V C Addition ADD A 8B 2 2 BB 4 3 A + M A OR inclusive ORA A 8A 2 2 BA 4 3 A or M A R ORA B CA 2 2 FA 4 3 B or M A R Load Acc. LDA A 86 2 2 FA 4 3 M A R Keterangan : OP = Operation Code (opcode) = kode operasi = jumlah machine cycle untuk menghitung execution time (t c ) A = jumlah Byte = Register A (Accumulator atau Accumulator A atau sering disingkat Acc.) = tanda bahwa tidak terpengaruh R t c = tanda bahwa dapat berubah (terpengaruh) = tanda bahwa selalu reset = execution time (waktu yang dibutuhkan untuk eksekusi atau melaksanakan suatu perintah/instruksi) = perioda clock x jumlah machine cycle misalnya jumlah machine cycle = 2, kemudian frekuensi clock = 10 MHz, berari perioda clock-nya = T = 0,1 μs (mikro detik), sehingga execution time = t c = 2 x 0,1 μs = 0,2 μs. Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-2
7.1.3 Format Instruksi Suatu instruksi mikroprosesor pada umumnya mempunyai informasi berikut ini. a. Operasi : Bagian dari instruksi yang menjelaskan operasi apa yang harus dilakukan atau menjelaskan cara operasinya Operation Code (opcode) b. Sumber Data atau Asal : Address Field berisi alamat atau data, misalkan : ADD, SUB instruksi yang membutuhkan 2 operand SHIFT, COMPLEMEN instruksi yang membutuhkan 1 operand saja. c. Tujuan (destination) atau hasil (result) : Tempat/lokasi/alamat tujuan/hasil d. Sumber alamat berikutnya: Asal/sumber (alamat) instruksi berikutnya yang harus dikerjakan mikroprosesor. Format suatu instruksi (yang lengkap) : Operation Code (opcode) operand 1 Address Field operand 2 Hasil (Address of Result) Instruksi Berikutnya (Address of Next Instruction) Jika opcode-nya : 4 bit maka akan mempunyai 2 4 = 16 kombinasi opcode 1 Byte maka akan mempunyai 2 8 = 256 kombinasi opcode 1 (satu) instruksi lengkap membutuhkan 40 bit, yang terdiri dari (pada umumnya) 4 s/d 8 bit opcode, dan sisanya (32 s/d 36 bit) untuk address field, address of result, dan address of next instruction. Dengan panjangnya 1 (satu) instruksi lengkap tersebut, pembuat/perancang mikroprosesor harus berusaha mengurangi panjang instruksi lengkap tersebut. 7.1.4 Cara Mengurangi Panjang Instruksi Dalam mikroprosesor pembatasan panjang instruksi disebabkan oleh : Keterbatasan word size mikroprosesor; Keterbatasan jumlah bus dan register dalam mikroprosesor; Pada umumnya program untuk sistem mikroprosesor disimpan dalam ROM. Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-3
Sebenarnya dengan harga ROM yang relatif semakin murah, maka khusus untuk unsur ini kurang berpengaruh. Cara mengurangi panjang instruksi seperti berikut ini. a. Mikroprosesor terkait mempunyai Program Counter (PC) yang digunakan untuk menyimpan alamat instruksi. Selanjutnya mikroprosesor akan menambah isi PC dengan angka 1 (satu) untuk setiap instruksi, atau sering ditulis (PC) + 1 PC, agar mikroprosesor mengambil instruksi alamat berikutnya yang ditunjukkan oleh isi PC. (Kecuali untuk instruksi Jump, Branch, Skip, Halt). b. Membuat alamat asal data (source) dan alamat tujuan (tempat menyimpan hasilnya) bersifat implisit (bukan eksplisit). implisit tersebut dapat berupa register (misalnya Acc, IX, SP, address register) atau lokasi memori yang dicapai/ melalui register. Dengan kata lain, register atau lokasi memori dialamatkan melalui register. c. Membuat alamat tujuan sama (atau menjadi satu) dengan salah satu alamat asal, sehingga hasilnya akan menggantikan (menimpa) 1 (satu) operand. d. Membatasi alamat-alamat menjadi alamat register atau isi register dan bukan merupakan alamat memori yang lengkap (absolut). 7.2 ADDRESSING METHODS (ADDRESSING MODES) Addressing methods/modes (metode/teknik pengalamatan) dibutuhkan bila pembuat program mikroprosesor ingin mendapatkan hal-hal berikut ini. a. Instruksi sesingkat (sependek) mungkin untuk menghemat memori dan waktu penjemputan (fetch) instruksi. b. Mudah melakukan akses ke seluas mungkin memori (pada umumnya untuk satu daerah memori tertentu), atau dengan kata lain membuat pengaksesan pada sejumlah memori semudah mungkin. c. Memungkinkan untuk mengubah alamat tanpa harus mengubah instruksi atau program. d. Membuat metode pengalamatan secepat mungkin, dengan kata lain waktu pelaksanaan instruksi sesingkat mungkin. e. Membuat metode pengalamatan semudah atau sesederhana mungkin kemungkinan terjadi kesalahan semakin kecil oleh karena itu agar fleksibilitas meningkat, maka membutuhkan ketersediaan instruksi dalam berbagai jenis metode pengalamatan. Addressing methods/modes (metode pengalamatan atau teknik pengalamatan) yang digunakan pada umumnya seperti berikut ini. 1. Direct addressing 2. Indirect addressing Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-4
3. Immediate addressing 4. Indexed addressing 5. Relative addressing 6. Register direct addressing 7. Register indirect addressing 8. Stack addressing Berikut ini akan dijelaskan satu persatu mengenai masing-masing metode pengalamatan tersebut. 7.2.1 Direct Addressing Informasi alamat yang sebenarnya atau alamat yang dituju merupakan/menjadi bagian dari instruksi. Contoh 1 (satu) instruksi : LOAD 50 Yaitu memasukkan/meng-copy isi lokasi memori atau isi alamat 50 ke akumulator (A), atau biasa ditulis : (50) A ; tanda kurung ( ) menunjukkan keterangan ISI DARI LOKASI ADD 50 Yaitu menambahkan/menjumlahkan isi lokasi memori atau isi alamat 50 ke isi akumulator (A), dan hasilnya disimpan kembali di akumulator, atau biasa ditulis : (50) + (A) A STORE 50 Yaitu memasukkan/meng-copy/menyimpan isi akumulator (A) ke lokasi memori atau alamat 50, atau biasa ditulis : (A) 50 Contoh sebuah program pendek : Program untuk menjumlahkan isi dari lokasi memori (alamat) 50 dengan isi alamat 51, kemudian hasil penjumlahan tersebut disimpan di lokasi memori 52. Bila ditulis secara singkat seperti berikut ini. (50) + (51) 52 Maka programnya : LOAD 50 ADD 51 STORE 52 Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-5
Proses yang terjadi antara mikroprosesor dengan memori seperti berikut ini. Kondisi awal 0 1 2 Memori Program LOAD 50 ADD 51 STORE 52 Mikroprosesor 50 23 0 Program Counter 52 47 0 Accumulator Setelah instruksi LOAD 50 : (50) A Mikroprosesor 50 23 1 Program Counter 52 47 23 Accumulator Setelah instruksi ADD 51 : (51) + (A) A Mikroprosesor 50 23 2 Program Counter 52 47 84 Accumulator 61 + 23 = 84 Setelah instruksi STORE 52 : (A) 52 Mikroprosesor 50 35 3 Program Counter 52 84 84 Accumulator Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-6
7.2.2 Indirect Addressing Informasi alamat yang dituju disimpan/berada di dalam alamat yang disebutkan dalam instruksi, atau dengan kata lain merupakan alamat dari alamat yang menjadi bagian instruksi. Diberikan simbol/tanda addressing. Contoh 1 (satu) instruksi : LOAD @ 50 @, yang merupakan tanda menggunakan indirect Yaitu memasukkan/meng-copy isi dari isi alamat 100 ke akumulator (A). Jadi bila isi alamat 50 adalah 23, maka yang di-copy adalah isi dari alamat 23, jadi alamat yang dimaksud berada di alamat 50, atau biasa ditulis : ((50)) A ; tanda kurung rangkap (( )) menunjukkan ISI DARI ISI LOKASI ADD @ 50 Yaitu menambahkan isi dari isi lokasi memori atau isi dari isi alamat 50 ke isi akumulator (A), dan hasilnya disimpan kembali di akumulator, atau biasa ditulis : ((50)) + (A) A STORE @ 50 Yaitu memasukkan/meng-copy/menyimpan isi akumulator (A) ke alamat yang ada di dalam alamat 50. Jadi bila alamat 50 berisi angka 23, maka isi akumulator dimasukkan/di-copy ke alamat 23, bukan ke alamat 50. Atau biasa ditulis : (A) (50) Contoh sebuah program pendek : Program untuk menjumlahkan isi dari isi alamat 50 dengan isi dari isi alamat 51, kemudian hasil penjumlahan tersebut disimpan di lokasi memori yang ada di dalam alamat 52. Bila ditulis secara singkat seperti berikut ini. ((50)) + ((51)) (52) Maka programnya : LOAD @ 50 ADD @ 51 STORE @ 52 Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-7
Proses yang terjadi antara mikroprosesor dengan memori seperti berikut ini. Kondisi awal 0 1 2 Memori Program LOAD @ 50 ADD @ 51 STORE @ 52 23 53 50 23 0 Program Counter 52 47 0 Accumulator Setelah instruksi LOAD @ 50 : ((50)) A 23 53 50 23 1 Program Counter 52 47 53 Accumulator Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-8
Setelah instruksi ADD @ 51 : ((51)) + (A) A 23 53 50 23 2 Program Counter 52 47 65 Accumulator 12 + 53 = 65 Setelah instruksi STORE @ 52 : (A) (52) 23 53 47 65 Mikroprosesor 50 23 3 Program Counter 52 47 65 Accumulator Kerugian Indirect Addressing : Lebih lambat bila dibandingkan dengan direct addressing Keuntungan Indirect Addressing : Lebih fleksibel bila dibandingkan dengan direct addressing, sehingga bila ingin mengubah data dapat langsung diubah dengan tidak mengubah program. Sangat baik untuk subrutin, terutama subrutin yang dipakai pada proses data untuk area memori yang berbeda. Sehingga tidak perlu mengubah subrutinnya, tetapi cukup mengubah datanya saja. Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-9
7.2.3 Immediate Addressing Data yang sebenarnya atau data yang diolah merupakan bagian dari instruksi. Diberikan simbol/tanda addressing. Contoh 1 (satu) instruksi : LOAD # 50 #, yang merupakan tanda menggunakan immediate Yaitu memasukkan data/angka 50 ke akumulator (A), atau biasa ditulis : 50 A ADD # 50 Yaitu menambahkan/menjumlahkan isi akumulator (A) dengan data atau angka 50, dan hasilnya disimpan kembali di akumulator, atau biasa ditulis : 50 + (A) A Kerugian Immediate Addressing : Bila akan mengubah data, maka harus mengubah programnya. Keuntungan Immediate Addressing : Mengeksekusi paling cepat sebab mikroprosesor mengambil data bersamaan dengan instruksi. Paling mudah bagi programmer. Paling fleksibel diantara metode pengalamatan yang lain (selama data dan alamat tetap). Convenient (sangat baik/sesuai/tepat), tetapi tidak untuk hal-hal atau program yang besar. Sebuah contoh program pendek immediate addressing : yang menggunakan direct, indirect, dan Kondisi awal 0 1 2 3 4 5 Memori Program LOAD # 10 ADD 51 ADD @ 52 ADD # 8 STORE @ 52 STORE 52 Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-10
50 23 0 Program Counter 52 47 0 Accumulator Setelah instruksi LOAD # 10 : 10 A 50 23 1 Program Counter 52 47 10 Accumulator Setelah instruksi ADD 51 : (51) + (A) A 50 23 2 Program Counter 52 47 71 Accumulator 61 + 10 = 71 Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-11
Setelah instruksi ADD @ 51 : ((51)) + (A) A 50 23 3 Program Counter 52 47 83 Accumulator 12 + 71 = 83 Setelah instruksi ADD # 5 : 5 + (A) A 50 23 4 Program Counter 52 47 88 Accumulator 5 + 83 = 88 Setelah instruksi STORE @ 52 : (A) (52) 47 88 Mikroprosesor 50 23 5 Program Counter 52 47 88 Accumulator Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-12
Setelah instruksi STORE 52 : (A) 52 47 88 Mikroprosesor 50 23 6 Program Counter 51 11 52 88 88 Accumulator Sehingga alamat yang isinya berubah adalah (47) = 88, (52) = 88 SOAL LATIHAN 1. Tentukan alamat yang isinya berubah (dan sebutkan isi alamat yang berubah tersebut) setelah program pendek berikut ini diekskusi. 0 1 2 3 4 5 6 Memori Program LOAD # 23 LOAD 47 ADD @ 52 ADD 61 STORE @ 52 STORE 52 STORE @ 50 Kondisi awal 23 53 50 23 0 Program Counter 52 47 0 Accumulator Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-13
2. Dengan menggunakan kondisi awal seperti soal latihan nomor 1, maka tentukan alamat yang isinya berubah (dan sebutkan isi alamat yang berubah tersebut) setelah program pendek berikut ini diekskusi. 0 1 2 3 4 5 6 7 Memori Program LOAD @ 51 LOAD # 13 ADD @ 52 STORE 52 ADD # 6 STORE @ 50 ADD # 8 STORE 51 DAFTAR PUSTAKA [1] Lance A. Leventhal, Introduction to Microprocessors : Software, Hardware, Programming, Prentice Hall,1978. [2] Pasahow, Edward, J., Microprocessor and Microcomputer Interfacing for Electronics Technicians, McGraw-Hill, New York, 1981. [3] Chris H. Pappas dan Willian H. Murray III, 80386 Mikroprocessor Handbook, Osborne McGraw-Hill, 1988 [4] Avtar Singh dan Walter A. Triebel, The 8088 Microprocessor : Programmnig, Interfacing, Software, Hardware, and Applications, Prentice Hall, International Editions, 1989 [5] Charles M.Gilmore, Microprocessors:Principles and Applications, Glencoe/McGraw-Hill, 2 nd International Ed., 1995 [6] Rodnay Azks (alih bahasa : S.H. Nasution), From Chips to Systems : An Introduction to Microprocessors ( Dari Chip ke Sistem : Pengantar Mikroprosesor), Sybec Inc., 1981 (Penerbit Erlangga, 1986). [7] Harry Garland (alih bahasa : M. Barmawi dan M.O. Tjia), Introduction to Microprocessor System Design ( Pengantar Desain Sistem Mikroprosesor), McGraw-Hill Inc., 1979 (Penerbit Erlangga, 1984). [8] Barry B. Brey, Microprocessors and Peripherals : Hardware,Software,Interfacing, and Applications, Merrill Publishing Company, 1988. Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 7/Hal 7-14