Metode
pengalamatan merupakan aspek dari set instruksi arsitekturdi sebagian unit
pengolah pusat (CPU) desain yang didefinisikan dalam set instruksi arsitektur dan
menentukan bagaimana bahasa mesinpetunjuk dalam arsitektur untuk
mengidentifikasi operan dari setiap instruksi.. Sebuah mode pengalamatan
menentukan bagaimana menghitung alamat memori yang efektif dari operand dengan
menggunakan informasi yang diadakan di registerdan / atau konstanta yang
terkandung dalam instruksi mesin atau di tempat lain.
Pada prosesor 8051 terdapat 7 cara
pengalamatan, yaitu :
· - Immediate addressing atau instant addressing atau pengalamatan instan.
·
- Register addressing atau pengalamatan register.
·
- Direct addressing atau pengalamatan langsung.
· - Indirect
addressing atau
pengalamatan tidak langsung
- Register Indirect Addressing
- Displacement Addressing
- Stack Addresing
Pada
prosesor 8051, secara garis besar ada 3 macam lokasi data, yaitu RAM internal,
ROM internal dan SFR. RAM juga biasa disebut data memory atau memory tempat
meletakkan data, sedangkan ROM juga biasa disebut code memory atau memory
tempat meletakkan kode instruksi. Tetapi biasanya data yang berupa konstanta
ditulis pada ROM internal. Berikut ini adalah contoh mode pengalamatan.
1. Immediate Addressing.
MOV
50H,#40H ;masukkan ke RAM alamat 50H data
40H
Kode
instruksi di atas adalah contoh mode pengalamatan instan. MOV adalah kode
operasi atau opcode (operation code) untuk menyalin data ke lokasi tertentu.
50H adalah operand pertama, sedangkan 40H adalah operand kedua. Operand adalah
data atau lokasi data yang dilibatkan dalam eksekusi instruksi.
Operand
pertama ditulis tanpa tanda ‘#’ artinya angka 50H merupakan alamat memory,
dalam hal ini RAM, sedangkan operand kedua diawali dengan tanda ‘#’ yang
berarti instan, maksudnya data yang akan dilibatkan telah tersedia pada
instruksi tsb, yaitu angka 20H. Pada mode pengalamatan instan, biasanya operand
kedua berupa konstanta, sedangkan operand pertamanya dapat berupa alamat RAM
internal, register atau SFR. Contoh lain untuk mode pengalamatan instan,
misalnya :
MOV
R5,#40H
;masukkan data 40H ke R5
MOV TMOD,#01010001B ;masukkan data 01010001 ke register
TMOD
ADD
A,#12
;A = A + 12
Keuntungan:
- Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
- Menghemat siklus instruksi sehingga proses keseluruhan akan cepat
Kekurangan:
- Ukuran bilangan dibatasi oleh ukuran field alamat
2. Register Addressing.
MOV
50H,R4 ;salin
isi R4 ke RAM alamat 50H.
Kode instruksi di atas merupakan
contoh mode pengalamatan register, operand 2 berupa register, dalam hal ini R4.
Data yang akan dilibatkan dalam operasi ini berada di dalam R4. Sedangkan
operand 1 dapat berupa RAM maupun SFR.
Dalam
pemrograman 8051, tidak dimungkinkan penulisan kode program yang melibatkan 2
register. Tetapi karena alamat register dapat diganti dengan alamat RAM
internal, maka ada cara lain untuk melibatkan 2 register dalam 1 kode
instruksi. Berikut ini adalah beberapa contoh lain mode pengalamatan register.
MOV
04H,R3 ;sama
dengan MOV R4,R3 untuk Register Bank 0
MOV
0BH,R3 ;sama dengan
MOV R4,R3 untuk Register Bank 1
Kelebihan Register Addressing :
- Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
- Akses ke regster lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat
Kekurangan Register Addressing : Ruang alamat menjadi terbatas
3. Direct Addressing.
MOV 50H,40H
;salin isi RAM alamat 40H ke RAM alamat 50H.
Kode instruksi di atas adalah contoh
mode pengalamatan langsung. Data yang akan dilibatkan dalam operasi instruksi
berada di dalam RAM internal, dalam contoh ini RAM alamat 40H. Direct address
bukan hanya meliputi RAM internal tetapi juga SFR, baik operand pertama maupun
operand kedua dapat berupa lokasi RAM maupun SFR. Berikut ini adalah contoh
lain pengalamatan langsung,
MOV
A,P1
;isi Port 1 disalin ke accumulator
MOV 40H,TL0
;low-byte dari Timer 0 disalin ke RAM internal alamat 40H
MOV
P2,50H
;menyalin isi RAM internal alamat 50H ke Port 2
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: ADD A ; tambahkan isi pada lokasi alamat A ke akumulator
4. Indirect Addressing.
MOV R1,#40H
;mengisi R1 dengan nilai 40H
MOV A,
@R1 ;menyalin isi
RAM yang alamatnya tersimpan di R1
;yaitu RAM alamat 40H ke accumulator.
INC
R1
;isi R1 ditambah 1
MOV
P1,@R1 ;menyalin isi RAM
alamat 41H ke Port 1.
Kode instruksi di atas adalah contoh
mode pengalamatan tak langsung, di mana salah satu operandnya berupa RAM
internal yang alamatnya tersimpan di R1. Register yang digunakan untuk operasi
pengalamatan tak langsung hanyalah R0, R1 dan DPTR.
Pada contoh di atas, R1 diisi angka 40H, setelah itu isi R1 dijadikan penunjuk
alamat RAM internal, sehingga instruksi kedua merupakan perintah untuk menyalin
isi RAM internal alamat 40H ke dalam accumulator. Instruksi ketiga adalah
instruksi untuk menambah satu isi R1, sehingga sekarang isi R1 adalah angka
41H.
Kelebihan Indirect Addresing
: Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat
referensiKekurangan Indirect Addresing : Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi.
5. Register Indirect Addressing
Metode pengalamatan register tidak
langsung mirip dengan metode pengalamatan tidak
langsung Perbedaannya adalah field alamat mengacu pada alamat
register. Letak operand berada pada memori yang dituju oleh isi
register.
Kelebihanan dan kekurangan
pengalamatan register tidak langsung adalah 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, metode
pengalamatan register tidak langsung hanya menggunakan satu referensi memori
utama sehingga lebih cepat daripada metode pengalamatan tidak langsung.
6. Displacement Addressing
Displacement Addressing adalah
menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak
langsung. Metode ini mensyaratkan instruksi memiliki dua buah field
alamat, sedikitnya sebuah field yang eksplisit. Field eksplisit
bernilai A dan field implisit mengarah pada register.
Ada tiga model displacement,
yaitu Relative addressing, Base register addressing,
dan Indexing
7. Stack Addresing
Stack adalah array lokasi yang linier = pushdown
list = last-in-first-out. Stack
merupakan blok lokasi yang terbalik. Butir ditambakan ke puncak stack
sehingga setiap saat blok akan terisi secara parsial. Yang berkaitan dengan stack
adalah pointer yang nilainya merupakan alamat bagian paling atas
stack. Dua elemen teratas stack dapat berada di dalam register CPU,
yang dalam hal ini stack pointer mereferensi ke elemen ketiga stack. Stack
pointer tetap berada dalam register. Dengan demikian, referensi-referensi ke
lokasi stack di dalam memori pada dasarnya merupakan pengalamatan register
tidak langsung.
Referensi:
Tidak ada komentar:
Posting Komentar