METODE
PENGALAMATAN
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 4
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
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.
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
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
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
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.
Sumber:
wikipedia.org
ihsanto eko, mikroprosesor, pusat pembangunan bahan ajar