download

Matakuliah
Tahun
Versi
: T0483 / Bahasa Rakitan
: 2005
: 1.0
Pertemuan 6
Instruksi Bahasa Rakitan 8088
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• menghasilkan program yang
menggunakan instruksi transfer data dan
aritmatika
2
Outline Materi
  Instruksi Transfer data
  Instruksi Aritmatika
3
<<ISI>>
• Instruksi pada 8088
–
–
–
–
–
–
Pemindahan data
Aritmatik
Logik
Kontrol Proses dan status
String
Kontrol alur program
• Istilah yang akan digunakan :
– Reg = Register
– Var = Variabel, lokasi memori
– Imm = Immediate/Konstanta
4
<<ISI>>
• Instruksi Pemindahan Data
–
–
–
–
Register, memory ( mov, xchg )
Stack ( push, pop )
Alamat ( lea )
Port ( in, out )
• Instruksi MOV
– Pemindahan data dari operand-2 (Source) ke
operand-1 (Destination)
– Format : MOV D, S
– Operasi : D <= S
5
<<ISI>>
• Syarat Operasi MOV
– Ukuran sama
– Kedua operand tdk sama
– CS tdk boleh menjadi tujuan
– Imm tdk boleh langsung di copy ke Segment
register
– D dan S keduanya tdk boleh segement
register
– D dan S keduanya tdk boleh variabel /
memory
6
<<ISI>>
• Instruksi XCHG
– Menukarakan data antara operand-1 (Destination)
dengan operand-2 (Source)
– Format : XCHG D, S
– Operasi : D <=> S
– Operand D = Register dan S = Register, Var
• Instruksi PUSH
– Menyimpan nilai (16-bit) yang ada pada operand-nya
ke dalam stack segment yang offsetnya ditunjukoleh
register SP
– Format : Push opr
– Operasi : SP <= Sp - 2 dan SS:[SP] <= opr
7
<<ISI>>
• Instruksi POP
– Mengambil nilai (16-bit) yang tersimpan dalam stack
segment ke dalam operand-nya
– Format : Pop opr
– Operasi : opr <= SS:[SP] dan Sp <= Sp + 2
• Instruksi LEA
– LEA digunakan untuk mendapatkan alamat efektif
dari suatu data atau tabel
– Format : LEA Dest, Label
– Operasi : Dest <= Offset dari Label
– Dest adalah Register 16-bit
8
<<ISI>>
Instruksi ARITMATIKA
– Penjumlahan : ADD, ADC, INC
– Pengurangan : SUB, SBB, DEC, NEG
– Perkalian : MUL, IMUL
– Pembagian : DIV, IDIV
Instruksi ADD, ADC, INC
ADD D, S
• Operasi : D <= D + S
ADC D, S
• Operasi : D <= D + S + CF
INC D
• Operasi : D <= D + 1
D => adalah Register
S => Register, Memori, Immediate
9
<<ISI>>
Instruksi SUB, SBB, DEC
SUB D, S
• Operasi : D <= D - S
SBB D, S
• Operasi : D <= D - S - CF
DEC D
• Operasi : D <= D - 1
D = adalah register, S = adalah register,
memori, immediate
10
<<ISI>>
Instruksi MUL dan IMUL
– MUL digunakan untuk perkalian bilangan
unsigned
– IMUL digunakan untuk perkalian bilangan
signed
– MUL S atau IMUL S
• Operasi : Jika S=> 8-bit, AX <= AL x S
• Operasi : Jika S=>16-bit, DX:AX <= AX x S
– Operand S => Register 8-bit, 16-bit, memori
8-bit, memori 16-bit
11
<<ISI>>
• Instruksi DIV dan IDIV
– DIV digunakan untuk pembagian bilangan unsigned
– IDIV digunakan untuk pembagian bilangan signed
– Format : DIV S atau IDIV S
• Operasi : Jika S : 8-bit, Hasil : AL <= AX / S dan Sisa : AH <=
AX / S
• Operasi : Jika S : 16-bit, Hasil ; AX <= DX:AX / S dan Sisa
ditaruh pada DX
– Operand S : Register 8-bit, 16-bit, memori 8-bit,
memori 16-bit
12
<< CLOSING>>
13