• Tidak ada hasil yang ditemukan

Indexed, Relative, Register Direct, dan Register Indirect Addressing

N/A
N/A
Protected

Academic year: 2021

Membagikan "Indexed, Relative, Register Direct, dan Register Indirect Addressing"

Copied!
12
0
0

Teks penuh

(1)

MODUL KE

8

Sistem Mikroprosesor (3 sks)

MATERI KULIAH :

Pengertian dan perbandingan indexed, relative, register direct, dan register indirect addressing; beberapa contoh program pendek menggunakan salah satu addressing methods tersebut; beberapa contoh menggunakan kombinasi beberapa addressing methods (termasuk menggunakan direct, indirect, dan immediate addressing).

POKOK BAHASAN :

Indexed, Relative, Register Direct,

dan Register Indirect Addressing

Oleh Ir. INDRAGUNG PRIYAMBODO, MT.

8.1

Pendahuluan

Telah dijelaskan pada modul sebelumnya bahwa addressing methods/modes (teknik atau metode pengalamatan) yang digunakan pada umumnya seperti berikut ini.

1. Direct addressing

2. Indirect addressing

3. Immediate addressing

4. Indexed addressing

5. Relative addressing

6. Register direct addressing

7. Register indirect addressing

8. Stack addressing

Pada modul sebelumnya juga telah dijelaskan mengenai direct, indirect, dan immediate addressing. Pada modul ini akan dijelaskan satu persatu mengenai metode pengalamatan lainnya (dari nomor 3 s/d 7) tersebut, sedangkan mengenai stack addressing (nomor 8) dijelaskan pada modul berikutnya.

8.2

Indexed Addressing

 Pada umumnya digunakan untuk program yang membutuhkan array dan/atau tabel.

 Mikroprosesor menambahkan isi index register ke alamat pada instruksi tersebut (offset), atau dengan kata lain bahwa alamat yang dituju (= alamat efektif) merupakan hasil penjumlahan dari isi index register dengan offset, jadi :

(2)

