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
No comments:
Post a Comment