Mata
Pelajaran : Teknik Pemrograman, Mikroprosesor dan Mikrokontroller
Bahasa Assembly
Bahasa Assembly adalah bahasa
pemrograman yang terdiri dari instruksi-instruksi yang menggantikan kode-kode
biner dari bahasa mesin dengan mnemonic sehingga mudah diingat, biasa disebut
kode sumber. Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi
yang bisa dijalankan oleh computer, biasa disebut kode objek.
Misalkan suatu instruksi
penjumlahan akan dituliskan dalam bahasa mesin yang berupa kode-kode biner
10110011, dapat dibuat dalam bahasa assembly dengan kode mnemonic ADD sehingga
mudah diingat dibandingkan dengan penulisan dalam bentuk kode 0 dan 1.
Dalam setiap instruksi
membutuhkan suatu operand baik berupa data langsung maupun tidak langsung atau
berupa alamat suatu lokasi memori tempat menyimpan data bersangkutan.
Baris-baris program yang mengandung instruksi mesin atau pengarah assembler
harus mengikuti aturan program assembler ASM51.
Beberapa contoh dan kegunaannya
bahasa assembly directive (kode pengarah bagi assembler compiler)
EQU : pendefinisian konstanta
DBIT : pendefinisian data dengan ukuran 1 bit
ORG : inisialisasi alamat mulai program
DATA : pendefinisian internal direct data (data
langsung)
IDATA : pendefinisian internal indirect data (data tidak
langsung)
END : penanda akhir program
CODE : penanda mulai pendefinisian program
#INCLUDE : mengikutsertakan file program line
Beberapa contoh dan kegunaan
instruksi yang harus di eksekusi oleh CPU mikrokontroller
ACALL : Absolute Call, memanggil sub rutin program
AJMP : Absolute Jump, memindahkan kendali program ke
lokasi tertentu
CJNE :
Compare and Jump if Not Equal, membandingkan data langsung dengan dengan lokasi
memori tertentu
CLR : Clear, mereset data akumulator
DEC : Decrement, mengurangi isi lokasi memori yang
di tuju
DJNZ :
Decrement and Jump if Not Zero, mengurangi isi register dengan 1 hingga hasilnya
0 maka instruksi selanjutnya akan dilaksanakan
INC : Increment, menambahkan isi memori dengan 1
MOV : Move from memory, memindahkan isi
akumulator/register atau data
RET :
Return from subroutine, kembali dari suatu subrutin program ke alamat terakhir
subrutin tersebut dipanggil
RR : Rotate Right, memutar akumulator ke kanan
(right)
Contoh program bahasa assembly:
$mod51
org 0H
ljmp loop
delay:
mov R7,#10
l1: mov R6,#85
l2: mov R5,#85
l3: djnz R5,l3
djnz R6,l2
djnz R7,l1
ret
GerakKiri:
mov
a,#0FEH
geki: mov P2,a
rl
a
acall
delay
cjne
a,#7FH,geki
ret
GerakKanan:
mov
a,#7FH
geka: mov P2,a
rr
a
acall
delay
cjne
A,#0FEH,geka
ret
loop: acall Gerakkiri
acall GerakKanan
sjmp loop
end
Tidak ada komentar:
Posting Komentar