- Back to Home »
- MODE PENGALAMATAN PADA MIKROPROSESOR
Posted by : sigit xp
Rabu, 04 Desember 2013
Banyaknya
bentuk pengalamatan pada cpu sehingga
membuat kita mempunyai pilihan untuk
melakukan peng-akses-an RAM yang paling efisien dalam desain program kita.
Terdapat 5
mode pengalamatan pada mikon. Seperti berikut:
(1)
Immediate (segera)
(2)
Register
(3) Direct
(langsuung)
(4)
Register Indirect (tidak langsung)
(5)
Indexed
Mode
pengalamatan Immediate
Adalah sebuah bentuk pengalamatan paling sederhana. Tidak
ada referensi kemana-mana. Operand (data yang akan diolah) benar-benar ada
dalam instruksinya. Keuntungan dari mode pengalamatan ini adalah Menghemat
siklus instruksi sehingga proses keseluruhan menjadi cepat (karena tidak
memerlukan referensi memori).
.
Contohnya berikut ini
MOV A,#25h ;isi 25h pada A
MOV R4,#62 ;isi bilangan desimal
62 pada R4
MOV B,#40h ;isi B dengan 40h
MOV DPTR,#4521h ;DPTR = 4521h
Karena
register DPTR adalah 16-bit, dia dapat diakses pula sebagai dua register 8-bit,
yaitu DPH (DPTR High byte) dan DPL (DPTR Low byte). Lihat contoh di bawah ini.
MOV DPTR,#2550h
Mode
Pengalamatan Register
Mode ini melibatkan dan menggunakan register sebagai
tempat untuk menyimpan atau tempat data yang dimanipulasi. Contoh dari mode
pengalamatan register adalah sebagai berikut ini.
MOV
A,R0 ;salin isi R0 pada A
MOV
R2,A ;salin isi A pada R2
MOV
A,R5 ;salin isi R5 pada A
MOV
A,R7 ;salin isi R7 pada A
MOV
R5,B ;salin isi B pada R5
Mode
Pengalamatan Direct (Langsung)
Adalah sebuah mode pengalamatan sederhana karena hanya memerlukan satu
referensi memory sebagai operandnya. Artinya operand (data yang akan diolah)
diletakkan di memory sehingga lebih besar dari operand yang "hanya"
tertulis di instruksinya.
Contoh mode pengalamatan langsung (direct addressing) adalah sebagai
berikut:
MOV
R0,40h ;simpan isi 40h pada R0
(immediate)
MOV
56h,A ;simpan isi A pada lokasi
56h (langsung)
MOV
R4,7Fh ;salin isi lokasi 74h ke R4
(Regsiter)
Register
SFR dan Pengalamatan-nya
Dari penjelasan tentang register , kita tahu bahwa
R0 s/d R7 adalah bagian dari memory RAM. Lalu dimana tempatnya untuk register
register semacam A, B, PSW, dan DPTR , mereka tersimpan pada suatu register
kusus yang disebut sebagai SFR (Special Function Registers). Umumnya
register-register tersebut dibuat bukan untuk tempat kita menyimpan data, namun
register–register tersebut memiliki fungsi terutama untuk mengendalikan
peralatan-peralatan yang terdapat pada chip, misalnya Timer, Serial, Kontrol
Power, Port dan lain-lain. Dan semua register-register tersebut juga memiliki
nama tertentu. Misalnya register alamat E0h, disebut juga register A, dan
register B memiliki alamat F0h. Dalam Tabel 5-1 kita akan melihat secara
lengkap register-register yang termasuk dalam golongan SFR ini.
MOV
A,#55h ;isi A dengan 55h
MOV 0E0h,#55h ;sama
artinya dgn di atas
MOV
B,#25h ;isi A dengan 25h
MOV 0F0h,#25h
;sama artinya dgn di atas
MOV
A,R2 ;Salin R2 pada A
MOV
0E0h,R2 ;sama artinya dgn di atas
MOV
B,R0 ;Salin R0 pada B
MOV
0F0h,R0 ;sama artinya dgn di atas
Tabel 5-1
adalah daftar dari Special Function Register 8051 dan alamat-alamatnya. Hal
berikut ini yang harus diperhatikan untuk mengalamat register SFR ini.
1.
SFR memiliki alamat 80h s/d FFh. Kesemuanya hanya bisa diakses dengan cara mode
pengalamat langsung (Direct). Beberapa diantara juga bisa dialamati secara bit.
Sama persis dengan semua lokasi RAM yaitu 00 s/d 7Fh yang juga bisa dilamati
dengan mode pengalamatan langsung.
2.
Tidak semua lokasi dalam SFR digunakan, karena tidak ada peralatan yang
dihubungkan untuk lokasi tersebut. Lokasi yang tidak dugunakan pada lokasi SFR
80h s/d FFh tersebut dibiarkan kosong, dan kita diminta untuk tidak memodifikasi
(menulis) nya. Karena mungkin pada produk yang lebih baru, lokasi-lokasi
tersebut digunakan untuk peralatan yang baru dengan fungsi-fungsi tertentu.
Tabel 5-1
Alamat-alamat dari SFR (Special Function Register)
|
|
|
Simbol
|
Nama
|
Alamat
|
ACC *
|
Accumulator
|
0E0h
|
B *
|
Register
B
|
0F0h
|
PSW *
|
Program
Status Word
|
0D0h
|
SP
|
Stack
Pointer
|
81h
|
DPTR
|
Data
Pointer 2-bytes
|
|
DPL
|
Low byte
|
82h
|
DPH
|
High
byte
|
83h
|
P0 *
|
Port 0
|
80h
|
P1 *
|
Port 1
|
90h
|
P2 *
|
Port 2
|
0A0h
|
P3 *
|
Port 3
|
0B0h
|
IP *
|
Kontrol
Prioritas Interupsi
|
0B8h
|
IE *
|
Kontrol
Enable Interupsi
|
0A8h
|
TMOD
|
Kontrol
Mode Timer/.Counter
|
89h
|
TCON
|
Kontrol
Timer/Counter
|
88h
|
T2CON
|
Kontrol
Timer/Counter 2
|
0C8h
|
T2MOD
|
Kontrol
Mode Timer/.Counter 2
|
0C9h
|
TH0
|
Timer/Counter
0 high byte
|
8Ch
|
TL0
|
Timer/Counter
0 Low byte
|
8Ah
|
TH1
|
Timer/Counter
1 high byte
|
8Dh
|
TL1
|
Timer/Counter
1 Low byte
|
8Bh
|
TH2
|
Timer/Counter
2 high byte
|
0CDh
|
TL2
|
Timer/Counter
2 Low byte
|
0CCh
|
RCAP2H
|
T/C 2
Capture high byte
|
0CBh
|
RCAP2L
|
T/C 2
Capture low byte
|
0Cah
|
SCON *
|
Serial
Control
|
98h
|
SBUF
|
Serial
data buffer
|
99h
|
PCON
|
Power
Control
|
87h
|
* = Bit
Addressable (dibahas pada bab 8)
Pada mode
pengalamatan langsung (direct), kita harus perhatikan bahwa alamat data yang
bisa ditangani dalam mode ini adalah dalam ukuran byte. Yaitu dengan alamat 00
s/d FFh. Sehingga mode pengalamatan ini hanya mampu untuk mengalamati
lokasi-lokasi tersebut. Sebagian untuk RAM dan sebagian lagi untuk SFR.
Mode
Pengalamatan register Indirect
Adalah sebuah mode pengalamatan yang
memerlukan lebih dari satu referensi (baik memory atau register) untuk
mengambil operand-nya. dalam mode ini,
register digunakan untuk menunjuk lokasi dari register yang lain. Kita dapat
mengakses seluruh lokasi RAM yang lokasinya ditunjukkan oleh isi register.
Contoh mode pengalamatan tidak
langsung adalah:
MOV A,R0 ;pindahkan isi
register R0 pada A
MOV A,@R0 ;pindahkan isi
lokasi yg ditunjuuk R0 pada A
MOV R1,B ;pindahkan isi
B pada R1
MOV @R1,B ;pindahkan isi B pd
lokasi yg ditunjuuk R1
Kelebihan
Mode Pengalamatan InDirect
Salah satu kelebihan dari pengalamatan register
InDirect ini, kita dapat mengakses data secara dinamis jauh lebih baik dari
mode Pengalamatan Direct karnaakan menjadi jauh lebih efisien dan hanya
dimungkinkan dengan menggunakan mode pengalamatan tidak langsung.karena dapat
menggunakan looping yang tidak dapat digunakan dengan mode pengalamatan
langsung. Nah inilah perbedaan penting dari dua mode ini.
Mode
Pengalamatan Ter-Index dan mengakses On-Chip ROM
Mode pengalamtan ter-index digunakan secara luar
untuk mengakses element data (of look-up table entries) dalam lokasi ROM
program dalam 8051. Intruksi yang digunakan untuk hal itu adalah “MOVC
A,@A+DPTR”. Register 16-bit pada DPTR dan register A digunakan sebagai pembentuk
alamat dari element data yang tersimpoan dalam ROM program. Karena data yang
hendak diakses adalah data kode yang tersimpan dalam ROM Program, maka simbol
MOVC digunakan untuk membedakan dengan MOV. “C” yang berarti adalah Code.
Instruksi ini adalah jumlah dari isi register A dan isi DPTR kemudian menjadi
penunjuk (pointer) 16-bit yang dapat mengakses seluruh jangkauan data 16-bit
dalam CPU.
Referensi :
Amazing, sangat membantu terimakasih...
BalasHapusmkasih min
BalasHapussolder uap