Anda di halaman 1dari 27

BAHASA RAKITAN

Minggu II : Memory Addressing


Presented by: Agus Dendi Rachmatsyah, S.Kom, M.Kom .

S T M I K ( S e k o l a h Ti n g g i M a n a j e m e n I n f o r m a t i k a d a n I l m u K o m p u t e r ) A t m a L u h u r
Pangkalpinang
Daftar Isi
A. Pengertian J. Model Pengalamatan Index
B. Model Pengalamatan Immidiate K. Model Pengalamatan Base Index
C. Model Pengalamatan Register L. Model Pengalamatan Base Index Plus Offset
D. Model Pengalamatan Direct Absolute
E. Model Pengalamatan Direct Memory
F. Model Pengalamatan Indirect Register
G. Model Pengalamatan Indirect Memory
H. Model Pengalamatan Relatives Memory
I. Model Pengalamatan Stack Memory
A. Pengertian
Model pengalamatan adalah bagaimana cara menunjuk dan mengalamati suatu lokasi memori pada
sebuah alamat dimana operand akan diambil. Model pengalamatan diterapkan pada set instruksi,
dimana pada umumnya instruksi terdiri dari opcode (kode operasi) dan alamat.

Setiap model pengalamatan memberikan fleksibilitas khusus yang sangat penting. Model pengalamatan
ini meliputi immidiate, register, direct absolute, indirect register, string, dan input / output.

Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori yang efektif dari
operand dengan menggunakan informasi yang diadakan di register dan atau konstanta yang terkandung
dalam instruksi mesin atau di tempat lain.
B. Model Pengalamatan Immidiate
Bentuk model pengalamatan immidiate ini merupakan bentuk model pengalamatan yang paling sederhana
diantara model pengalamatan lainnya, dikarenakan beberapa alasannya sebagai berikut:

Operand benar-benar ada dalam instruksi atau bagian dari instruksi = operand sama dengan field alamat,

Umumnya bilangan akan disimpan dalam bentuk komplemen dua,

Bit paling kiri sebagai bit tanda, dan

Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimum word data.

Contoh: ADD 5; tambahkan 5 pada akumulator.


B. Model Pengalamatan Immidiate
(lanjutan...)
Syntax Effective address
#value Operand=value
Add #10,R1 R1[R1]+10

Keuntungan: Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk
memperoleh operand, menghemat siklus instruksi sehingga proses keseluruhan akan cepat.

Kekurangan: Ukuran bilangan dibatasi oleh ukuran field alamat.


C. Model Pengalamatan Register
Pada beberapa komputer, register dianggap sebagai menduduki 16 pertama 8 atau kata-kata dari
memori (misalnya ICL 1900, DEC PDP-10). Ini berarti bahwa tidak perlu bagi yang terpisah
"Tambahkan register untuk mendaftarkan" instruksi. Anda hanya bisa menggunakan "menambahkan
memori untuk mendaftar" instruksi. Dalam kasus model awal PDP-10, yang tidak memiliki memori
cache, Anda benar-benar dapat memuat sebuah loop dalam ketat ke dalam beberapa kata pertama
dari memori (register cepat sebenarnya), dan berjalan lebih cepat daripada  di memori inti magnetik.
Kemudian model dari DEC PDP-11seri memetakan register ke alamat di output / area input, tetapi ini
ditujukan untuk memungkinkan diagnostik terpencil. register 16-bit dipetakan ke alamat berturut-
turut 8-bit.
C. Model Pengalamatan Register
(lanjutan...)

Syntax Effective address


R1 EA=Loc
Add,R2,R1 R1[R1]+[R2]
D. Model Pengalamatan Direct Absolute
Alamat address = efektif, seperti yang diberikan dalam instruksi.

| load | reg Address | Load | reg | alamat

