Sunday, June 17, 2012

Model Pengalamatan pada Bahasa Assembly


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

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