You are on page 1of 3

Tugas Individu

Arsitektur dan Organisasi Komputer


Nama : Raras Wirasto

Addresing Mode pada Microprocessor IBM-PC 8088

Immediate Addressing Mode


Pada immediate addressing mode data berada mengikuti opcode(Operation
Code).
Ex:
Mov AL,35H B0 35

Contoh instruksi diatas memerintahkan untuk mengisi akumulator AL dengan nilai 35H.
Pada immediate addressing mode ini perintah dapat melibatkan 8 bit data atau pun 16 bit
data.Contoh diatas adalah 8 bit data,sedangkan untuk 16 bit data contohnya adalah sbb:
Ex:
Mov SI,1234H BE 34 12

Instruksi tersebut akan memindahkan 16 bit 1234H ke index register SI. Telihat pada
perintah immediate ini dua byte 34 12 disimpan dalam memori berupa low-order terlebih
dahulu.

Addressing Mode Postbyte


Sebagian besar instruksi immediate melibatkan register 8088, tetapi sebenarnya
sangat memungkinkan untuk melakukan perintah ke lokasi memori secara
langsung.Sebagai contoh Opcode C6 yaitu memiliki perintah:

Mov b r/m,imm

Pada kasus tersebut, 8 bit immediate byte dipindahkan secara langsung ke suatu memori
yang didefinisikan oleh r/m.Arti dari r/m ini dijelaskan oleh Opcode byte yand disebut
Addressing Mode Postbyte.
Ex:
Add BL.19H Add b r/m,imm

Pada perintah add ini hanya melibatkan satu opcode yaitu 80 diikuti Postbyte. Pada
perintah ini hanya melibatkan register saja maka postbyte 8 bit terdiri dari :
mod[2bit]reg[3bit]r/m[3bit] : 11 000 011 yaitu C3H. sehingga memilik Opcobe sbb;

80 C3 19 Add BL,19H

Semua penjelasan opcode dapat dilihat pada IBM-PC 8088 User’s Manual/Handbook.

Register Addressing
Pada Register Addressing data yang ada ditemukan hanya pada register
saja.Sebagai contoh:

Dec CL

Arti dari Opcode diatas adalah mengurangi satu nilai dari isi register CL. Contoh itu
adalah single operand instruction. Register Addressing dapat juga melibatkan dua
operands. Contoh :

Mov AX,SI

Memindahkan isi dari register SI ke register AX. Perintah register addressing mode dapat
melibatkan perpindahan data dari satu register ke register lain.

Direct Addressing Mode


Direct Addressing Mode mengguankan dua byte operand yang dapat
merepresentasikan alamat offset. Alamat offset ini dikombinasikan dengan nilai yang ada
pada data segment register (DS) untuk membentuk alamat sebenarnya dari data.
Ex :
Mov BX,[2345H]

Perintah tersebut memindahkan isi alamat memori offset 2345h ke dalam register
BX.Alamat offset ini digunakan untuk menetukan alamat sebenarnya pada memori
dengan cara menggabungkannya dengan data yang ada pada data segment(DS) register.
Sebagai contoh diatas,asumsi DS bernilai 0200,maka alamat realnya adalah 2000 + 2345
yaitu 4345.Data berada pada alamat 04345 untuk lower byte dan 04346 untuk high
bytenya.Hal ini Karena pada 8088 IBM-PC menggunakan konvensi little endian.

Register Indirect Addressing


Index register SI dan DI serta base register BX dapat digunakan untuk menunjuk
lokasi alamat memori, alamat sebenarnya diperoleh dengan menggabungkan data yang
berada pada data segment (DS) register.
Ex:
Mov AX,[SI]

Jika register index SI berisi data 1234 maka perintah tersebut akan mengisikan register
AX dengan nilai/data yang berada pada alamat yang ditunjukan oleh gabungan data
dalam SI dan DS.Sebagai perumpamaan jika DS bernilai 0200 maka alamat sebenarnya
adalah 03234. Sehingga Low addressnya adalah 03234 dan high addressnya
03235.Apabila alamat 03234 berisi FEh dan alamat 03235 berisi 17h maka data pada AX
akan berisi 17FEh.

Indexed addressing
Pada 8088 terdapat addressing mode yang memudahkan untuk mengakses data
berupa array. Index addressing mode ini menggunakan register SI dan DI sebagai offset
alamat awal array yang digabungkan dengan disp8 atau disp16 serta data pada data
segment (DS).
Ex :
Mov AH,[SI]+1234h

Pada imstruksi tersebut menggunkan disp16,diasumsikan SI berisi 2000 dan DS bernilai


02000 maka diperoleh alamat yang dimaksud ialah 05234.Sehingga akan mengisikan
data pada alamat 05234 ke AH.

Based addressing
Kadang kala akan lebih mudah menggunakan nilai dari register sebagai alamat
dasar dari array dan menggunakan displacement seperti disp8 atau disp16 sebagai index
dari array.Hal inilah yang dikatakan sebagai base addressing.
Ex:
Mov AL,BX+10h

Perintah diatas menggunakan BX sebagai base address dan 10h merupakan disp8 yang
dipakai sebagai index untuk array-nya.Hal ini berlawanan dengan Indexed addressing
yang menggunakan register SI sebagai index dari array.

Indexed Plus Based Addressing


Sangat memungkinkan menggunakan SI dan DI sebagai index variable terhadap
bases array.Pada bentuk ini maka alamat digunakan BX+SI dan BX+DI,sebagai
tambahan data digunakan juga disp8 atau disp16.Konsep ini memudahkan dalam
menyimpan data seakan-akan dalam bentuk table yang terdiri dari record dan kolom.
Ex:
Mov AH,[BP+SI+29]
Mov AH,[SI+29+BP]
Mov AH,[SI][BP]+29

Ketiga instruksi diatas memiliki arti yang sama, urutan register tidak pengaruh. Dalam
hal ini yang menjadi base addressnya adalah BP, penggubahan disp8 (29) sebagai index
dari array,sedangkan SI digunakan untuk perubahan “kolom” dalam satu record(base
address+index) .

Daftar Pustaka:
Notes developed by David Tarnoff solely for use by students in his sections of CSCI
2150

You might also like