Prak11_InstructionSet_037
-
Upload
boston-manurung -
Category
Documents
-
view
219 -
download
3
description
Transcript of Prak11_InstructionSet_037
4). Instruksi yang digunakan :
mov al, 5 ; bin=00000101b
memindahkan source 5 ke destination al sehingga sekarang nilai dari al = 5 yang bentuk binarinya 00000101
mov bl, 10 ; hex=0ah or bin=00001010b
memindahkan source 10 ke destination bl sehingga sekarang nilai dari bl = 10 yang bentuk hexadecimalnya 0ah atau bentuk binarinya 00001010
add bl, al
perintah untuk menghitung penjumlahan dari 2 operand dimana nilai bl itu diambil dari penjumlahan nilai al + bl
sub bl, 1
perintah untuk menghitung selisih dari 2 operand dimana nilai bl itu diambil dari
1 nilai dari bl
mov cx, 8
memindahkan source 8 ke destination cx sehingga sekarang nilai dari cx = 8
print: mov ah, 2 ; print function.
memindahkan source 2 ke destination ah sehingga sekarang nilai dari ah = 2 dan terdapat fungfi print yang gunanya untuk menampilkan hasil dari perintah tersebut.
mov dl, '0'
memindahkan source 0 ke destination dl sehingga sekarang nilai dari dl = 0
5). Penjelasan kode program1. name "add-sub"
Instruction set yang artinya menambahkan
Common instruction set operation yang merupakan type dari arithmetic
2.
3. org 100h
Perintah dari compiler untuk membuat program menjadi lebih sederhana
4.
5. mov al, 5 ; bin=00000101b
Memindahkan source 5 ke destination al sehingga nilai al=5
Dan bentuk binarinya 00000101
6. mov bl, 10 ; hex=0ah or bin=00001010b
Memindahkan source 10 ke destination bl sehingga nilai dari bl=10 dan bentuk hexadecimal nya 0ah atau bentuk binarinya 00001010
7.
8. ; 5 + 10 = 15 (decimal) or hex=0fh or bin=00001111b
Statement yang menyatakan 5 + 10 = 15 atau jika ditulis dalam hexadecimal adalah 0fh atau dalam binari adalah 000011119. add bl, al
Perintah untuk menghitung penjumlahan dari 2 bilangan dimana nilai bl diambil dari penjumlahan nilai al+bl
10.
11. ; 15 - 1 = 14 (decimal) or hex=0eh or bin=00001110b
Statement yang menyatakan 15 - 1 = 14 atau jika ditulis dalam hexadecimal adalah 0eh atau dalam binari 00001110
12.sub bl, 1
Perintah untuk menghitung selisih dari 2 operand dimana nilai bl itu diambil dari 1 nilai bl 13.
14. ; print result in binary:
Perintah untuk mencetak hasil dalam bentuk binary
15. mov cx, 8
Memindahkan source 8 ke destination cx sehingga nilai dari cx=8
16. print: mov ah, 2 ; print function.
Memindahkan source 2 ke destination ah sehingga sekarang nilai dari ah=2 dan terdapat fungsi printf yang berguna untuk menampilkan hasil dari perintah tersebut17. mov dl, '0'
Memindahkan source 0 ke destination sehingga sekarang nilai dari dl = 0
18. test bl, 10000000b ; test first bit.
19. jz zero
20. mov dl, '1'
Memindahkan source 0 ke destination sehingga sekarang nilai dari dl = 1
21. zero: int 21h
22. shl bl, 1
23. loop print
24.
25. ; print binary suffix:
26. mov dl, 'b' Memindahkan source b ke destination sehingga sekarang nilai dari dl=b27. int 21h
Membaca karakter dari standart input, dengan echo29.
30. ; wait for any key press:
31. mov ah, 0
32. int 16h
33.
34. ret Mengembalikan ke sistem operasiSoal No. 6 Jelaskan fungsi dan cara menggunakan instruksi emu8086 pada daftar instruksi diatas sebanyak-banyaknya! (Minimal 2 instruksi tiap kolom)
Fungsi dan Cara Menggunakan Instruksi emu8086:
Kolom 1:
InstruksiJenis InstruksiDeksripsi
CALLInstruksi Kontrol Aliran Program Fungsi: Untuk memanggil prosedur.
Cara menggunakan:
ANDInstruksi Manipulasi BIT Fungsi: Logical AND antara semua bit dari dua operand.
Cara menggunakan:
Kolom 2:
InstruksiJenis Instruksi Deskripsi
IMULInstruksi Aritmetika Fungsi: Digunakan untuk perkalian Signed. Cara menggunakan:
IDIVInstruksi Aritmetika Fungsi: Digunakan untuk pembagian Signed. Cara menggunakan:
Kolom 3:
InstruksiJenis InstruksiDeskripsi
JEInstruksi Kontrol Aliran Program Fungsi: Untuk melakukan lompatan jika hasil perbandingan (dengan CMP) menghasilkan operan 1 sama dengan 2 (JE) atau operan 1 dikurangi operan 2 hasilnya nol(JZ)
Cara Menggunakan:
JGInstruksi Kontrol Aliran Program Fungsi: Untuk melakukan lompatan jika operan pertama nilainya lebih besar(atau tidak lebih kecil atau tidak sama dengan) dibandingkan operan kedua hasil dari instruksi CMP sebelumnya (untuk bilangan bertanda)
Cara Menggunakan:
Kolom 4:
Instruksi Jenis InstruksiDeskripsi
JOInstruksi Kontrol Aliran Program Fungsi: Untuk melakukan lompatan ke suatu table jika hasil dari instruksi yang dikerjakan sebelumnya mengakibatkan terjadinya limpahan atau overflow (kebalikan dari JNO)
Cara Menggunakan:
JNEInstruksi Kontrol Aliran Program Fungsi: Untuk melakukan lompatan ke suatu table jika operan pertama tidak sama dengan operan kedua, atau hasil instruksi sebelumnya menghasilkan yang bukan nol
Cara Menggunakan:
Kolom 5:
Instruksi Jenis InstruksiDeskripsi
LOOPInstruksi Kontrol Aliran Program Fungsi: Untuk melakukan pengulangan dari suatu label tertentu hingga nilai CX menjadi 0
Cara Menggunakan:
LOOPEInstruksi: Kontrol Aliran Program Fungsi: Untuk menurunkan nilai register CX dan melompat ke suatu label tertentu jika CX tidak nol dan sama, artinya pengulangan akan dilanjutkan hingga CX mencapau nol atau ZF=o atau dua-duanya.
Cara Menggunakan:
Kolom 6:
Instruksi Jenis InstruksiDeskripsi
MULInstruksi Aritmetika Fungsi: Untuk melakukan perkalian bilangan tak-bertanda antara suatu operan dengan register AL atau AX.
Cara Menggunakan:
PUSHAInstruksi Transfer Data Fungsi: Untuk menyimpan beberapa register sekaligus ke dalam stack dengan urutanAX, CX, DX, BX, SP, BP, SI , dan DI
Cara Menggunakan:
Kolom 7:
Instruksi Jenis InstruksiDeskripsi
REPInstruksi String Fungsi: Untuk melakukan pengulangan instruksi MOVSB, MOVSW, LODSB, LODSW, STOSB, atau STOSW sebanyak nilai yang tersimpan di register CX
Cara Menggunakan:
ROLInstruksi Manipulasi Bit Fungsi: Untuk menggeser dan memutar bit pada suatu operan dengan tidak menggunakan perantara CF
Cara Menggunakan:
Kolom 8:
Instruksi Jenis InstruksiDeskripsi
STDInstruksi String Fungsi: Untuk mengatur agar DF=1 , kemudian register SI dan DI diturunkan oleh instruksi berantai.
Cara Menggunakan:
SUBInstruksi Aritmetika Fungsi: Untuk melakukan pengurangan dua operan, tujuan dan sumber, hasilnya disimpan di tujuan.
Cara Menggunakan: