" /> Sistem Pengalamatan Bahasa Assembler | TN Mikro
Home > Sistem Kontrol > Merancang Rangkaian Kontrol > Sistem Pengalamatan Bahasa Assembler

Sistem Pengalamatan Bahasa Assembler

Pengalamatan Langsung
Immediate data
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan data yang akan dip roses. Biasanya operand tersebut selalu diawali dengan tanda „‟#” seperti pada contoh di bawah ini:
Mov A,#05H
Mov A,#Data ; pada bagian di atas data telah didefinisikan sebagai bilangan ; tertentu (data EQU 05) contohnya bilangan 5.

Pengalamatan Langsung Data (direct)
Proses pengalamat ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses.
Mov P0,A
Port 0 adalah salah satu I/O dari AT89C51 yang mempunyai alamat 80H. Perintah pada contoh di atas dapat di tulis juga:
Mov 80H,A

Pengalamatan Tak Langsung
Proses pengalamat ini terjadi pada sebuah perintah ketika salah satu operand merupakan register berisikan alamat dari data yang akan diisi dan dipindahkan. Pengalamatan jenis ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang urutan beraturan. Jika proses ini dilakukan dengan menggunakan pengalamatan langsung , jumlah baris program yang akan diperlukan akan cukup panjang seperti contoh di bawah ini:
Mov 50H, #08H
Mov 51H, #08H
Mov 52H, #08H
Mov 53H, #08H
Mov 54H, #08H
Mov 55H, #08H
Mov 56H, #08H
Mov 58H, #08H

Dengan digunakan system pengalamatan tak langsung, dapat diubah menjadi:

Mov R0,#50H

Loop:

Mov @R0,#08H

Inc R0

Cjne R0,#58H,loop

Dalam listing ini, R0 digunakan sebagai register yang menyimpan alamat dari data yang akan dituliskan. Dengan melakukan penambahan pada isi R0 dan mengulang perintah penulisan data ke alamat yang ditunjukan R0 hingga register ini menunjukan nilai 57H+1, atau 58H. AT89S51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit (R0 dan R1) yang dapat digunakan untuk melakukan penngalamatan tidak langsung.
Contoh-contoh perintah menggunakan system pengalamatan tak langsung:
Mov @R0,A ;R0 digunakan sebagai register penyimpan alamat
Mov A,@R1 ;R1 digunakan sebagai register penyimpan alamat
Add A,@R0 ;R0 digunakan sebagai register penyimpan alamat
Mov @DPTR,A ;DPTR digunakan sebagai register penyimpan alamat
Mov A,@A+DPTR ;DPTR digunakan sebagai register penyimpan alamat

Pengalamatan Kode
Pengalamatan kode merupakan pengalamatan ketika operand merupakan alamat dari instruksi jump dan call (ACALL,JMP,LJMP dan LCALL). Biasanya operand tersebut akan menunjukkan ke suatu alamat yang telah di beri label sebelumnya.

Pengalamatan Bit
Proses pengalamatan ketika operand menunjukkan ke alamat RAM internal ataupun Register fungsi khusus yang mempunyai kemampuan pengalamatan secara bit (bit addressable).
Berdasarkan penulisannya, pengalamatan ini terdiri dari:
 Langsung menunjuk ke alamat bit
Setb 0B0H
Perintah ini memberikan logika 1 pada bit di alamat B0H dengan pengalamat secara bit.
 Menggunakan operator titik
 Menggunakan lambang assembler secara standard
 Menggunakan lambang assembler secara bebas
Pengalamatan bit ialah penunjukkan menggunakan simbol titik (.)yang menunjuk alamat lokasi bit, baik dalm RAM internal atau perangkat keras.