Beranda > Materi Kuliah, microprocessor > Beberapa Intruksi Mnemonic Assembly

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

  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan komentar