Prak11_InstructionSet_037

16
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

description

fg

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: