BAB II TINJAUAN PUSTAKA 2.1 Bahasa Assembly Menurut Jogiyanto Hartono, MBA, Ph.D. “Pengenalan Komputer” (2000:600), Sebuah mikrokontroler tidak akan bekerja tanpa adanya program yang diberikan kepadanya. Program tersebut memberitahukan mikrokontroler apa yang harus dikerjakannya. Bahasa assembly adalah bahasa komputer yang kedudukannya ada diantara bahasa mesin dan bahasa tingkat tinggi misalnya bahasa C atau bahasa pascal. Dikatakan sebagai bahasa level tinggi karena masukannya berupa kata-kata dan pernyataan yang mudah dimengerti oleh manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Sedangkan bahasa assembly merupakan program yang menterjemahkan program aplikasi menjadi bahasa mesin. Bahasa assembly memakai kode mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan penulisan program pada mikrokontroler. Menurut Jasson Perstiliano dalam bukunya “Strategi Bahasa Assembler” (2005:3), Bahasa Assembler terdiri dari struktur bahasa assembler, perangkat instruksi, simbol khusus dan pengalamatan data. 2.1.1 Struktur Bahasa Assembly Struktur dasar program assembly menganut satu baris untuk satu perintah. [label:] Mnemonic [Operand][,Operand][;Komentar] Label Digunakan untuk mewakili nomor memori program dari instruksi pada baris yang bersangkutan. Apabila ada perintah JUMP (loncat) ke suatu label maka assembler akan mengingat nomor memori program yang dimaksud dan menjalankan instruksi-instruksi yang terdapat dalam label tersebut. Mnemonic Merupakan singkatan perintah yang mudah diingat. Bagian ini adalah bagian yang menginstruksikan suatu program untuk bekerja sesuai perintah yang diterimanya. 4
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
BAB II TINJAUAN PUSTAKA
2.1 Bahasa Assembly
Menurut Jogiyanto Hartono, MBA, Ph.D. “Pengenalan Komputer”
(2000:600), Sebuah mikrokontroler tidak akan bekerja tanpa adanya program
yang diberikan kepadanya. Program tersebut memberitahukan mikrokontroler apa
yang harus dikerjakannya. Bahasa assembly adalah bahasa komputer yang
kedudukannya ada diantara bahasa mesin dan bahasa tingkat tinggi misalnya
bahasa C atau bahasa pascal. Dikatakan sebagai bahasa level tinggi karena
masukannya berupa kata-kata dan pernyataan yang mudah dimengerti oleh
manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya
Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang
bisa dijalankan oleh komputer. Sedangkan bahasa assembly merupakan program
yang menterjemahkan program aplikasi menjadi bahasa mesin. Bahasa assembly
memakai kode mnemonic untuk menggantikan kode biner, agar lebih mudah
diingat sehingga lebih memudahkan penulisan program pada mikrokontroler.
Menurut Jasson Perstiliano dalam bukunya “Strategi Bahasa Assembler” (2005:3),
Bahasa Assembler terdiri dari struktur bahasa assembler, perangkat instruksi,
simbol khusus dan pengalamatan data.
2.1.1 Struktur Bahasa Assembly
Struktur dasar program assembly menganut satu baris untuk satu perintah.
[label:] Mnemonic [Operand][,Operand][;Komentar]
Label
Digunakan untuk mewakili nomor memori program dari instruksi pada
baris yang bersangkutan. Apabila ada perintah JUMP (loncat) ke suatu label maka
assembler akan mengingat nomor memori program yang dimaksud dan
menjalankan instruksi-instruksi yang terdapat dalam label tersebut.
Mnemonic
Merupakan singkatan perintah yang mudah diingat. Bagian ini adalah
bagian yang menginstruksikan suatu program untuk bekerja sesuai perintah yang
diterimanya.
4
5
Ada dua macam mnemonic, yaitu mnemonic yang dipakai sebagai instruksi
pengendali proses, misalnya MOV, ADD, JMP dan lain sebagainya. Dan
mnemonic yang dipakai untuk mengatur kerja program assembly atau dikenal
sebagai Directive assembler, contoh dari Directive assembler antara lain, ORG,
DB, DW, EQU.
Operand
Adalah bagian yang merupakan objek dari sebuah instruksi atau bagian
yang harus dieksekusi oleh program assembly sesuai perintah dari bagian
mnemonic.
Komentar
Bagian ini tidak berpengaruh pada jalannya proses dan kerja program.
Bagian ini hanya dimaksudkan untuk mempermudah seseorang mengerti maksud
dari program tersebut.
2.1.2 Register
Untuk mempelajari bahasa assembler, harus menghafalkan semua register
dan mengerti apa kegunaannya, karena akan selalu berhubungan dengan register –
register tersebut. Register adalah sebagian kecil memory komputer yang dipakai
untuk tempat penampungan data dengan ketentuan bahwa data yang terdapat
dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar
kemampuan menampung register tersebut. Secara umum register dibagi dalam
lima golongan :
1. General Purpose Register
Register AX, Register AX merupakan register aritmatika karena register ini
selalu dipakai dalam operasi pertambahan,pengurangan,perkalian dan
pembagian
Register BX, Register BX merupakan salah satu dari dua register base
addressing mode, yang dapat mengambil atau menulis langsung dari/ke
memori.
Register CX, Register CX merupakan suatu counter untuk meletakan
jumlah lompatan pada loop-loop yang anda lakukan.
6
Register DX
Register ini digunakan untuk menampung sisa hasil pembagian 16 bit.
2. Segment Register
Terdiri dari 20 jalur alamat external tetapi memiliki 16 bit alamat internal.
Register yang berukuran 16 bit ini berfungsi untuk mencatat alamat sebagai
penunjuk lokasi data di memori.
Register CS : Code Segment Register
Menunjukan tempat atau segment yang sedang aktif.
Register DS : Data Segment Register
Menunjukan alamat atau segment di mana data-data program di simpan.
Register SS : Stack Segment Register
Menunjukan letak dari segment yang digunakan oleh stack.
Register ES : Extra Segment Register
Register tambahan yang berguna untuk menunjukan suatu alamat di
memori, misalnya alamat memori video.
3. Pointer Register
Register ini secara umum digunakan sebagai penunjuk (pointer) terhadap suatu
lokasi di memori dan berukuran 16 bit.
IP : Instruction Pointer Register
SP : Stack Pointer Register
BP: Base Pointer Register
4. Index Register
SI : Source Index Register
DI : Destination Index Register
5. Flag Register
Register yang berukuran 1 bit ini menunjukkan kondisi dari suatu keadaan
(ya/tidak atau 1/0). Kondisi-kondisi yang dicatat oleh flag register pada
mikroprosessor adalah sebagai berikut :
7
Auxiliary, untuk menyesuaikan nilai AL pada penjumlahan atau
pengurangan suatu Binary Code Decimal apakah terjadi Carry atau
Borrow.
Carry, benilai 1 bila terjadi Carry pada operasi penjumlahan atau terjadi
Borrow pada operasi pengurangan.
Interrupt, bila bit ini bernilai 0 maka CPU akan mengabaikan Interrupt
yang terjadi.
Overflow, bernilai 1 apabila terjadi overflow pada operasi aritmatika.
2.1.3 Perintah Debug
1. Q (Quit)
Bila anda mengetikan huruf Q dan menekan enter, maka akan segera
kembali ke dos prompt.
2. R (Register)
Perintah R digunakan untuk mengetahui isi masing-masing register pada
saat mengetik R dan menekan enter.
3. A (Assembler)
Perintah Assembler berguna untuk tempat menulis program Assembler.
Contoh : -A100
0FD8:100
4. N (Name)
Perintah ini digunakan untuk memberi nama suatu program assembler.
5. RCX (Register CX)
Perintah ini digunakan untuk mengetahui dan memperbaruhi isi register
CX yang merupakan tempat penampungan panjang program yang sedang
aktif.
6. RIP (Register IP)
Perintah ini digunakan untuk memberitahu komputer untuk memulai
memproses program dari titik tertentu.
7. W (Write)
Perintah ini digunakan untuk menulis/ menyimpan program.
8. G (Go)
Perintah ini digunakan untuk menjalankan suatu program.
8
9. Komentar
Bagian komentar tidak mutlak ada dalam sebuah program, namun bagian
ini sering kali dibutuhkan untuk menjelaskan proses-proses kerja ataupun
catatan-catatan tertentu pada bagian-bagian program. Bahkan pembuat
program sekalipun seringkali membutuhkannya untuk mengingat kembali
jalannya program rancangannya. Penggunaan komentar biasanya diawali
dengan tanda “ ; ” dan dapat diletakkan pada bagian manapun dari suatu
program. Sebuah komentar tidak hanya digunakan untuk menjelaskan satu
baris perintah saja, namun dapat juga digunakan untuk menjelaskan
kinerja dari beberapa baris perintah atau memberikan catatan-catatan
tertentu.
2.1.4 Perintah-Perintah Dasar Assembly
1. MOV, perintah MOV adalah perintah untuk mengisi, memindahkan,
memperbarui isi suatu register, variable ataupun lokasi memori.