elemen dasar assembly
simbol intruksi tunggal adalah simbolik intruksi mesin tunggal,dalam bentuk sederhana yang terdiri dari satu mnemonic , kode alphabet yang membantu secara singkat / membantu memori dalam mengingat intruksi CPU,berikut contoh operand :
clc : hanya sebuah mnemonic
inc ax : operand tunggal
mov ax , bx : dua operand
operand berupa variable , register , lokasi memori, nilai immediate.
contohnya :
10 ( nilai immediate)
count (variable)
AX (register)
[0200] (lokasi memori)
contoh program pada assembly, operand langsung adalah konstanta 5 dan 10. berikut ini contoh program untuk menjumlah 3 bilangan dan menyimpan dalam variable yang diasumsikan sum dalam heksadesimal.
mov ax, 5 ; memindahkan 5 kedalam register ax
add ax, 10 ; menambahkan nilai 10h terhadap register ax
add ax, 20 ; menambahkan nilai 20h terhadap register ax
mov sum,ax ; menyimpan ax dalam variable sum
int 20 ; akhir program
intruksi MOV memerintahkan CPU untuk memindahkan atau menyalin data, dari operand sumber operand. Baris 1 memindahkan 5 kedalam register ax, baris 2 memindahkan 10heksa kedalam ax membuat sama dengan 15,baris 3 menambahkan 20 ke ax membuatnya sama dengan 35, dan baris 4menyalin ax kedalam variable dalam memori yang disebut SUM dan baris terakhir digunakan untuk menghentikan program.
perintah DEBUG untuk menyusun dan menguji program adalah :
A100; assembly dimulai pada 100h
Mov ax 5; perintah program pertama
Add ax 10
Add ax 20
Mov [0120]; ax hasil jumlah pada lokasi 0120h
int 20; akhir program (tekan enter untuk mengakhiri assembly)
R; menampilkan register
T; Trace satu intruksi
T
T
G; eksekuensi sisa program
Q; keluar dari DEBUG dan kembali ke DOS
setelah intruksi kedua akan diperoleh tampilan hasil sebagai berikut
Mov ax,5 ax: 5
Add ax,10 ax: 10
Add ax,20 ax: 20
Mov sum,ax ax: 35 sum: 35
AX = 0015 BX=0000 CX=0000 DX=0000 SP=FFEE
BP =0000 SI=0000 DI=0000 DS=23AD ES=23AD
SS= 23AD CS=23AD IP=0106 NV UP EI PL NZ NA PO NC
23AD:0106 052000 ADD AX,0020
Register AX merupakan hasil penjumlahan 5 dan 10 sehingga AX= 15. Register IP menyimpan alamat intruksi berikutnya yang akan dieksekusi 0106 intruksi berikutnya akan di eksekusi ADD AX,0020.
konstanta mungkin nomor atau karakter string,dia tidak dapat diubah saat program dijalankan
kumpulan karakter dalam assembly
Letter : A-Z, a-z
digit : 0-9
VARIABLE adalah lokasi memori yang dapat berubah saat program dijalankan.
ABC
2134
5*6
(1+2)/3
INTEGER dibagun oleh digit-digit angka tanpa decimal diikuti oleh karakter radix (d=decimal, h=hexa, q=okal, b=biner)
Contoh
|
Radix
|
11110000b
200
300d
4A6Bh
2047q
2047o
|
Biner
Decimal
Decimal
Heksadesimal
Octal
oktal
|
Bilangan Rill. angka rill mengandung digit, titik desimal tunggal
[{+/-}]digit.digit[E{+/-}]digit
contoh :
2.3
+200.576E+05
0.243526E-05
6.08e3
Notasi sintak
kata kunci yang diperlukan ditulis dalam huruf capital. kata dengan huruf kecil miring adalah istilah-istilah yang didefinifikasikan sebelumnya seperti identifier, operand ,dan register . karekter ASCII tunggal atau string karakter yang ditutup oleh quotasi tunggal atau ganda
contoh :
"a"
'B'
"stack overflow"
'012#?%&'