PENGERTIAN BAHASA
ASSEMBLY
Bahasa pemrograman generasi kedua adalah bahasa assembly.
Bahasa rakitan (bahasa Inggris: assembly language) adalah bahasa pemrograman
komputer tingkat rendah. Bahasa assembly merupakan notasi untuk bahasa mesin
yang dapat dibaca oleh manusia dan berbeda-beda tergantung dari arsitektur
komputer yang digunakan.
Berbeda dengan bahasa pemrograman tingkat
tinggi, bahasa assembly atau rakitan biasanya memiliki hubungan 1-1 dengan
instruksi bahasa mesin. Misalnya, tiap julukan (mnemonic) yang ditulis di
program dengan bahasa rakitan akan diterjemahkan menjadi tepat satu kode
operasi yang dapat dimengerti langsung oleh komputer. Pada bahasa tingkat
tinggi, satu perintah dapat diterjemahkan menjadi beberapa kode operasi dalam
bahasa mesin. Proses pengubahan bahasa rakitan ke bahasa mesin dilakukan oleh
assembler, dan proses balikannya dilakukan oleh disassembler.
Setiap arsitektur komputer memiliki bahasa mesin
yang berbeda-beda sehingga bahasa rakitannya pun berbeda-beda.(dna)
Pemrograman AT89S51 bahasa Assembly
Bahasa Assembly adalah bahasa pemrograman
tingkat rendah. Dalam pemrograman komputer dikenal dua jenis tingkatan bahasa,
jenis yang pertama adalah bahasa pemrograman tingkat tinggi (high level
language) dan jenis yang kedua adalah bahasa pemrograman tingkat rendah (low
level language).
Bahasa pemrograman tingkat tinggi lebih
berorientasi kepada manusia yaitu bagaimana agar pernyataan-pernyataan yang ada
dalam program mudah ditulis dan dimengerti oleh manusia. Sedangkan bahasa
tingkat rendah lebih berorientasi ke mesin, yaitu bagaimana agar komputer dapat
langsung mengintepretasikan pernyataan-pernyataan program.
Kelebihan Bahasa Assembly:
1. Ketika di-compile lebih kecil ukuran
2. Lebih efisien/hemat memori
3. Lebih cepat dieksekusi
Kesulitan Bahasa Assembly:
1. Dalam melakukan suatu pekerjaan, baris
program relatif lebih panjang dibanding bahasa tingkat tinggi
2. Relatif lebih sulit untuk dipahami terutama
jika jumlah baris sudah terlalu banyak
3. Lebih sulit dalam melakukan pekerjaan rumit,
misalnya operasi matematis
BAHASA ASSEMBLY MCS-51
Dalam program bahasa assembly terdapat 2 jenis
yang kita tulis dalam program yaitu:
1. Assembly Directive (yaitu merupakan kode yang
menjadi arahan bagi assembler/compiler untuk menata program)
2. Instruksi (yaitu kode yang harus dieksekusi
oleh CPU mikrokontroler)
Klik disini untuk melihat daftar Assembly
Directive dan Instruksi MCS-51.
PENGGUNAAN SOFTWARE
Software untuk membantu memprogram
mikrokontroler MCS-51 sudah banyak tersedia. Untuk mempermudah maka dapat
dipilih software yang merupakan Integrated Development Environment (IDE) yaitu
software yang merupakan editor sekaligus compiler. Bahkan juga ada yang
sekaligus debugger dan simulator. Salah satunya yang digunakan pada training di
PRASIMAX adalah Read51.
Daftar Assembly Directive
Assembly Directive Keterangan
EQU Pendefinisian konstanta
DB Pendefinisian data dengan ukuran satuan 1
byte
DW Pendefinisian data dengan ukuran satuan 1
word
DBIT Pendefinisian data dengan ukuran satuan 1
bit
DS Pemesanan tempat penyimpanan data di RAM
ORG Inisialisasi alamat mulai program
END Penanda akhir program
CSEG Penanda penempatan di code segment
XSEG Penanda penempatan di external data segment
DSEG Penanda penempatan di internal direct data
segment
ISEG Penanda penempatan di internal indirect
data segment
BSEG Penanda penempatan di bit data segment
CODE Penanda mulai pendefinisian program
XDATA Pendefinisian external data
DATA Pendefinisian internal direct data
IDATA Pendefinisian internal indirect data
BIT Pendefinisian data bit
#INCLUDE Mengikutsertakan file program lain
Daftar Instruksi
Instruksi Keterangan Singkatan
ACALL Absolute Call
ADD Add
ADDC Add with Carry
AJMP Absolute Jump
ANL AND Logic
CJNE Compare and Jump if Not Equal
CLR Clear
CPL Complement
DA Decimal Adjust
DEC Decrement
DIV Divide
DJNZ Decrement and Jump if Not Zero
INC Increment
JB Jump if Bit Set
JBC Jump if Bit Set and Clear Bit
JC Jump if Carry Set
JMP Jump to Address
JNB Jump if Not Bit Set
JNC Jump if Carry Not Set
JNZ Jump if Accumulator Not Zero
JZ Jump if Accumulator Zero
LCALL Long Call
LJMP Long Jump
MOV Move from Memory
MOVC Move from Code Memory
MOVX Move from Extended Memory
MUL Multiply
NOP No Operation
ORL OR Logic
POP Pop Value From Stack
PUSH Push Value Onto Stack
RET Return From Subroutine
RETI Return From Interrupt
RL Rotate Left
RLC Rotate Left through Carry
RR Rotate Right
RRC Rotate Right through Carry
SETB Set Bit
SJMP Short Jump
SUBB Subtract With Borrow
SWAP Swap Nibbles
XCH Exchange Bytes
XCHD Exchange Digits
XRL Exclusive OR Logic
0 komentar:
Posting Komentar