Rabu, 16 Mei 2012

TEKNIK PENGALAMATAN

Teknik Pengalamatan:

1. Pengalamatan Langsung
Teknik pengalamatan langsung dilakukan dengan memberikan nilai ke suatu register secara langsung. Untuk melaksankan teknik pengalamatan langsung digunakan tanda #. Sebagai contoh instruksi :
MOV A,#01H ;Mengisi akumulator dengan 01H
Pengalamatan data langsung dari 0 sampai 127 akan mengakses RAM internal, sedangkan pengalamatan data dari 128 sampai 255 akan mengakses register perangkat keras. Sebagai contoh instruksi
Mov A,#010H ;isi akumulatur dengan 10H
MOV P3,A ;memindahkan isi akumulator ke Port 3


2. Pengalamatan Tak Langsung
Teknik pengalamatan tidak langsung menunjuk ke sebuah register yang berisi lokasi alamat memori yang akan digunakan dalam operasi. Lokasi yang sebenarnya tergantung pada isi register saat instruksi dijalankan. Untuk melaksanakan pengalamatan tidak langsung digunakan simbol @. Sebagai contoh instruksi:
MOV R0,#030H ;isi register R0 dengan 30H
Mov @R0,#0FFh ;isi alamat yang ditunjuk R0 dengan FFH

3. Pengalamatan Bit
Teknik pengalamatan bit adalah penunjukkan alamat lokasi bit baik dalam RAM internal atau perangkat keras. Untuk melakukan pengalamatan bit digunakan simbol titik (.), misalnya FLAGS.3, 40.5, 21H.5, dan ACC.7. Sebagai contoh instruksi:
SETB ACC.7 ;menbuat bit ke-7 pada akumulatuor menjadi set
SETB P1.3 ;membuat p1.3 menjadi set

4. EQU (Equate)
Equ digunakan untuk mendefinisikan sebuah simbol atau lambang assembler secara bebas.
Contoh:
REG EQU 0
DAT EQU 040H

Mov DAT,#0AFH
Mov REG,#87H
Pada perintah diatas DAT diisi dengan 0AFH, konstanta ini telah mendefinisikan sebelumnya dengan 40H.
Maka MOV DAT,#0AFH persamaannya MOV 040H,#0AFH yang artinya 0AFH dimasukan pada alamat 40H. Begitu pula pada MOV REG,#087H.

5. DELAY TIME
Program delai merupakan program tunda yang ditentukan oleh waktu.
Contoh:
MOV R0,#200 ; Set loop counter, R0 = 200 times
; 5 Cycle * 100 times = 1ms
DELAY: NOP ; 1 Cycle used
NOP ; 1 Cycle used
NOP ; 1 Cycle used
DJNZ R0,DELAY ; 2 Cycle used

Jika XTAL menggunakan 12 Mhz. Maka T = 1/12Mhz = 0,0833 uS
MOV R0,#200 — 1 cycles = 12 X 0,0833 = 0,9996
DELAY: NOP ————— 1 cycles = 200 X 12 X 0,0833 = 199,92
NOP ————— 1 cycles = 200 X 12 X 0,0833 = 199,92
NOP ————— 1 cycles = 200 X 12 X 0,0833 = 199,92
DJNZ R0,DELAY – 2 cycles = 200 X 24 X 0,0833 = 399,84 +
1000, 5996 uS

Berarti lama tunda 1000,5996 uS = 0,0010005995 detik

0 komentar:

Posting Komentar