Pengertian Bahasa Assembly
Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin dan bahasa level tinggi misalnya bahasa C, C++, Pascal, Turbo Basic, Java, dan sebagainya. Bahasa C atau Pascal dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya. Assembler adalah program yang bekerja membantu penulisan instruksi dalam format bahasa inggris sehingga mudah dibaca dan dipahami.
MOV R0, #02h
MOV A, #03h
ADD A, R0
Perintah baris pertama bekerja menjalankan proses pengisian register R0 dengan data 02h. Perintah baris kedua bekerja menjalankan proses pengisian register A dengan data 03h. Kemudian proses penjumlahan data pada register A dengan data pada register R0 dijalankan menggunakan perintah ADD A,R0 dan menghasilkan data 05h tersimpan di register A.
Perintah MOV dan ADD adalah memonik atau singkatan dari perintah MOVE dan ADD.
Memonik dari perintah lainnya dapat dirangkum dalam tabel 8 berikut.
Tabel 8 Memonik
Perintah Assembly AT89S51
No
|
PERINTAH
|
MNEMONIK
|
1.
|
ADD
|
ADD
|
2.
|
ADD WITH CARRY
|
ADC
|
3.
|
SUB WITH BORROW
|
SBB
|
4.
|
INCREMENT
|
INC
|
5.
|
DECREMENT
|
DEC
|
6.
|
MULTIPLY
|
MUL
|
7.
|
DEVIDE
|
DIV
|
8.
|
AND LOGIC
|
ANL
|
9.
|
OR LOGIC
|
ORL
|
10.
|
EXLUSIVE OR
LOGIK
|
XRL
|
11.
|
DECIMAL ADJUST
ACCUMULATOR
|
DAA
|
12.
|
CLEAR
ACCUMULATOR
|
CLR A
|
13.
|
COMPLEMENT
ACCUMULATOR
|
CPL A
|
14.
|
ROTATE
ACCUMULATOR LEFT
|
RLA
|
15.
|
ROTATE
ACCUMULATOR LEFT THROUGH CARRY
|
RLCA
|
16.
|
ROTATE
ACCUMULATOR RIGHT
|
RRA
|
17.
|
ROTATE
ACCUMULATOR RIGHT THROUGH CARRY
|
RRCA
|
18.
|
SWAPP NIBBLE
WITHIN ACCUMULATOR
|
SWAP
|
19.
|
PUSH DIRECT
BYTE KE STACK
|
PUSH
|
20.
|
POP DIRECT BYTE
DARI STACK
|
POP
|
21.
|
JUMP IF CARRY SET C=1
|
JC
|
22.
|
JUMP IF CARRY
NOT SET C = 0
|
JNC
|
23.
|
JUMP IF DIRECT
BIT SET
|
JB
|
24.
|
JUMP IF DIRECT
BIT NOT SET
|
JNB
|
25.
|
JUMP IF DIRECT
BIT SET & CLEAR BIT
|
JBC
|
26.
|
ABSOLUTE CALL
|
ACALL
|
27.
|
LONG CALL
|
LCALL
|
28.
|
RETURN
|
RET
|
29.
|
RETURN FROM
INTERRUPT
|
RETI
|
30.
|
ABSOLUTE JUMP
|
AJMP
|
31.
|
LONG JUMP
|
LJMP
|
32.
|
SHORT JUMP
|
SJMP
|
33.
|
JUMP INDIRECT
|
JMP
|
34.
|
JUMP IF
ACCUMULATOR ZERRO
|
JZ
|
35.
|
JUMP IF
ACCUMULATOT NOT ZERRO
|
JNZ
|
36.
|
COMPARE AND
JUMP IF NOT EQUAL
|
CJNE
|
37.
|
DECREAMENT AND
JUMP IF NOT ZERO
|
DJNZ
|
38.
|
NO OPERATION
|
NOP
|
Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Di dalam mikrokontroler instruksi disimpan dalam kode heksa sehingga sulit dibaca dan dipahami maknanya. Sedangkan bahasa assembly memakai kode mnemonik untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan dalam penulisan program.
No
|
OPERATION CODE
|
ASSEMBLY
|
1.
|
78 02
|
MOV R0, #02h
|
2.
|
74 03
|
MOV A, #03h
|
3.
|
28
|
ADD A, R0
|
Kode bahasa mesin atau sering disebut dengan operation code dari perintah MOV R0,#02h adalah 78 02. Untuk MOV A,#03h kode operasinya dalah 74 03 dan 28 adalah kode operasi dari perintah ADD A, R0. Kode operasi untuk setiap perintah dapat dibaca pada lembar instruction set.
Program yang ditulis dengan bahasa assembly terdiri dari label; kode mnemonik, operand 1, operand 2, keterangan, dan lain sebagainya. Program ini disebut sebagai program sumber (Source Code). Source code belum bisa diterapkan langsung pada prosesor untuk dijalankan sebagai program. Source code harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner atau operasi.
Source code ditulis dengan program editor biasa, misalnya Note Pad pada Windows atau SideKick pada DOS, TV demo, lalu source code diterjemahkan ke bahasa mesin dengan menggunakan program Assembler. Proses menterjemahkan source code menjadi bahasa mesin disebut dengan proses assembled. Hasil kerja program Assembler adalah “program objek” dan juga “assemly listing”.
Program Objek berisikan kode kode operasi bahasa mesin. Biasanya file program objek menguanakan ekstensi .HEX. Kode-kode operasi bahasa mesin inilah yang dituliskan ke memoriprogram prosesor. Dalam dunia mikrokontroler biasanya program objek ini diisikan ke UV EPROMatau EEPROM dan khusus untuk mikrokontroler buatan Atmel, program ini diisikan ke dalam Flash PEROM yang ada di dalam chip mikrokontroler AT89S51 atau AT89C2051.
Assembly Listing merupakan naskah yang berasal dari program sumber, dalam naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan hasil terjemahan program Assembler. Tambahan tersebut berupa nomor memori-program berikut dengan kode yang akan diisikan pada memori-program bersangkutan. Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program yang ditulis. Gambar 22 menunjukkan model editor program assembly dan bagan kerja proses assembly.
Leave a Comment