Mode Pengalamatan
(Addressing Mode)
1
Diagram Internal & Register
Diagram Internal i8088
BIU
C-BUS
INSTRUCTION
4
ES STREAM 3
BYTE
CS QUEUE 2
SS 1
DS
IP CONTROL
SYSTEM
A- BUS
EU
AH AL
BH BL
CH CL ALU
DH DL
SP
BP OPERAND
SI FLAGS
DI
Q&A uP 8088
• Q : kenapa 8088 dibagimenjadi BIU dan
EU?
• A : sesuaifungsi, yaitu BIU
menghitungalamat, EU menghitung data
• Q : apabedanya ALU di BIU dengan ALU
di EU?
• A : ALU di BIU menggabungkan 16 bit
offset dengan 16 bit segmenmenjadi 20 bit
alamatfisik, sedangkan ALU di EU
Fungsi BIU
• Sebagaiantarmuka(pengalamatan)
denganperipheral diluarmikroprosesor.
• Bertanggungjawabterhadapsemuaoperasi bus
eksternal, seperti :
– Instruction fetch
– Operasibaca-tulismemoriatau I/O
– Antrianinstruksidanperhitunganalamat (PA)
Fungsi EU (Execution Unit)
8
Program DEBUG
• Setelah program DEBUG dijalankan, Ketik R untuk
melihat isi register!
13
Bahasa Pemrograman
• Low Level Language (assembly): bahasa
pemrograman yang menggunakan register
sebagai peyimpan data. Contoh:
pemrograman untuk menghitung 5+2:
MOV AL,5
ADD AL,2
AL adalah register
14
Level Kode
15
Format instruksi assembly
LABEL OPCODE OPERAND COMMENT
16
Mode Pengalamatan
Pada Mikroprosesor Keluarga 8086
• Merupakan cara memberikan perintah
transfer/pemindahan data dari lokasi satu ke
lokasi lainnya.
• Lokasi pemindahan data dapat meliputi:
register, alamat memori, maupun piranti I/O
• Pemrogram (manusia) menulis instruksi
dalam format assembly, selanjutnya oleh
compiler (program) diubah menjadi format
heksadesimal dan disimpan dalam memori.
17
Lokasi Pemindahan Data
Lokasi Lokasi memori Lokasi I/O
register
BUS ALAMAT
BUS DATA
BUS KONTROL
18
I. Mode Pengalamatan Segera
(Immediate Addressing)
Immediate addressing merupakan mode pengalamatan yang
digunakan untuk mengisi suatu register dengan data.
Bentuk:
MOV AL,5
TUJUAN: SUMBER:
REGISTER/
DATA
AKUMULATOR
Arti: isilah atau copy 5 heksadesimal ke register AL
19
Untuk mempelajari mode pengalamatan dapat digunakan
program DEBUG. Jalankan program DEBUG, kemudian
berikan perintah A untuk menulis program assembly. Tulis
program assembly seperti berikut ini!
MOV AL,15
MOV BL,21
MOV CX,1A2B
MOV DX,5678
21
Selanjutnya, lihat isi memori dengan perintah D, akan
terlihat:
Bentuk:
MOV AL,BL
TUJUAN: SUMBER:
REGISTER
REGISTER
24
Contoh Mode Pengalamatan Register:
26
III. Mode Pengalamatan Langsung
(Direct Addressing)
Direct addressing merupakan mode pengalamatan untuk
mentransfer data antar memori dan register
Bentuk 1:
MOV AL,[0120]
28
Bentuk 2:
MOV [0120],AL
29
Jawab:
MOV AX,1000 IMMEDIATE ADDRESSING
MOV DS,AX REGISTER ADDRESSING
MOV AL,5 IMMEDIATE ADDRESSING
MOV [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 program telah
berjalan dengan baik.
30
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
31
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
Intruksi yang digunakan DIRECT:
MOV AX, 2000 MOV AX, 2000
MOV DS, AX MOV DS, AX
MOV BX, 0300 MOV AX, A1B2
MOV AX, A1B2 MOV [0300], AX
MOV [BX], AX
32
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
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
33
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
34
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
35
VI. Base Relative Plus Index Addressing
36
Mode Pengalamatan Pada
SMS32V23
• Immediate Addressing
MOV AL,15 ; Copy 15 heksadesimal ke register AL
MOV BL,40 ; Copy 40 heksadesimal ke register BL
MOV CL,50 ; Copy 50 heksadesimal ke register CL
MOV DL,60 ; Copy 60 heksadesimal ke register DL
• Ingat! SMS32V23 atau SMS32V50 hanya
memiliki 4 buah register serbaguna yakni AL,
BL, CL dan DL.
37
Mode Pengalamatan Pada
SMS32V23
• Indirect Addressing
38
Mode Pengalamatan Pada
SMS32V23
• Register Indirect Addressing
40
Mode Pengalamatan Pada
SMS32V23
• Register Addressing
5 5 5
AL BL AL BL
PUSH AL Instruksinya: POP BL
MOV AL,5
PUSH AL
5 POP BL 5
42
Mode Pengalamatan Pada
SMS32V23
• Jawab:
MOV AL,A1
MOV [50],AL
MOV BL,[50]
ADD BL,5
PUSH BL
POP CL
43