Hal ini membutuhkan ruang dalam sebuah instruksi untuk cukup alamat yang besar. Hal ini sering
tersedia di mesin CISC yang memiliki panjang instruksi variabel, seperti x86. Beberapa mesin RISC
memiliki Literal khusus Atas instruksi Load yang menempatkan sebuah 16-bit konstan di atas setengah
dari register.. Sebuah literal instruksi ATAU dapat digunakan untuk menyisipkan 16-bit konstan di bagian
bawah mendaftar itu, sehingga alamat 32-bit kemudian dapat digunakan melalui mode pengalamatan
tidak langsung mendaftar, yang itu sendiri disediakan sebagai "base- plus-offset“ dengan offset 0.
D. Model Pengalamatan Direct Absolute
(lanjutan...)
Syntax Effective address
Loc EA=Loc
Add,R1 R1[R1]+[100]

Kelebihan pada model pengalamatan IMMIDIATE dibanding dengan DIRECT ABSOLUTE:


1) Field alamat berisi efektif address sebuah operand,
2) Teknik ini banyak digunakan pada komputer lama dan komputer kecil, dan
3) Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus.

Kelemahan; Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word,

contoh: Add A; tambahkan isi pada lokasi alamat A ke akumulator.


E. Model Pengalamatan Direct Memory
Pengalamatan program memori langsung adalah pengalamatan yang digunakan mikroprosesor
pertama untuk semua lompatan (jump) dan panggilan (call). Pengalamatan program memori
langsung juga digunakan dalam bahasa tingkat tinggi seperti bahasa BASIC dengan instruksi
GOTO dan GOSUB. Mikroprosesor menggunakan bentuk pengalamatan ini, tetapi tidak sesering
penggunaan pengalamatan program memori relatif dan tidak langsung.

Instruksi untuk pengalamatan program memori langsung menyimpan alamat dengan opcode.
Sebagai contoh, jika program melompat ke lokasi memori 10000H untuk instruksi berikutnya,
alamat (10000H) disimpan mengikuti opcode dalam memori.
E. Model Pengalamatan Direct Memory
(lanjutan...)
Lompatan intersegmen adalah lompatan ke setiap lokasi memori dalam seluruh sistem memori.

Lompatan langsung sering disebut far jump (lompatan jauh) karena lompatan tersebut dapat melompat ke setia
p
lokasi memori untuk melaksanakan instruksi berikutnya. Pada mode riil, far jump dapat mengakses setiap lokasi
dalam memori 1 Mbyte pertama dengan mengubah CS dan IP. Pada mode operasi terproteksi, far jump
mengakses sebuah deskriptor segmen kode baru dari tabel deskriptor sehingga memungkinkannya melompat k
e setiap lokasi memori dalam seluruh alamat sepanjang 4 Gbyte pada mikroprosesor 80386 sampai pentium 4.

Instruksi lain yang menggunakan pengalamatan program langsung adalah instruksi intersegmen atau far CALL.
Biasanya, nama sebuah alamat memori disebut label. Ketika menggunakan label dengan instruksi CALL atau JMP
, sebagian besar assembler memilih bentuk yang paling tepat dari pengalamatan program.
F. Model Pengalamatan Indirect Register
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 (indirect register)

hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada

mode pengalamatan tidak langsung. Syntax Effective address


Adapun ciri indirect register: (R1) EA=[R1]
1) Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan Add,(R1),R1 R1[R1]+[[R1]]
tidak langsung,

2) Perbedaannya adalah field alamat mengacu pada alamat register,

3) Letak operand berada pada memori yang dituju oleh isi register, dan

4) Keuntungan dan keterbatasan pengalamatan register tidak langsung pada

dasarnya sama dengan pengalamatan tidak langsung.


G. Model Pengalamatan Indirect
Memory
Pengalamatan tidak langsung, yaitu alamat dihitung menggunakan modus beberapa sebenarnya
alamat dari suatu lokasi (biasanya lengkap kata) yang berisi alamat efektif sebenarnya.

Pengalamatan tidak langsung dapat digunakan untuk kode atau data. Hal ini dapat membuat
pelaksanaan pointer atau referensi atau menangani lebih mudah, dan juga dapat membuat lebih
mudah untuk memanggil sub-rutin yang tidak dinyatakan dialamati. Pengalamatan tidak langsung tidak
membawa hukuman performansi karena akses memori tambahan terlibat.

