Mode
pengalamatan merupakan metode penentuan alamat operand pada
instruksi. Operand instruksi diletakan pada memori utama dan register
CPU. Tujuan yang mempengaruhi arsitektur komputer ketika memilih mode
pengalamatan:
- Mengurangi panjang instruksi
dengan mempunyai medan yang pendek untuk alamat.
- Menyediakan bantuan yang
tangguh kepada pemrogram untuk penanganan data kompleks seperti
pengindeksan sebuah array, control loop, relokasi program dan sebagainya.
Teknik
Pengalamatan
- Immediate Addressing
- Direct Addressing
- Indirect Addressing
- Register addressing
- Register indirect addressing
- Displacement addressing
- Stack addressing
A. Immediate Addressing (Pengalamatan Segera)
Adalah
bentuk pengalamatan yang paling sederhana.
Penjelasan
:
- Operand benar-benar ada dalam
instruksi atau bagian dari intsruksi
- Operand sama dengan field
alamat
- Umumnya bilangan akan disimpan
dalam bentuk complement dua
- Bit paling kiri sebagai bit
tanda
- Ketika operand dimuatkan ke dalam
register data, bit tanda digeser ke kiri hingga maksimum word data
Keuntungan
:
- Tidak adanya referensi memori
selain dari instruksi yang diperlukan untuk memperoleh operand
- Menghemat siklus instruksi
sehingga proses keseluruhanakan akan cepat
Kekurangan
:
- Ukuran bilangan dibatasi oleh
ukuran field
Contoh
:
ADD
7 ; tambahkan 7 pada akumulator
B.
Direct Addressing (Pengalamatan Langsung)
Penjelasan
:
- Teknik ini banyak digunakan
pada komputer lama dan komputer kecil
- Hanya memerlukan sebuah
referensi memori dan tidak memerlukan kalkulus khusus
Kelebihan
:
- Field alamat berisi efektif
address sebuah operand
Kekurangan
:
- Keterbatasan field alamat
karena panjang field alamat biasanya lebih kecil dibandingkan panjang word
Contoh
:
ADD
A ; tambahkan isi pada lokasi alamat A ke akumulator
C.
Indirect Addressing (Pengalamatan tak langsung)
Penjelasan
:
- Merupakan mode pengalamatan tak
langsung
- Field alamat mengacu pada
alamat word di alamat memori, yang pada gilirannya akan berisi alamat
operand yang panjang
Kelebihan
:
- Ruang bagi alamat menjadi besar
sehingga semakin banyak alamat yang dapat referensi
Kekurangan
:
- Diperlukan referensi memori ganda
dalam satu fetch sehingga memperlambat proses operasi
Contoh
:
ADD
(A) ; tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator
D.
Register addressing (Pengalamatan Register)
Penjelasan
:
- Metode pengalamatan register
mirip dengan mode pengalamatan langsung
- Perbedaanya terletak pada field
alamat yang mengacu pada register, bukan pada memori utama
- Field yang mereferensi register
memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16
register general purpose
Keuntungan
:
- Diperlukan field alamat
berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
- Akses ke register lebih cepat
daripada akses ke memori, sehingga proses eksekusi akan lebih cepat
Kerugian
:
- Ruang alamat menjadi terbatas
Contoh
:
E.
Register indirect addressing (Pengalamatan tak-langsung register)
Penjelasan
:
- Metode pengalamatan register
tidak langsung mirip dengan mode pengalamatan tidak langsung
- Perbedaannya adalah field
alamat mengacu pada alamat register
- Letak operand berada pada
memori yang dituju oleh isi register
- Keuntungan dan keterbatasan
pengalamatan register tidak langsung pada dasarnya sama dengan
pengalamatan tidak langsung
- Keterbatasan field alamat
diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang
dapat direferensi makin banyak
- Dalam satu siklus pengambilan
dan penyimpanan, mode pengalamatan register tidak langsung hanya
menggunakan satu referensi memori utama sehingga lebih cepat daripada mode
pengalamatan tidak langsung
Contoh
:
F.
Displacement addressing
Penjelasan
:
- Menggabungkan kemampuan
pengalamatan langsung dan pengalamatan register tidak langsung
- Mode ini mensyaratkan instruksi
memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit
- Operand berada pada alamat A
ditambahkan isi register
- Tiga model displacement
- Relative addressing : register
yang direferensi secara implisit adalah Program Counter (PC)
- Alamat efektif didapatkan
dari alamat instruksi saat itu ditambahkan ke field alamat
- Memanfaatkan konsep lokalitas
memori untuk menyediakan operand-operand berikutnya
- Base register addressing :
register yang direferensi berisi sebuah alamat memori dan field alamat
berisi perpindahan dari alamat itu
- Referensi register dapat
eksplisit maupun implisit
- Memanfaatkan konsep lokalitas
memori
- Indexing : field alamat
mereferensi alamat memori utama, dan register yang direferensikan berisi
pemindahan positif dari alamat tersebut
- Merupakan kebalikan dari mode
base register
- Field alamat dianggap sebagai
alamat memori dalam indexing
- Manfaat penting dari indexing
adalah untuk eksekusi program-pprogram iteratif
Contoh
:
Field
eksplisit bernilai A dan field imlisit mengarah pada register
G.
Stack addressing
Penjelasan
:
- Stack adalah array lokasi yang
linier = pushdown list = last-in-firs-out
- Stack merupakan blok lokasi
yang terbaik
- Btir ditambahkan ke puncak
stack sehingga setiap blok akan terisi secara parsial
- Yang berkaitan dengan stack
adalah pointer yang nilainya merupakan alamat bagian paling atas stack
- Dua elemen teratas stack dapat
berada di dalam register CPU, yang dalam hal ini stack pointer mereferensi
ke elemen ketiga stack
- Stack pointer tetap berada dalam
register
- Dengan demikian,
referensi-referensi ke lokasi stack di dalam memori pada dasarnya
merupakan pengalamatan register tidak langsung