Mode Pengalamatan (Addressing Mode) Keluarga Prosesor 8086
Mode Pengalamatan Pada Mikroprosesor Keluarga 8086 • Merupakan cara memberikan perintah transfer/pemindahan data dari lokasi satu ke lokasi lainnya.
I. Mode Pengalamatan Segera (Immediate Addressing) Yaitu mode pengalamatan yang digunakan untuk mengisi suatu register dengan data
Bentuk: MOV AL,5 Immediate Addressing
TUJUAN:
SUMBER:
REGISTER/ AKUMULATOR
DATA
Contoh Mode Pengalamatan Segera: • • • •
MOV AX,A1B2 MOV BL,03 MOV BP,1234 Register yang dapat diisi data dengan mode pengalamatan segera: AX,BX,CX,DX,AL,AH,BL,BH,CL,CH,DL,DH, BP,SP,SI,DI • Register segmen tidak dapat diisi dengan mode pengalamatan segera • Alamat memori juga tidak dapat diisi secara immediate
II. Mode Pengalamatan Register (Register Addressing) Yaitu mode pengalamatan yang digunakan untuk mentransfer data (byte/word) dari register sumber ke register tujuan.
Bentuk: MOV AL,BL
TUJUAN:
SUMBER:
REGISTER
REGISTER
Contoh Mode Pengalamatan Register: • • • •
MOV AL, BL MOV AX, CX MOV CS, AX MOV CS, DS ⇒ tidak diijinkan karena segment to segment • MOV BL, BX ⇒ Tidak dijinkan karena berbeda ukuran (mixed size)
Contoh Mode Pengalamatan Register: • Susun perintah untuk mengisi register segmen DS dengan data 1234 heksadesimal! • Jawab: MOV AX,1234 Æ immediate addressing MOV DS,AXÆ register addressing
III. Mode Pengalamatan Langsung (Direct Addressing) Yaitu mode pengalamatan untuk mentransfer data antar memori dan register
Bentuk 1: MOV AL,[0120]
TUJUAN:
SUMBER:
REGISTER
ALAMAT RELATIF MEMORI
Contoh Bentuk 1: Susun instruksi assembly untuk memindahkan isi alamat 10120 heksadesimal ke register AL, isi alamat 10150 heksadesimal ke register BL, dan isi alamat 10160 heksadesimal ke register CL! Anggap segment base 1000 tersimpan pada register DS! Jawab: MOV AX,1000 Æ immediate addressing MOV DS,AX Æ register addressing MOV AL,[0120] Æ direct addressing MOV BL,[0150] Æ direct addressing MOV CL,[0160] Æ direct addressing
Bentuk 2: MOV [0120],AL
TUJUAN:
SUMBER:
ALAMAT REGISTER MEMORI Contoh: susun instruksi untuk mengisi alamat 10120 dengan data 5 heksadesimal! Anggap segment base yang digunakan adalah 1000 tersimpan dalam DS!
Jawab: MOV MOV MOV MOV
AX,1000 IMMEDIATE ADDRESSING DS,AX REGISTER ADDRESSING AL,5 IMMEDIATE ADDRESSING [0120],AL DIRECT ADDRESSING
Tugas1: Susun instruksi untuk mengisi alamat 20150 heksadesimal dengan data 5, dan alamat 20160 heksadesimal dengan data 2. Isi kedua alamat tersebut dijumlahkan dan hasilnay disimpan di alamat 20170 heksadesimal. Anggap segment base yang digunakan adalah 2000 tersimpan dengan DS! Gunakan program DEBUG untuk menguji program anda, tunjukkan dengan peta memori dan register bahwa progrsam telah berjalan dengan baik.
IV. Mode Pengalamatan Tak Langsung (Indirect Addressing) Merupakan mode pengalamatan untuk mentransfer DATA/byte/word antar register dan lokasi yang alamatnya ditunjukkan oleh isi suatu register. Contoh MOV [BX], AX ⇒ Pindahkan isi register AX ke dalam alamat memori yang ditunjukkan oleh isi register BX
Contoh permasalahan Susunlah intruksi ke dalam bahasa assembly untuk memindahkan data A1B2 yang ada di register AX ke alamat fisik memori 20300 heksadesimal menggunakan mode pengalamatan register indirect, anggap segment yang digunakan adalah DS = 2000 dan alamat relatif yang menunjukkan alamat memory disimpan di register BX Jawab: DS : IP = 20300 Æ alamat fisik DS = 20000 Æ alamat awal DS IP = 0300 DIRECT: Intruksi yang digunakan MOV AX, 2000 MOV AX, 2000 MOV DS, AX MOV DS, AX MOV AX, A1B2 MOV BX, 0300 MOV [0300], AX MOV AX, A1B2 MOV [BX], AX
V. Base Plus Index Addressing Yaitu mode pengalamatan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh jumlah register base dan index. Bentuk1: MOV [BX + SI], AX Bentuk2: MOV AX,[BX+SI] Tugas2: Susun intruksi dalam bahasa assembly untuk memindahkan isi akumulator AX yakni A1B2 ke alamat memori 10500 heksadesimal dengan menggunakan mode pengalamatan base plus index, anggap segmen yang digunakan DS = 1000 dan register indeks yang digunakan SI = 300
V. Register Relative Addressing Yaitu mode pengalamatan untuk tranfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh isi suatu register dan jaraknya (displacement) Contoh MOV [BX + 4], AX
Contoh permasalahan Susun intruksi dalam bahasa assembly untuk memindahkan data A1B2 dari akumulator AX ke alamat memori 20304 H dengan menggunakan register relative addressing , anggap segmen yang digunakan DS : 2000 dan dan displacement 4 DS : IP = 20304 DS = 20000 IP = 0304 Intruksi yang digunakan Mov AX,2000 Mov DS, AX Mov BX,0300 Mov AX,A1B2 Mov [Bx + 4], AX
VI. Base Relative Plus Index Addressing Merupakan mode pengalamtan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh suatu register base dan register index ditambah displacement nya Contoh : MOV AX, [BX + DI + 4]