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,
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 keseluruhan akan cepat.
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]
Kelemahan; Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word,
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
hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada
3) Letak operand berada pada memori yang dituju oleh isi register, dan
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.
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.
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,
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...)