Karakteristik perintah bahasa assembler
Label
Label
bisa anda definisikan dengan ketentuan akhir dari nama label tersebut harus
berupa tanda titik dua (:). Pemberian nama label bisa digunakan:
-
Huruf : A..Z (Huruf besar dan kecil tidak dibedakan)
-
Angka : 0..9
-
Karakter khusus : @ . _ $
Nama
pada label tidak terdapat spasi dan
didahului oleh angka, Contoh dari penulisan label yang benar: mulai: MOV CX,7.
Nama label terpanjang yang dapat dikenali oleh assembler adalah 31
karakter.
Komentar
Untuk
memberikan komentar pada source file digunakan tanda ';'. Apapun yang dtuliskan
dibelakang tanda ';' akan dianggap sebagai komentar, Contoh : mulai: MOV BX,7 ;
berikan nilai 7 pada BX
Perintah MOV
Perintah
MOV digunakan untuk mengcopy nilai atau angka menuju suatu register,variabel
atau memory. Adapun syntax untuk perintah MOV ini adalah :
MOV
Tujuan,Asal
Sebagai
contohnya : MOV AL,9 ; masukkan nilai 9 pada AL.
MOV
AH,AL ; nilai AL=9 dan AH=9
MOV
AX,9 ; AX=AH+AL hingga AH=0 dan AL:=9
Pada
baris pertama(MOV AL,9), kita memberikan nilai 9 pada register AL. Kemudian
pada baris kedua(MOV AH,AL) kita mengcopykan nilai register AL untuk AH. Jadi
setelah operasi ini register AL akan tetap bernilai 9, dan register AH akan
sama nilainya dengan AL atau 9. Pada baris ketiga(MOV AX,9), kita memberikan
register AX nilai 9. Karena AX terdiri atas AH dan AL, maka register AH akan
bernilai 0, sedangkan AL akan bernilai 9.
Perintah
MOV akan mengcopykan nilai pada sumber untuk dimasukan ke Tujuan, nilai sumber
tidaklah berubah. Inilah sebabnya MOV(E) akan kita terjemahkan disini dengan
mengcopy, dan bukannya memindahkan.
Perintah
INT
Didalam
pemrograman assambler, kita akan banyak sekali menggunakan interupsi untuk
membantu kita dalam mengerjakan suatu pekerjaan. Untuk menghasilkan suatu
interupsi digunakan perintah INT dengan syntax:
INT
NoInt
Dengan
NoInt adalah nomor interupsi yang ingin dihasilkan. Sebagai contohnya bila kita
ingin menghasilkan interupsi 21h, bisa dituliskan dengan: INT 21h, maka
interupsi 21h akan segera terjadi.
Jenis operand
Instruksi mesin melakukan operasi terhadap data. Pada
umumnya data dikategorikan ke dalam angka, karakter dan data logika.
Angka
Setiap bahasa mesin mengandung tipe data numerik.
Umunya terdapat tiga tipe data angka yang ada pada komputer yaitu:
1. Binary
integer
2. Binary
floating point
3. Desimal
Semua operasi pada internal komputer berupa data biner, namun user berinteraksi
dengan bilangan desimal. Maka perlu dilakukan konversi dari desimal ke bilangan
biner pada input dan konversi dari biner ke desmimal pada output. Bilangan
desimal direpresentasikan dalam 4 bit kode biner maka 0=0000,
1=0001,...,8=1000, 9=1001. Sedangkan untuk desimal 246 = 0000 0010 0100 0110.
Untuk bilangan negatif direpresentasikan dengan 4 bit yang diletakkan pada awal
atau akhir string. Standar tanda yang digunakan adalah 1100 untuk bilangan
positif dan 1101 untuk tanda bilangan negatif.
Karakter
Umumnya bentuk data adalah teks atau kumpulan karakter.
Sedangkan sistem komputer didesain untuk data biner. Maka sejumlah kode dalam
urutan bit perlu di tentukan untuk merepresentasikan sebuah karakter. Saat ini
standar kode yang digunakan untuk merepresentasikan karakter adalah American
Standart Code for Information Interchange (ASCII). Setiap karakter pada
kode ASCII direpresentasikan dengan 7 bit biner yang unik. Maka terdapat 128
karakter yang berbeda yang dapat direpresentasikan. Selain itu juga ada yang
menggunakan Extended Binary Coded Decimal Interchange Code (EBCDIC) yang
digunakan oleh IBM mainframe.
Data logika
Pada umumnya setiap word atau yang lain merupakan
satu unit data yang masing masing unit data memiliki nilai 0 atau 1. Ketika
dipandang dengan cara ini, maka data tersebut dianggap sebagai data logika.
Data logika hanya bernilai true “1” atau false “0”.
Jenis Operasi
Jumlah opcode dari sebuah mesin ke mesin lain
beragam. Akan tetapi tipe operasi-operasi umum akan sama untuk semua
mesin. Berikut dikategorikan operasi berdasarkan fungsi dan tipenya:
Transfer data
Tipe
instruksi mesin yang paling dasar yaitu instruksi transfer data. Pada instruksi
transfer dataharus ditentukan beberapa hal. Pertama, penentuan lokasi sumber
dan tujuan dari operan.Lokasinya dapat terletak di memori, register atau stack.
Kedua, panjang data yang akan ditransfer harus diketahui. Ketiga, sama untuk
semua instruksi dengan operan, cara pengalamatannya harus ditentukan.
Dari
sisi aksi prosesor, operasi transfer data mungkin merupakan tipe yang paling
sederhana. Jika kedua-duanya baik sumber maupun tujuan adalah register,
maka prosesor hanya menyebabkan data dipindahkan dari satu register ke
register lain (operasi internal prosesor). Jika salah satu atau kedua operan
berada dalam memori, maka prosesor harus melakukan beberapa atau semua tindakan
berikut:
1.
Menghitung alamat memori, berdasarkan mode pengalamatan ( dibahas di bagian
selanjutnya)
2.
Jika alamat mengacu pada virtual memori, menerjemahkan dari alamat memori
virtual ke alamat memori sebenarnya/fisik.
3.
Menentukan apakah operan yang dituju ada di dalam chace
4.
Jika tidak, berikan perintah ke modul memori.
Aritmatika
Kebanyakan
mesin menyediakan operasi aritmatika / perhitungan dasar sepertitambah,
kurang,kali dan bagi. Dimana operasi tersebut disediakan untuk menangani
bilanganinteger bertanda (fixed-point), juga bilangan floating point atau
desimal. Berikut contoh lain operasi yang termasuk jenis instruksi dengan satu
operan:
·
Absolute : mengambil nilai
absolut/mutlak dari operan
·
Negate : menegasikan operan
·
Increment: menambahkan 1 nilai ke
operan
·
Decrement: mengurangi 1 nilai dari
operan
Eksekusi
instruksi aritmatika dapat melibatkan operasi transfer data untuk menempatkan
operan dari input ke ALU, dan untuk mengantarkan output dari ALU.
Logika
Kebanyakan
mesin juga menyediakan berbagai operasi untuk memanipulasi setiap bit dari
sebuah word atau unit (yang dapat diberi alamat) lainnya, operasi ini juga di
sebut "bit twiddling". Bit-bit tersebut didasarkan pada operasi
boolean.
Konversi
Instruksi
konversi adalah instruksi-instruksi yang mengubah format atau beroperasi pada
format data.Contohnya yaitu mengkonversi dari desimal ke biner.
Input/Output
Seperti
yang kita ketahui, ada beberapa pendekatan I/O yang bisa diambil, diantaranya
programmed I/O (isolated&memory mapped), DMA, dan penggunaan prosesor I/O.
Implementasi instruksi I/O banyak dilakukan dengan hanya menyediakan beberapa
instruksi I/O, dengan tindakan spesifik yang ditentukan oleh parameter, kode, atau
kata perintah.
Kendali Sistem
Instruksi
kendali sistem adalah instruksi yang dapat dieksekusi hanya ketika prosesor
dalam keadaan tertentu atau mengeksekusi program pada area khusus dalam
memori.Biasanya, instruksi ini dipesan untuk digunakan sistem operasi.Berikut
beberapa contoh operasi kendali sistem. Sebuah instruksi kendali sistem boleh
membaca atau mengubah
kendali register. Contoh lainnya adalah instruksi untuk membaca atau
memodifikasi penyimpanan protection key, seperti yang digunakan pada sistem
memori EAS/390. Contoh lain adalah akses untuk memproses blok kontrol dalam
sistem multiprogramming.
Kendali Transfer
Untuk
semua tipe operasi yang sudah dibahas sejauh ini, instruksi selanjutnya yang
akan dibahas tepat setelah ini, pada memori, adalah kendali transfer. Namun,
pecahan yang signifikan dari instruksi dalam setiap program memiliki fungsi
mengubah urutan eksekusi instruksi. Untuk instruksi ini, operasi yang dilakukan
oleh prosesor
Beberapa
hal yang perlu diperhatikan yaitu:
1. Dalam
praktek penggunaan komputer, sebenarnya kita mengeksekusi tiap instruksi lebih
dari sekali dan mungkin ribuan kali. Ini membutuhkan ribuan atau bahkan jutaan
instruksi untuk mengimplementasikan aplikasi. Hal ini tidak mungkin jika tiap
instruksi harus ditulis secara terpisah. Jika tabel atau daftar item akan
diproses, dibutuhkan program looping. Satu urutan eksekusi akan dieksekusi
berulang kali untuk memproses semua data.
2. Hampir
semua program melibatkan beberapa pembuatan keputusan. Kita setuju komputer
akan melakukan sesuatu jika suatu kondisi terpenuhi, dan melakukan hal lain
jika dalam kondisi lain. Sebagai contoh, sebuah urutan instruksi mengitung akar
kuadrat dari sebuh nilai. Pada awal urutan, tanda dari nilai tersebut diuji.
Jika negatif, komputasi tidah dilakukan, tetapi kondisi eror yang akan
dilaporkan.
3. Untuk
mengubah dengan benar program yang besar atu sedang adalah tugas yang sangat
sulit. Hal ini akan lebih mudah jika ada mekanisme untuk memecah tugas-tugas
tersebut menjadi bagian-bagian kecil yang dapat dikerjakan sekali dalam satu
waktu.
Bentuk
perintah/intruksi :
MOV
Perintah MOV adalah perintah untuk mengisi, memindahkan,memperbaruhi isi suatu register, variable ataupun lokasi memory, Adapun tata penulisan perintah MOV adalah :
MOV [operand A], [Operand B]
Contoh :
MOV AH,02
Operand A adalah Register AH
Operand B adalah bilangan 02
Hal yang dilakukan oleh komputer untuk perintah diatas adalahmemasukan 02 ke register AH.
Perintah MOV adalah perintah untuk mengisi, memindahkan,memperbaruhi isi suatu register, variable ataupun lokasi memory, Adapun tata penulisan perintah MOV adalah :
MOV [operand A], [Operand B]
Contoh :
MOV AH,02
Operand A adalah Register AH
Operand B adalah bilangan 02
Hal yang dilakukan oleh komputer untuk perintah diatas adalahmemasukan 02 ke register AH.
INT (Interrupt)
Bila anda pernah belajar BASIC, maka pasti anda tidak asing lagi dengan perintah GOSUB. Perintah INT juga mempunyai cara kerja yang sama dengan GOSUB, hanya saja subroutine yang dipanggil telah disediakan oleh memory komputer yang terdiri 2 jenis yaitu :
- Bios Interrupt ( interput yang disediakan oleh BIOS (INT 0 – INT 1F))
- Dos Interrupt ( Interrupt yang disediakan oleh DOS (INT 1F – keatas))
Push
Adalah perintah untuk memasukan isi register pada stack, dengan tata penulisannya:POP [operand 16 bit]
Pop
perintah yang berguna untuk mengeluarkan isi dari register/variable dari stack,dengan tata penulisannya adalah : POP [operand 16 bit]
RIP (Register IP)
Perintah ini digunakan untuk memberitahu komputer untuk memulai memproses program dari titik tertentu.
A (Assembler)
Perintah Assembler berguna untuk tempat menulis program Assembler.
-A100
0FD8:100
RCX (Register CX)
Perintah ini digunakan untuk mengetahui dan memperbaruhi isi register CX yang merupakantempat penampungan panjang program yang sedang aktif.
Bila anda pernah belajar BASIC, maka pasti anda tidak asing lagi dengan perintah GOSUB. Perintah INT juga mempunyai cara kerja yang sama dengan GOSUB, hanya saja subroutine yang dipanggil telah disediakan oleh memory komputer yang terdiri 2 jenis yaitu :
- Bios Interrupt ( interput yang disediakan oleh BIOS (INT 0 – INT 1F))
- Dos Interrupt ( Interrupt yang disediakan oleh DOS (INT 1F – keatas))
Push
Adalah perintah untuk memasukan isi register pada stack, dengan tata penulisannya:POP [operand 16 bit]
Pop
perintah yang berguna untuk mengeluarkan isi dari register/variable dari stack,dengan tata penulisannya adalah : POP [operand 16 bit]
RIP (Register IP)
Perintah ini digunakan untuk memberitahu komputer untuk memulai memproses program dari titik tertentu.
A (Assembler)
Perintah Assembler berguna untuk tempat menulis program Assembler.
-A100
0FD8:100
RCX (Register CX)
Perintah ini digunakan untuk mengetahui dan memperbaruhi isi register CX yang merupakantempat penampungan panjang program yang sedang aktif.
Tidak ada komentar:
Posting Komentar