Beberapa awal mini-komputer (misalnya Desember PDP-8, Data General Nova) hanya memiliki
beberapa register dan hanya rentang menangani terbatas (8 bit). Oleh karena itu penggunaan memori
tidak langsung menangani hampir satu-satunya cara merujuk ke jumlah yang signifikan dari memori.
H. Model Pengalamatan Relatives Memory
Pengalamatan Relative, register yang direferensi secara implisit adalah program counter (PC).
Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat dan
memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya.

Syntax Effective address


R1 EA=R1
Add R2,R1 R1[R1]+[R2]
H. Model Pengalamatan Relatives Memory
(lanjutan...)
Pengalamatan program memori relatif tidak terdapat dalam mikroprosesor awal, melainkan pada keluarga mikroprose
sor ini. Istilah relatif berarti “relatif terhadap pointer instruksi (IP)”. Sebagai contoh, jika instruksi JMP melompati mem
ori dua byte berikutnya, alamat yang berhubungan dengan pointer instruksi adalah 2 ditambah pointer instruksi. Hasil
penjumlahan tersebut menghasilkan alamat instruksi program selanjutnya. Sebuah instruksi JMP relatif ditunjukkan p
ada gambar dibawah.

Perhatikan bahwa instruksi JMP

adalah instruksi satu byte, 

dengan displacement satu byte atau dua byte yang menambah pointer instruksi.

Displacement satu byte digunakan pada short jump, dan displacement dua byte digunakan
untuk near jump dan call. Kedua jenis lompatan tersebut termasuk lompatan intersegmen.
H. Model Pengalamatan Relatives Memory
(lanjutan...)
Pada 80386 ke atas, displacement dapat mempunyai nilai 32-bit, sehingga mampu menggunakan
pengalamatan relatif disetiap lokasi dalam 4GB segmen kodenya.

Instruksi JMP dan CALL relatif berisi 8-bit atau 16-bit displacemen bertanda yang memungkinkan


referensi memori maju (forward) dan referensi memori mundur (reverse). (versi 80386 ke atas
mempunyai displacement 8-bit atau 32- bit). Semua assembler secara otomatis menghitung jarak untuk
displacement dan memilih bentuk satu, dua, atau empat byte yang cocok. Jika jarak terlalu jauh untuk
displacement dua byte untuk mikroprosesor 8086 sampai 80286, beberapa assembler menggunakan lompa
tan langsung. Displacement 8-bit (short) mempunyai jangkauan lompatan antara +127 dan minus
128 byte dari instruksi berikutnya, sedangkan displacement 16-bit (near) mempunyai jangkauan kurang
lebih 2Gbyte. Displacement 32-bit hanya dapat digunakan dalam mode terproteksi.
I. Model Pengalamatan Stack Memory
Stack memainkan peranan penting dalam semua mikroprosesor. Stack menyimpan data
sementara dan menyimpan alamat kembali untuk prosedur. Memori stack merupakan memori
LIFO (last-in, first-out), yang menjelaskan bagaimana data disimpan dan diambil dari stack.

Data disimpan dalam stack dengan instruksi PUSH dan diambil dengan instruksi POP. Instruksi
POP juga menggunakan stack untuk menyimpan alamat kembali untuk prosedur dan instruksi
RET (return) untuk memindahkan alamat kembali dari stack.
I. Model Pengalamatan Stack Memory
(lanjutan...)
Memori stack diatur oleh dua register: stack pointer (SP) dan segmen stack (SS). Ketika sebuah
word dimasukkan ke dalam stack [lihat gamabr 3-17(a)], 8-bit atas disimpan dalam
lokasi yang dialamati SP-1. Adapun 8-bit bawah disimpan dalam lokasi yang dialamati SP-2.

