Popular Post

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 :

{ 1 komentar... read them below or add one }

- Copyright © xeroct xentral - Date A Live - Powered by Blogger - Designed by Johanes Djogan -