Sunday, October 31, 2010

Addressing (Pengalamatan)


Pengalamatan (Addressing)

Teknik-teknik pengalamatan

  • Immediate
  • Direct
  • Indirect
  • Register
  • Register indirect
  • Displacement
  • Stack


Immediate
Bentuk pengalamatan yang paling sederhana, dimana operand berada dalam insruksi
Keuntungannya tidak diperlukan referensi memory
Kerugiannya besaran operand terbatas
Operand = A (A=isi field alamat dlm. Instruksi)

Direct
Bentuk pengalamatan dimana field alamat berisi efective address sebuah operand.
Bentuk sederhana, hanya ruang alamat terbatas
EA = A (EA=Efective Address /alamat aktual)

Indirect 
Field alamat mengacu pada alamat word dalam memory yang pada akhirnya akan berisi alamat operand yang panjang.
Mode ini dapat memperoleh ruang alamat yang besar, tetapi referensi memory harus dilakukan secara berganda
EA = (A)  -> (A)= isi lokasi alamat A



Register
Mirip dengan direct addressing, perbedaanya terletak pada alamat yang diacu pada register, bukan pada alamat memory utama
EA = R (R=Register)

Register Indirect
Register indirect analog dengan indirect addressing yang mengacu ke lokasi panjang word yang berisi sebuah alamat pada register.
EA= (R)

Displacement Addressing
Mode pengalamatan yang mengkombinasikan kemampuan direct addressing dengan register indirect addressing .
Mensyaratkan adanya 2 buah field alamat, sebuah field  berisi nilai (A) yang digunakan secara langsung, field lainnya mengacu pada register yang isinya ditambahkan ke A shg menghasilkan efective address.

Tiga kegunaan displacement addressing, yaitu :

  1. Relative Addressing
  2. Base Register Addressing
  3. Indexing


Relative Addressing
Register yang direferensikan merupakan PC (program Counter) yang menambahkan alamat instruksi saat itu dengan field alamat untuk mendapatkan alamat efektif.
Base Register Addressing
Register yang direferensi  berisi sebuah alamat memory, dan field alamat berisi perpindahan dari alamat itu.
Indexing 
Field alamat mereferensi alamat memory utama dan register yang direferensi berisi alamat perpindahan positif dari alamat tersebut (kebalikan dari Base Register).

Stack Addressing
Stack merupakan array lokasi linear yang bekerja secara pushdown list / last in first out queue
Pada saat CPU mengeksekusi sebuah instruksi, CPU meletakkan alamat pengembalian pada  puncak stack, dan ketika CPU mengeksekusi sebuah return maka CPU menggunakan alamat pada stack tsb.

Format-format instruksi & Panjang instruksi

Format instruksi 
Format instruksi menentukan layout bit suatu instruksi
Format instruksi mencakup opcode dan operand-operand

Panjang instruksi 
Panjang instruksi mempengaruhi ukuran memory, organisasi memory, struktur bus, kompleksitas CPU dan kecepatan CPU.
Instruksi yang panjang dapat memperbanyak opcode, operand dan pengalamatan yang lebih besar shg lebih fleksibel dari sisi pemrogram.
Kerugiannya : instruksi yang panjang membutuhkan ruang memory yang lebih besar, lebih lambat dalam pengambilan dan eksekusi program

Alokasi Bit

Alokasi bit berhubungan dengan alokasi bit untuk opcode dan bit untuk pengalamatan

Faktor-faktor penentu bit-bit pengalamatan :

  • Jumlah mode pengalamatan :  mode pengalamatan dapat diindikasikan secara implisit atau eksplisit.
  • Jumlah operand :  jumlah operand berkaitan dengan jumlah alamat yang digunakan.
  • Register atau memory : register menggunakan alamat operand implisit dan tidak membutuhkan bit instruksi.
  • Jumlah set register : sejumlah mesin memiliki satu set general purposes register yang dapat terdiri dari 8 atau 16 register yang dapat digunakan untuk menyimpan data dan alamat.
  • Jangkauan alamat : merupakan rentang memory utama yang dapat direferensi.
  • Granuralitas  alamat :  elemen-elemen biner pembentuk field alamat



1 comment: