Pertemuan 6 Instruksi Bahasa Rakitan 8088 Matakuliah : T0483 / Bahasa Rakitan Tahun : 2005 Versi : 1.0 Pertemuan 6 Instruksi Bahasa Rakitan 8088
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : menghasilkan program yang menggunakan instruksi transfer data dan aritmatika
· Instruksi Transfer data · Instruksi Aritmatika Outline Materi · Instruksi Transfer data · Instruksi Aritmatika
Istilah yang akan digunakan : <<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
Instruksi Pemindahan Data <<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
Syarat Operasi MOV <<ISI>> 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
<<ISI>> Instruksi XCHG Instruksi PUSH 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
<<ISI>> Instruksi POP Instruksi LEA 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
<<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
Instruksi SUB, SBB, DEC <<ISI>> SUB D, S SBB D, S DEC D 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
Instruksi MUL dan IMUL <<ISI>> 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
<<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
<< CLOSING>>