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
© Copyright 2024 Paperzz