SP kemudian dikurangi 2 sehingga data word berikutnya disimpan dalam lokasi memori stack
selanjutnya. Register SP/ESP selalu menunjukkan suatu area memori yang terletak dalam
segmen stack. Pada memori riil, register SP/ESP dijumlahkan dengan SS X 10H untuk membentu
k alamat memori stack. Pada mode proteksi, register SS menyimpan selektor yang mengakases
sebuah deskriptor untuk alamat basis segmen stack.
I. Model Pengalamatan Stack Memory
(lanjutan...)
I. Model Pengalamatan Stack Memory
(lanjutan...)
I. Model Pengalamatan Stack Memory
(lanjutan...)
Instruksi PUSHA dan POPA yaitu menyimpan (push) dan mengeluarkan (pop) semua register
kedalam stack, kecuali register segmen. Instruksi ini tidak terdapat pada mikroprosesor awal
8086/8088. Instruksi immidiate push merupakan instruksi baru yang terdapat pada
mikroprosesor 80286 sampai Pentium.
J. Model Pengalamatan Index
Indexing adalah field alamat yang mereferensi alamat memori utama, dan register yang
direferensikan berisi pemindahan positif dari alamat tersebut. Adapun kelebihan model
pengalamatan index:
1) Merupakan kebalikan dari mode base register,

2) Field alamat dianggap sebagai alamat memori dalam indexing, dan

3) Manfaat penting dari indexing adalah untuk eksekusi program-program iteratif.

Syntax Effective address


X(R2) EA=[R2]+X
Add 10(R2),R1 R1[R1]+[[R2]+10]
K. Model Pengalamatan Base Index
Base index, register yang direferensi berisi sebuah alamat memori, dan field alamat berisi
perpindahan dari alamat itu referensi register dapat eksplisit maupun implicit. Memanfaatkan
konsep lokalitas memori.

Syntax Effective address


R1,R2 EA=[R1]+[R2]
Add (R1,R2),R3 R3[R3]+[[R1]+[R2]]
L. Model Pengalamatan Base Index Plus
Offset
Offset biasanya nilai 16-bit masuk (walaupun 80386 diperluas ke 32 bit). Jika offset adalah nol, ini menjadi
contoh dari register pengalamatan tidak langsung, alamat efektif hanya nilai dalam register dasar.

Pada mesin RISC banyak, register 0 adalah tetap sebesar nilai nol. Jika register 0 digunakan sebagai
register dasar, ini menjadi sebuah contoh dari pengalamatan mutlak. Namun, hanya sebagian kecil dari
memori dapat diakses (64 kilobyte, jika offset adalah 16 bit). 16-bit offset mungkin tampak sangat kecil
sehubungan dengan ukuran memori komputer saat ini (yang mengapa 80386 diperluas ke 32-bit).

Ini bisa lebih buruk: IBM System/360 mainframe hanya memiliki 12-bit unsigned offset. Namun, prinsip
berlaku: selama rentang waktu yang singkat, sebagian besar item data program ingin mengakses cukup
dekat satu sama lain. Mode pengalamatan ini terkait erat dengan mode pengalamatan terindeks mutlak.
L. Model Pengalamatan Base Index Plus
Offset (lanjutan...)
Contoh 1: Dalam sebuah sub rutin, programmer terutama akan tertarik dengan parameter dan
variabel lokal, yang jarang akan melebihi 64 KB, yang satu basis register (yang frame pointer)
sudah cukup. Jika rutin ini adalah metode kelas dalam bahasa berorientasi objek, kemudian
register dasar kedua diperlukan yang menunjuk pada atribut untuk objek saat ini (ini atau diri
dalam beberapa bahasa tingkat tinggi). 

Contoh 2: Jika register dasar berisi alamat dari sebuah tipe komposit (record atau struktur),
offset dapat digunakan untuk memilih field dari record (catatan paling atau struktur kurang dari
32 kB).
L. Model Pengalamatan Base Index Plus
Offset (lanjutan...)

Syntax Effective address


X(R2) EA=+[R1]+[R2]+X
Add,10(R1,R2),R3 R3[[R3]+][R1]+[R2]]+10}
Tugas 1
Buatlah Rangkuman maksimum 1 halaman tentang
Model Pengalamatan!

Bisa ditulis tangan, bisa dikirim ke email :


dendi@atmaluhur.ac.id dengan format
NIM_NamaMHS_Kelompok.
Kalau selain email, dikumpulkan ke ruang LPPM.

Anda mungkin juga menyukai