Label
- 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
Perintah MOV
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
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.
a. 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.
b. 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.
c. 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:
a. 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.
b. 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.
c. 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. Beberapa operasi logika dasar dapat dilakukan
pada data boolean atau biner yang ditunjukkan pada tabel berikut.
Operasi-operasi logika dapat diterapkan pada bitwise ke
n-bit unit data. Dengan demikian, jika dua register berisi data
(R1) = 10100101
(R2) = 00001111
Kemudian
(R1) AND (R2) = 0000101
Selain operasi logika bitwise, kebanyakan mesin menyediakan
berbagai fungsi pergeseran dan perputaran.Operasi yang paling dasar digambarkan
pada gambar dibawah.Dengan logika pergeseran, setiap bit dari word akan di
geser ke kiri atau ke kanan. Pada salah satu ujungnya, bit yang bergeser keluar
akan hilang. Pada ujung lainnya, nilai ‘0’ digeser masuk.Pergeseran logis
berguna terutama untuk mengisolasi bagian dalam sebuah word.Nilai ‘0’ yang
digeser kedalam sebuah word menggantikan informasi yang tidak diinginkan yang
digeser dari ujung lainnya.
Operasi pergeseran aritmatika menangani data sebagai integer
bertanda dan tidak menggeser bit tanda. Pada pergeseran aritmatika ke kanan,
bit tanda disalin pada bit yang berada dikanannya. Pada pergeseran aritmatika
ke kiri, pergeseran logika kiri dilakukan pada semua bit kecuali bit tanda
tetap ditahan. Operasi ini dapat mempercepat operasi aritmatikaa tertentu.
Rotate, atau pergeseran memutar, operasi ini menjaga seluruh
bit dioperasikan. Salah satu penggunaan dari rotasi yaitu membawa setiap bit
berturut-turut ke bit paling kiri, dimana itu dapat diidentifikasi dengan
menguji tanda dari data (diperlakukan sebagai angka). Sama dengan operasi
aritmatikaa, operasi logika melibatkan aktifitas ALU dan mungkin melibatkan
operasi transfer data.
d.Konversi
Instruksi konversi adalah instruksi-instruksi yang mengubah
format atau beroperasi pada format data.Contohnya yaitu mengkonversi dari
desimal ke biner.
e.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.
f.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.
g.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
a. 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.
b. 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))
c. Push
Adalah perintah untuk memasukan isi register pada stack,
dengan tata penulisannya:POP [operand 16 bit]
d. Pop
perintah yang berguna untuk mengeluarkan isi dari
register/variable dari stack,dengan tata penulisannya adalah : POP [operand 16
bit]
e. RIP (Register IP)
Perintah ini digunakan untuk memberitahu komputer untuk
memulai memproses program dari titik tertentu.
f. A (Assembler)
Perintah Assembler berguna untuk tempat menulis program
Assembler.
-A100
0FD8:100
g.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