Silahkan Pilih Warna Latar Blog ini Sesuai Dengan kenyamanan Yang Anda Suka
Selamat Datang di zainuddinkurnia.blogspot.com

Rabu, 27 Oktober 2010

Beberapa Intruksi Mnemonic Assembly

Mnemonic : ADD
Tersedia pada : 8088 keatas
Syntax : ADD Tujuan,Sumber
Pengaruh flag : OF, SF, ZF, AF, PF, CF
Fungsi : Menambahkan “Sumber” dan “Tujuan” kemudian hasilnya disimpan pada “Tujuan”. Bila hasil penjumlahan tidak tertampung seluruhnya pada “Tujuan”, maka CF akan diset 1.
Contoh:

ADD AX,BX ; Jumlahkan 2 register
ADD AL,[350] ; Jumlahkan register dengan isi memori
ADD [350],AL ; Jumlahkan isi memory dengan register
ADD AH,10h ; Jumlahkan register dengan immediate
ADD [350],10h ; Jumlahkan isi memori dengan immediate

Mnemonic : AND
Tersedia pada : 8088 keatas
Syntax : AND Tujuan,Sumber
Pengaruh flag : OF, SF, ZF, PF, CF
Fungsi : Melakukan logika AND antara “Tujuan” dan “Sumber”. Hasil dari operasi AND diletakkan pada “Tujuan”. Instruksi AND umumnya digunakan untuk melihat kondisi suatu bit dengan menolkan bit-bit lainnya.
Contoh:

AND AL,00001000b ; AL=0000?000
JZ Nol ; Jika bit ketiga AL=0, maka lompat

Mnemonic : CALL
Tersedia pada : 8088 keatas
Syntax : CALL nama-procedure
Pengaruh flag : Tidak ada
Fungsi : Melompat dan mengerjakan intruksi pada procedure
Pada saat instruksi Call diberikan, maka processor akan melakukan :

- PUSH CS ke stack bila procedure yang dipanggil bertipe Far.
- PUSH IP ke stack.
- Mengganti nilai CS dengan segmen dari procedure bila procedure
tersebut bertipe Far.
- Mengganti nilai IP dengan offset dari procedure. Lakukan intruksi yang terdapat pada alamat baru(CS:IP) sampai bertemu dengan intruksi RET, setelah itu:
- POP IP
- POP CS bila procedure bertipe Far.
- Kembali ke program induk/pemanggil.

Mnemonic : DEC (Decrement)
Tersedia pada : 8088 keatas
Syntax : DEC Tujuan
Pengaruh flag : OF, SF, ZF, AF, PF
Fungsi : Untuk mengurangi “Tujuan” dengan 1. “Tujuan” dapat berupa
register 8 bit, 16 bit, 32 bit maupun memory. Bila anda ingin mengurangi suatu
register ataupun memory dengan 1, gunakanlah perintah DEC ini karena selain
lebih cepat, perintah DEC juga menggunakan memory lebih sedikit dibandingkan
dengan perintah SUB.
Contoh:

Kita dapat mengimplementasikan perintah Loop dengan menggunakan DEC. Di bawah ini kita akan menjumlahkan bilangan BX sampai 1. Misalnya bila BX = 5 maka dijumlahkan 5+4+3+2+1 = ….

Mnemonic : DIV (Divide)
Tersedia pada : 8088 keatas
Syntax : DIV Sumber
Pengaruh flag : OF, SF, ZF, AF, PF, CF
Fungsi : Bila “sumber” bertipe 8 bit maka dilakukan pembagian AX
dengan “Sumber” (AX / Sumber). Hasil pembagian akan disimpan pada register AL sedangkan sisa pembagian akan disimpan pada regiser AH.
Jika “sumber” bertipe 16 bit maka dilakukan pembagian DX:AX dengan “Sumber” (DX:AX / Sumber). Hasil pembagian akan disimpan pada register AX sedangkan sisa pembagian akan disimpan pada regiser DX.
Contoh:
Untuk memeriksa apakah suatu bilangan merupakan kelipatan 3 atau bukan, anda bisa membaginya dengan tiga. Bila merupakan kelipatan 3, maka sisa pembagian akan 0, sebaliknya jika bukan kelipatan tiga, sisa pembagian tidak akan 0. Macro ini akan menjadikan AL=1 bila bilangan yang ditest merupakan kelipatan tiga dan sebaliknya akan bernilai 0.

Lipat3 MACRO Bil
MOV AX,Bil
MOV BX,3
DIV BX
CMP AX,0 ; Apakah ada sisa pembagian ?
JE Tiga ; Tidak ada sisa , kelipatan 3
MOV AL,0
Tiga :
MOV AL,1
ENDM

Mnemonic : INC (Increment)
Tersedia pada : 8088 keatas
Syntax : INC Tujuan
Pengaruh flag : OF, SF, ZF, AF, PF
Fungsi : Untuk menambah “Tujuan” dengan 1. Bila anda ingin menambah suatu register ataupun memory dengan 1, gunakanlah perintah INC ini karena selain lebih cepat, perintah INC juga menggunakan memory lebih sedikit dibandingkan dengan perintah ADD.
Contoh:

Untuk membuat suatu pengulangan, seperti pada perintah ‘FOR I:=1 TO 10
DO’ pada bahasa tingkat tinggi:

XOR AX,AX
Ulang:
CMP AX,10
JE Selesai
INC AX
JMP Ulang

Mnemonic : MOV (Move)
Tersedia pada : 8088 keatas
Syntax : MOV Tujuan,Sumb
Pengaruh flag : Tidak Ada

Fungsi : Untuk mengcopykan isi “Sumber” ke “Tujuan”. Antara “Sumber”
dan “Tujuan” harus mempunyai tipe data yang sama, seperti AL dan BL, AX dan BX. Pada perintah MOV ini harus anda perhatikan bahwa:
- Segment register tidak bisa langsung diisi nilainya, seperti:
MOV ES,0B800h

Mnemonic : MUL (Multiply)
Tersedia pada : 8088 keatas
Syntax : MUL Sumber
Pengaruh flag : OF, CF
Fungsi : Bila “Sumber” bertipe 8 bit maka akan dilakukan perkalian
antara “Sumber” dengan AL. Hasilnya disimpan pada register AX. Bila “Sumber” bertipe 16 bit maka akan dilakukan perkalian antara “Sumber” dengan AX. Hasilnya disimpan pada pasangan register DX:AX.
Contoh:

MUL BH ; AX = BH * AL
MUL BX ; DX:AX = BX * AX

Sumber : http://izzaanshory.wordpress.com/2010/01/12/beberapa-intruksi-mnemonic-assembly/#comment-13

Tidak ada komentar:

Posting Komentar

Milu ke

Share |