Pengalamatan Langung
Pengalamatan langsung dilakukan dengan memberikan nilai ke suatu register secara langsung, Untuk melaksanakan hal tesersebut digunakan tanda #. Operand yang digunakan pada pengalamatan langsung /immediate data dapat berupa bilangan bertanda mulai 256 hingga +256.
Contoh :
MOV A,#25H ;Isi akumulator dengan bilangan 25H
MOV DPTR, #20H :isi register DPTR dengan bilangan 20H
MOV R1,10H : ; isi register R1 dengan 10H
MOV A,#-1 ; sama dengan MOV A,#0FFH
; karena 00H 1 menjadi FFH
Pengalamatan Tak Langung
Pada pengalamatan ini, operand menunjuk ke sebuah register yang berisi lokasi alamat memori yang akan digunakan dalam operasi. Untuk melaksanakan pengalamatan tak langsung digunakan symbol @. Pengalamatan jenis ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori. AT89C51 mempunyai sebuah register 16 bit (DPTR) yang dapat digunakan untuk melakukan pengalamatan tidak langsung.
Contoh :
ADD, A,R1 ;Tambahkan isi RAM yang lokasinya ditunjukkan oleh register R1
; ke akumulator
DEC @R1 ;Kurangi satu isi RAM yang alamatnya ditunjukkan oleh R1
MOVX, ADPTR, A :Pindahkan isi dari akumulator ke memori luar yang
; lokasinya ditunjukkan oleh data pointer (DPTR)
Pengalamatan Data
Pengalamatan data terjadi pada sebuah perintah ketika nilai operasi merupakan alamat dari data yang akan diisi atau yang akan dipindahkan.
Contoh :
MOV P1,A ;isi P1 dari Akumulator
MOV P2,FFH ;isi P2 dengan nilai FFH
Pengalamatan Kode
Pengalamatan kode terjadi ketika operand merupakan alamat dari instruksi JUMP dan CALL. Berikut contoh ACALL yang memanggil label Tunda, sehingga akan melompat ke lokasi memori bernama Tunda.
Contoh :
ACALL Tunda
TUNDA:
MOV A,#FEH
LOOP:
DJNZ A, LOOP
RET
Pengalamatan Bit
Pengalamatan bit ialah penunjukkan alamat lokasi bit baik dalam RAM internal atau perangkat keras menggunakan symbol titik (.).
Contoh :
SETB P1.7 ; Set bit port 1.7 aktif
SETB TR1 : Set TR1 (Timer 1 aktif)
SETB RXD ; memberikan logika 1 pada kaki RXD yang berada di port 3.0
Operator
Operator digunakan untuk melakukan aksi aritmatika, logika pergeseran bit dan lain-lainnya pada operand .Beberapa operator yang tersedia diantaranya :
Operator Aritmatika
* untuk perkalian
/ untuk pembagian
+ untuk penambahan
- untuk pengurangan
Contoh : MOV A, #25H+3H ; sama dengan MOV A,#28H
Operator Logika
OR untuk poerasi OR
AND untuk operasi AND
XOR untuk operasi XOR
EXOR untuk operasi EXOR
NOT untuk operasi invert
Contoh :
MOV A, #20H OR 40H ;sama dengan MOV A,#60H
MOV A,#10H AND 31H ;sama dengan MOV A, 10H
Operasi Khusus
SHR 16 bit geser ke kanan
SHL 16 bit geser ke kiri
HIGH pilih bagian tas bit
LOW pilih bagian bawah bit
EQ = sama dengan
NET <> tidak sama dengan
Lt < lebih kecil
LE <= lebih kecil atau sama dengan
GT > lebih besar
GE >= lebih besar atau sama dengan
Dimana perlu anda perhatikan prioritas dari operator sebagai berikut :
()
HIGH , LOW
Z*/, MOD, SHL , SHR
+, -
EQ, NE, LT, LE, GT, GE,=,<>,<,<=,>,>=
NOT
AND
OR, XOR
Pengarah Pilihan Segmen (Segment Selection Directives)
Ada 5 buah pengarah pilihan segmen yaitu CSEG, BSEG , DSEG ISEG dan XSEG yang menunjukkan salah satu dari 5 buah area memori . Penjelasan dari masing-masing segmen sebagai berikut :
CSEG : untuk memilih lokasi memori program
BSEG : untuk meilih lokasi memori yang dapat dialamati
secara pengalamatan bit
DSEG untuk memilih lokasi memori RAM Internal
ISEG untuk memilih lokasi memori RAM Internal yang
dialamati secara tak langsung
XSEG untuk memilih lokasi memori eksternal.sumber : http://www.toko-elektronika.com/tutorial/uc1.html
Tidak ada komentar:
Posting Komentar