Alamat efektif = isi index register (IX) + offset (alamat pada instruksi

 Ini berarti bahwa isi index register (yang digunakan sebagai referensi) harus ditentukan terlebih dulu.

 Diberikan tanda “X” , yang merupakan isi dari index register

Contoh 1 (satu) instruksi :

LOAD 50, X  tanda X adalah indexing atau isi index register

Mikroprosesor menghitung alamat efektif terlebih dahulu (alamat yang dituju), yaitu 50 ditambah dengan isi index register. Dengan instruksi LOAD berarti memasukkan/meng-copy isi alamat efektif tersebut ke akumulator (A), atau biasa ditulis :

(50 + (IX))  A ; tanda (IX) menunjukkan isi index register yang ditambahkan ke offset (dalam hal ini offset-nya adalah 50)

Misalnya isi index register = 23, maka menjadi : (50 + 23)  A atau

(73)  A ; berarti isi alamat 73 dimasukkan/di-copy ke akumulator atau sama dengan instruksi LOAD 73

ADD 50, X

Yaitu menambahkan/menjumlahkan isi alamat efektif (yaitu alamat 50 + isi index register) ke isi akumulator (A), dan hasilnya disimpan kembali di akumulator, atau biasa ditulis :

(50 + (IX)) + (A)  A

STORE 50, X

Yaitu memasukkan/meng-copy/menyimpan isi akumulator (A) ke lokasi memori atau alamat efektif (yaitu alamat 50 + (IX)), atau biasa ditulis :

(A)  50 + (IX)

Contoh dalam program pendek :

1. Misalnya program berikut ini LOAD # 35

LOAD INDEXREG # 1900 STORE 65, X

Hasil dari eksekusi program ini seperti berikut ini.

Setelah instruksi LOAD # 35 : data 35 A

Maka data/angka 35 dimasukkan ke Akumulator, sehingga Akumulator berisi data 35.

(3)

Setelah instruksi LOAD INDEXREG # 1900 : data 1900 IX

IX adalah Index Register, berarti data/angka 1900 dimasukkan ke index register, sehingga index register berisi data 1900.

Setelah instruksi STORE 65, X : (A) 65 + (IX)

Maka isi akumulator dimasukkan ke alamat 65 + (IX) yaitu alamat 65 + 1900 (isi index register), berarti dimasukkan/di-copy-kan ke alamat 1965, sehingga alamat 1965 berisi data 35.

Setelah seluruh instruksi dilaksanakan maka kondisil akhir adalah :

(A) = 35 : isi akumulator = 35 (IX) = 1900 : isi index register = 1900

(1965) = 35 : isi lokasi memori atau alamat 1965 adalah 35

2. Misalnya akan mengkuadratkan bilangan pada index register. Tabel kuadrat tersebut disimpan pada lokasi memori atau alamat 50 s/d 59.

Kondisi awal

Alamat Memori Data

0 LOAD 50, X : : 50 0 51 1 Mikroprosesor 52 4 53 9 0 Program Counter 54 16 55 25 0 Accumulator : : 59 81 3 Index Register

Setelah instruksi LOAD 50, X : (50 + 3) A

Alamat efektif = 50 + 3 = 53, berarti isi alamat 53 dimasukkan/di-copy-kan ke akumulator, sehingga kondisi setelah eksekusi seperti berikut ini.

(4)

Alamat Memori Data 0 LOAD 50, X : : 50 0 51 1 Mikroprosesor 52 4 53 9 1 Program Counter 54 16 55 25 9 Accumulator : : 59 81 3 Index Register

Akumulator sekarang berisi kuadrat dari bilangan pada index register.

Keuntungan Pengalamatan Berindeks (

Indexed Addressing

) :

 Isi index register dapat ditambah dengan 1 (increment) atau dikurangi 1 (decrement).

 Dapat dituju suatu daerah alamat yang cukup lebar dengan menambah atau mengurangi isi index register.

8.3

Relative Addressing

 Mikroprosesor menambahkan isi program counter (PC) ke alamat pada instruksi tersebut (offset), atau dengan kata lain bahwa alama t yang dituju (= alamat efektif) merupakan hasil penjumlahan dari isi PC dengan offset, jadi :

Alamat efektif = isi program counter (PC) + offset (alamat pada instruksi

 Diberikan tanda  atau $ , yang merupakan isi dari PC

Contoh 1 (satu) instruksi :

LOAD + 50  tanda  adalah isi PC (Program Counter)

Mikroprosesor menghitung alamat efektif terlebih dahulu (alamat yang dituju), yaitu 50 ditambah dengan isi PC. Dengan instruksi LOAD berarti memasukkan/meng-copy isi alamat efektif tersebut ke akumulator (A), atau biasa ditulis :

(50 + (PC))  A ; tanda (PC) menunjukkan isi PC yang ditambahkan ke offset

(5)

Misalnya isi PC = 34, maka menjadi : (50 + 34)  A atau

(84)  A ; berarti isi alamat 84 dimasukkan/di-copy ke akumulator atau sama dengan instruksi LOAD 84

ADD + 50

Yaitu menambahkan/menjumlahkan isi alamat efektif (yaitu alamat 50 + isi PC ke isi akumulator (A), dan hasilnya disimpan kembali di akumulator, atau biasa ditulis :

(50 + (PC)) + (A)  A

STORE + 50

Yaitu memasukkan/meng-copy/menyimpan isi akumulator (A) ke lokasi memori atau alamat efektif (yaitu alamat 50 + (PC)), atau biasa ditulis :

(A)  50 + (PC)

Contoh Aplikasi :

Misalnya instruksi ADD + 50

Kondisi awal

Alamat Memori Data Mikroprosesor

31 ADD + 50 31 Program Counter

: :

81 20 25 Accumulator

Setelah instruksi ADD + 50 :

Alamat efektif = 50 + (PC) = 50 + 31 = 81, jadi alamat efektifnya 81, maka instruksi di atas sama dengan instruksi :

ADD 81 ; berarti (81) + (A)  A, maka 20 + 25 = 45  A atau (A) = 45

Alamat Memori Data Mikroprosesor

31 ADD + 50 31 Program Counter

: :

(6)

Jika posisi program dipindah sejauh 400 lokasi dari alamat semula, maka kondisi awalnya sbb :

Alamat Memori Data Mikroprosesor

431 ADD + 50 431 Program Counter

: :

481 20 25 Accumulator

Maka hasil pelaksanaan instruksi ADD + 50 :

Alamat efektif = 50 + (PC) = 50 + 431 = 481, jadi alamat efektifnya 481, maka instruksi di atas sama dengan instruksi :

ADD 481 ; berarti (481) + (A)  A, maka 20 + 25 = 45  A atau (A) = 45

Alamat Memori Data Mikroprosesor

431 ADD + 50 431 Program Counter

: :

481 25 45 Accumulator

Keuntungan Pengalamatan Relatif (

Relative Addressing)

:

Relocatable  bahwa program yang menggunakan pengalamatan relatif dapat ditempatkan dalam daerah/lokasi memori yang mana pun dengan tanpa

mempengaruhi proses pengolahan data.

 Instruksi lebih pendek bila alamat efektif letaknya “dekat” dengan alamat instruksi tersebut (current instruction).

8.4

Register Direct Addressing

 Serupa dengan direct addressing, perbedaannya hanya pada alamat yang dituju bukan di memori tetapi di register yang merupakan bagian dari instruksi. Jadi data yang dimaksud ada dalam register tersebut, bukan di memori. Hal ini berarti datanya ada di dalam mikroprosesor.

Contoh 1 (satu) instruksi :

LOAD R1, 23

Yaitu memasukkan/meng-copy isi alamat 23 ke general purpose register 1, atau biasa ditulis :

(7)

MOVE A, R1

Yaitu memasukkan/meng-copy isi general purpose register 1 ke akumulator, atau biasa ditulis :

(A)  R1

ADD R1

Yaitu menambahkan/menjumlahkan isi general purpose register 1 ke isi akumulator (A), dan hasilnya disimpan kembali di akumulator, atau biasa ditulis : (R1) + (A)  A

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 LOAD R1, 51 ADD R1 STORE 52

Proses yang terjadi antara mikroprosesor dengan memori seperti berikut ini.

Kondisi awal

Alamat Memori Program 4 5 6 7 LOAD 50 LOAD R1, 51 ADD R1 STORE 52

Alamat Memori Data Mikroprosesor

50 23 4 Program Counter

51 61 0 Accumulator

(8)

Setelah instruksi LOAD 50 : (50) A

Alamat Memori Data Mikroprosesor

50 23 5 Program Counter

51 61 23 Accumulator

52 47 0 Register 1

Setelah instruksi LOAD R1, 51 : (51) R1 Alamat Memori Data Mikroprosesor

50 23 6 Program Counter

51 61 23 Accumulator

52 47 61 Register 1

Setelah instruksi ADD R1 : (R1) + (A) A Alamat Memori Data Mikroprosesor

50 23 7 Program Counter

51 61 84 Accumulator

52 47 61 Register 1

61 + 23 A

Setelah instruksi STORE 52 : (A) 52 Alamat Memori Data Mikroprosesor

50 23 8 Program Counter

51 61 84 Accumulator

(9)

Keuntungan dan Kerugian

Register Direct Addressing

dibanding-kan

Direct Addressings

:

 Untuk sebuah instruksi, register direct addressing jumlah Byte-nya lebih kecil dan waktu eksekusinya lebih cepat dibandingkan direct addressing.

Register direct addressing banyak dimanfaatkan untuk program yang membutuhkan proses looping, karena lebih mudah dalam pembuatan programnya dan lebih cepat eksekusinya.

 Untuk program yang sederhana, pada umumnya lebih mudah menggunakan

direct addressing serta waktu eksekusinya dapat lebih cepat dibandingkan

register direct addressing,

8.5

Register Indirect Addressing

 Serupa dengan Indirect addressing, perbedaannya hanya pada informasi alamat yang dituju tidak disimpan di dalam memori, tetapi disimpan dalam register yang merupakan bagian dari instruksi. Jadi alamat tempat data yang dimaksud ada dalam register tersebut.

 Juga diberikan simbol/tanda @

Contoh 1 (satu) instruksi :

ADD @ R1

Yaitu menambahkan/menjumlahkan isi dari alamat yang ada dalam general purpose register 1 ke isi akumulator (A), dan hasilnya disimpan kembali di akumulator, atau biasa ditulis :

((R1)) + (A)  A

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 LOAD R1, 51 ADD @ R1 STORE 52

(10)

Kondisi awal

Alamat Memori Program 6 7 8 9 LOAD @ 50 LOAD R1, 51 ADD @ R1 STORE 52

Alamat Memori Data

23 53 : : 47 34 Mikroprosesor : : 50 23 6 Program Counter 51 61 52 47 0 Accumulator : : 61 12 0 Register 1

Setelah instruksi LOAD @ 50 : ((50)) A

Alamat Memori Data

23 53 : : 47 34 Mikroprosesor : : 50 23 7 Program Counter 51 61 52 47 53 Accumulator : : 61 12 0 Register 1

(11)

Setelah instruksi LOAD R1, 51 : (51) R1

Alamat Memori Data

23 53 : : 47 34 Mikroprosesor : : 50 23 8 Program Counter 51 61 52 47 53 Accumulator : : 61 12 61 Register 1

Setelah instruksi ADD @ R1 : ((R1)) + (A) A

Alamat Memori Data

23 53 : : 47 34 Mikroprosesor : : 50 23 9 Program Counter 51 61 52 47 65 Accumulator : : 61 12 61 Register 1 12 + 53 = 65

Setelah instruksi STORE @ 52 : (A) (52)

Alamat Memori Data

23 53 : : 47 65 Mikroprosesor : : 50 23 10 Program Counter 51 61 52 47 65 Accumulator : : 61 12

(12)

Keuntungan dan Kerugian

Register Indirect Addressing

dibanding-kan

Indrect Addressing

:

 Untuk sebuah instruksi, register indirect addressing jumlah Byte-nya lebih kecil dan waktu eksekusinya lebih cepat dibandingkan indirect addressing.

Register indirect addressing banyak dimanfaatkan untuk program yang membutuhkan proses looping, karena lebih mudah dalam pembuatan programnya dan lebih cepat eksekusinya.

 Untuk program yang sederhana, pada umumnya lebih mudah menggunakan

indirect addressing serta waktu eksekusinya dapat lebih cepat dibandingkan

register indirect addressing,

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, 2nd 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.

Referensi

Dokumen terkait

Penilaian unjuk kerja merupakan penilaian yang dilakukan dengan mengamati kegiatan peserta didik dalam melakukan sesuatu. Penilaian ini cocok digunakan untuk

Digunakan untuk mengetahui sebaran sumber pencemar yang ada di DAS Tambakbayan, kualitas air di setiap titik pengamatan, karakteristik morfometri sungai, dan pengaruh

Kata Produksi telah menjadi kata Indonesia, setelah diserap di dalam pemikiran ekonomi bersamaan dengan kata konsumsi dan distribusi. Dalam kamus Inggris-Indonesia,

Informasi secara rinci dapat dilihat di website www.jakarta.go.id 2. Untuk pengaduan dapat

Hasil dari pengolahan data tersebut berupa daftar perencanaan kebutuhan material hasil perhitungan secara pasti yang dapat digunakan oleh perusahaan dikemudian hari

Penambahan unit Mesin grinding universal yang dibutuhkan untuk mengurangi pembelian twist drill adalah 2 unit Mesin grinding universal, sehingga investasi yang

Tanaman obat adalah tanaman yang memiliki khasiat obat mengandung zat aktif yang berfungsi mengobati penyakit tertentu atau jika tidak mengandung zat aktif tertentu tapi

Kinerja adalah hasil kerja yang dapat dicapai oleh seseorang atau kelompok orang dalam suatu organisasi sesuai dengan wewenang dan tanggung jawab