Mode Pengalamatan Relatif
Assalamualaikum Teman :)
kali ini kita akan memahami apa itu sih Mode Pengalamatan Relatif , mungkin ada dari kalian yang tugas harus membuat
mode pengalamatan kan >_< yokai liat dan pelajari ya kawan
Mode pengalamatan didefinisikan dalam sebuah arsitektur set instruksi yang diberikan untuk menentukan bagaimana instruksi bahasa mesin dalam arsitektur yang mengidentifikasi operan dari setiap instruksi. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori efektif operand dengan menggunakan informasi yang dimiliki dalam register dan / atau konstanta yang terkandung dalam instruksi mesin atau tempat lain
Pada arsitektur 8086/88 memori = 1 MB artinya terdapat sejumlah 1 M = 220 = 1024 sel memori 8 bit dengan alamat = 0 s/d (220 – 1) = 00000 H s/d FFFFF H, Dalam arsitektur 8086/88 hanya terdapat register-register 16 bit yang hanya mampu mengalamati memori dari 0 s/d (216-1), Oleh karena itu digunakan metode pengalamatan dengan dua register yaitu segment register dan offset register sehingga akan didapatkan pengalamatan 220
Metode pengalamatan dengan dua register ini disebut dengan pengalamatan relatif (relative address), Contoh :
Segment : Offset
A123 : 099Ah
Komposisi Bit : 1010 0001 0010 0011 0000
0000 1001 1001 1010
1010 0001 1011 1100 1010 = A1BCA h
8088 mempunyai sekitar 24 addressing mode → dikelompok menjadi 7, yaitu :
Register Addressing
Immediate Addressing (pengcopyan variabel angka secara langsung)
Direct Addressing (pengcopyan variabel dari suatu register atau simbol)
Register Indirect Addressing (mengakses suatu variabel yang banyak dengan mengambil alamat efektifnya)
Base Relative Addressing (mengakses suatu tabel dengan mengambil alamat efektifnya)
Direct Indexed Addressing (mirip dengan base addressing, perbedaannya hanya penggunaan register yang dipakai untuk perhitungan alamat efektif. Pada indexed addressing dipakai register-register index yaitu SI dan DI)
dan Base Indexed Addressing (merupakan gabungan antara base addressing dan indexed addressing. Mode pengalamatan ini sering digunakan untuk menangani array dua dimensi).
ORGANISASI MEMORI
Pada arsitektur 8086/88 terdapat peta memori sbb :
Alamat Fisik
Keterangan
00000 – 0007F
BIOS Interrupt Vektor
00080 – 003FF
DOS Interrupt Vektor
00400 – 004FF
BIOS Data Area
00500 – 005FF
DOS & BASIC Data Area
00600 – 9CFFF
RAM Working Space
A0000 – A3FFF
Cadangan
A4000 – AFFFF
Monochrome Adapter
B0000 – B1000X
Monochrome Buffer
B1001 – B7FFF
Color/Graphics Adapter
B8000 – BBFFF
BC000 – BFFFF
C0000 – C7FFF
Ekspansi Memory
C8000 – C3FFF
Harddisk
CC000 – F3FFF
Cadangan
F4000 – F5FFF
User ROM (8 K)
F6000 – FDFFF
ROM BASIC (32 K)
FE000 – FFFFF
ROM BIOS (8 K)
Register dan Immediate Addressing
Register Add.: Operand disimpan/diambil dari register
MOV AX,CX ; copy 16 bit isi CX (count regs) ke AX (acc. regs)
Immediate Add.: source operand dapat berbentuk konstanta 8/16 bit; Konstanta ini terdapat dalam instruksi.
MOV CX,500
MOV CL,-30 ; simpan –30 ke reg. AL
K EQU 1024 ; source operand dapat berbentuk simbol yg didefine dgn EQU
Keterangan
8 bit signed number: 127(7H) s/d –128(80H)
16 bit signed number: 32767(7FFFH) s/d –32768(8000H)
Max 8 bit unsigned #: 255 (0FFH)
Max 16 bit unsigned #: 65535 (0FFFFH)
Direct Addressing
Kelebihan
Field alamat berisi efektif address sebuah operand
Teknik ini banyak digunakan pada komputer lama dan komputer ecil
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 : MOV AX, TABLE ; load isi lokasi memori Table ke AX
Register Indirect Addressing
Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung 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 hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan tidak langsung
Contoh :
Offset: effectives address (EA)jarak letak operand, dalam byte terhitung dari awal segment
Address memory = offset + isi DS digeser dgn 0000
MOV AX,[BX] ; load isi memory yang ditunjuk BX ke AX
Base Relative Addressing
EA dihitung: Displacement + isi BX atau BP
BX cocok dipakai jika data yang hendak diakses terdapat di beberapa lokasi memori (terpisah)
MOV AX,[BX]+4 ;Load isi field record yang terdapat di byte ke 5 dan 6, ;dimana awal address record di BX ke AX
Direct Indexed Addressing
EA = Displacement + Index Reg DI atau SI
DI atau SI cocok untuk akses elemen dalam Tabel
Displacement ke awal TABLE
Index reg: ke elemen di dalam Tabel
MOV DI,4
MOV AX,TABLE[DI];Load elemen ke3 ke AX TABLE adalah Tabel 1 Byte
Base Indexed Addressing
Cocok untuk akses “two dimensional array”
EA = Base regs + Index regs + Displ.
Contoh:
MOV AX,[BX+2+DI];operand dapat ditulis
MOV AX,[DI+BX+2];dlm [ ],urutan sembarang
MOV AX,[BX+2][DI];displacement dpt digabung
MOV AX,[BX][DI+2];dgn salah satu register
kalau base register ny penjelasanya bagaimana ?
BalasHapus\