Tugas Mikroprosesor Aritmatika

  • Uploaded by: mauluddin
  • 0
  • 0
  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tugas Mikroprosesor Aritmatika as PDF for free.

More details

  • Words: 1,766
  • Pages: 13
OPERASI ARITMATIKA A. PENJUMLAHAN (ADD) 1. Contoh permasalahan penjumlahan yang melibat carry yang membutuhkan instruksi ADC dan INC adalah :  2000 + 2200= 4200 Programnya: a 100 mov ax, 2000 mov dx, 2200 adc al,dl DAA mov cl,al mov al,ah adc al,dh DAA mov ch,al int 20 HASIL OPERASI PENJUMLAHAN -T AX=2000 BX=0000 DI=0000 DS=13A1 ES=13A1 PO NC 13A1:0103 BA0022 -T AX=2000 BX=0000 DI=0000 DS=13A1 ES=13A1 PO NC 13A1:0106 10D0 -T AX=2000 BX=0000 DI=0000 DS=13A1 ES=13A1 PE NC 13A1:0108 27 -T AX=2000 BX=0000 DI=0000 DS=13A1 ES=13A1 PE NC 13A1:0109 88C1 -T AX=2000 BX=0000 DI=0000

CX=0000

DX=0000

SP=FFEE

SS=13A1

CS=13A1

IP=0103

MOV

BP=0000

SI=0000

NV UP EI PL NZ NA

DX,2200

CX=0000

DX=2200

SP=FFEE

SS=13A1

CS=13A1

IP=0106

ADC

BP=0000

SI=0000

NV UP EI PL NZ NA

AL,DL

CX=0000

DX=2200

SP=FFEE

SS=13A1

CS=13A1

IP=0108

BP=0000

SI=0000

NV UP EI PL ZR NA

DAA CX=0000

DX=2200

SP=FFEE

SS=13A1

CS=13A1

IP=0109

MOV CX=0000

BP=0000

SI=0000

NV UP EI PL ZR NA

CL,AL DX=2200

SP=FFEE

BP=0000

SI=0000

DS=13A1 ES=13A1 PE NC 13A1:010B 88E0 -T AX=2020 BX=0000 DI=0000 DS=13A1 ES=13A1 PE NC 13A1:010D 10F0 -T AX=2042 BX=0000 DI=0000 DS=13A1 ES=13A1 PE NC 13A1:010F 27 -T AX=2042 BX=0000 DI=0000 DS=13A1 ES=13A1 PE NC 13A1:0110 88C5 -T AX=2042 BX=0000 DI=0000 DS=13A1 ES=13A1 PE NC 13A1:0112 CD20

SS=13A1 MOV

CS=13A1

IP=010B

NV UP EI PL ZR NA

AL,AH

CX=0000

DX=2200

SP=FFEE

SS=13A1

CS=13A1

IP=010D

ADC

BP=0000

SI=0000

NV UP EI PL ZR NA

AL,DH

CX=0000

DX=2200

SP=FFEE

SS=13A1

CS=13A1

IP=010F

BP=0000

SI=0000

NV UP EI PL NZ NA

DAA CX=0000

DX=2200

SP=FFEE

SS=13A1

CS=13A1

IP=0110

MOV

BP=0000

SI=0000

NV UP EI PL NZ NA

CH,AL

CX=4200

DX=2200

SP=FFEE

SS=13A1

CS=13A1

IP=0112

INT

BP=0000

SI=0000

NV UP EI PL NZ NA

20

B. PENGURANGAN (SUB) 1. Contoh permasalahan pengurangan(subtraction) yang melibat carry :  4000– 1000 = 3000 Programnya: a 100 mov ax, 4000 mov dx, 1000 sub al,dl DAS mov cl,al mov al,ah SBB al,dh DAS mov ch,al int 20

HASIL OPERASI PENGURANGAN -T AX=4000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0103 NV UP EI PL NZ NA PO NC 13A1:0103 BA0010 MOV DX,1000 -T AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0106 NV UP EI PL NZ NA PO NC 13A1:0106 28D0 SUB AL,DL -T AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0108 NV UP EI PL ZR NA PE NC 13A1:0108 2F DAS -T AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0109 NV UP EI PL ZR NA PE NC 13A1:0109 88C1 MOV CL,AL -T AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010B NV UP EI PL ZR NA PE NC 13A1:010B 88E0 MOV AL,AH -T AX=4040 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010D NV UP EI PL ZR NA PE NC 13A1:010D 18F0 SBB AL,DH -T

AX=4030 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010F NV UP EI PL NZ NA PE NC 13A1:010F 2F DAS -T AX=4030 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0110 NV UP EI PL NZ NA PE NC 13A1:0110 88C5 MOV CH,AL -T AX=4030 BX=0000 CX=3000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0112 NV UP EI PL NZ NA PE NC 13A1:0112 CD20 INT 20 C. PERKALIAN (MUL) 1. Perdalam pemahaman tentang instruksi AAM dan buat kasus-kasus yang melibatkan instruksi AAM. Programnya: A100 MOV AX,0003 MOV BX,0003 MUL BX AAM INT 20 HASIL OPERASI PERKALIAN -T AX=0003 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0103 NV UP EI PL NZ NA PO NC 13A1:0103 BB0300 MOV BX,0003 -T AX=0003 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0106 NV UP EI PL NZ NA PO NC 13A1:0106 F7E3 MUL BX -T AX=0009 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0108 NV UP EI PL NZ NA PO NC 13A1:0108 D40A AAM Hasil LSW MUL BX

Hasil LSW MUL BX

-T AX=0009 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010A NV UP EI PL NZ NA PE NC 13A1:010A CD20 INT 20 D. PEMBAGIAN ( DIV atau MOD) 1. Perdalam pemahaman tentang instruksi AAD, dan buat kasus-kasus pembagian yang melibatkan instruksi AAD a100 mov ah,04 mov al,02 aad mov cl,8 div cl Int 20 HASIL OPERASI PEMBAGIAN -T AX=0400 BX=0000 DI=0000 DS=13A1 ES=13A1 PO NC 13A1:0102 B002 -T

CX=0000

DX=0000

SP=FFEE

SS=13A1

CS=13A1

IP=0102

AX=0402 DI=0000

CX=0000

BX=0000

MOV

BP=0000

SI=0000

NV UP EI PL NZ NA

AL,02

DX=0000

SP=FFEE

BP=0000

SI=0000

DS=13A1 ES=13A1 PO NC 13A1:0104 D50A -T

SS=13A1

CS=13A1

AX=002A BX=0000 DI=0000 DS=13A1 ES=13A1 PO NC 13A1:0106 B108 -T

CX=0000

DX=0000

SP=FFEE

SS=13A1

CS=13A1

IP=0106

AX=002A BX=0000 DI=0000 DS=13A1 ES=13A1 PO NC 13A1:0108 F6F1

CX=0008

DX=0000

SP=FFEE

SS=13A1

CS=13A1

IP=0108

NV UP EI PL NZ NA

AAD

MOV

BP=0000

SI=0000

NV UP EI PL NZ NA

DIV

CL,08

BP=0000

SI=0000

NV UP EI PL NZ NA

CL

SISA Hasil BAGI DIV,BX

Hasil BAGI DIV,BX -T AX=0205 BX=0000 DI=0000 DS=13A1 ES=13A1 PO NC 13A1:010A CD20

IP=0104

CX=0008

DX=0000

SP=FFEE

SS=13A1

CS=13A1

IP=010A

INT

20

BP=0000

SI=0000

NV UP EI PL NZ NA

TUGAS 1. Buat Prosedur Penjumlahan untuk kasus berikut dimana data dan hasil disimpan pada alamat offset 500 ! Jika program anda benar maka buktikan bahwa: 91ed+bf50 =1513d Jawab : Programnya : a100 mov ax,91ed mov bx,bf50 mov [500],ax add ax,bx int 20 OPERASI ARITMATIKA : -t AX=91ED BX=0000 DI=0000 DS=1372 ES=1372 PO NC 1372:0103 BB50BF -t AX=91ED BX=BF50 DI=0000 DS=1372 ES=1372 PO NC 1372:0106 A30005 DS:0500=0000 -t AX=91ED BX=BF50 DI=0000 DS=1372 ES=1372 PO NC 1372:0109 01D8

CX=0000

DX=0000

SP=FFEE

SS=1372

CS=1372

IP=0103

MOV

BP=0000

SI=0000

NV UP EI PL NZ NA

BX,BF50

CX=0000

DX=0000

SP=FFEE

SS=1372

CS=1372

IP=0106

MOV

BP=0000

SI=0000

NV UP EI PL NZ NA

[0500],AX

CX=0000

DX=0000

SP=FFEE

SS=1372

CS=1372

IP=0109

ADD

BP=0000

SI=0000

NV UP EI PL NZ NA

AX,BX

Hasil Perintah ADD AX,BX -t AX=1513D BX=BF50 CX=0000 DX=0000 SP=FFEE DI=0000 DS=1372 ES=1372 SS=1372 CS=1372 IP=010B PO CY 1372:010B CD20 INT 20

BP=0000

SI=0000

OV UP EI PL NZ NA

2. Rakitlah program penjumlahan bilangan BCD yang memenuhi persaman berikut : 1250 + 375 = 1625 Hasil BCD

AX=1216 DI=0000 DS=1380 NC

BX=0000 ES=1380

1380:0112 CD20

CX=1625 SS=1380

DX=0375 CS=1380

INT

SP=FFEE

IP=0112

BP=0000

SI=0000

NV UP EI PL NZ NA PO

20

JAWAB : a 100 mov ax,1250 mov dx,375 adc al,dl DAA mov cl,al mov al,ah adc al,dh DAA mov ch,al int 20 3. Rakit program assembly dilayar debug untuk menampilkan semua lambang yang kode ASCII mulai dari 00-FF dilayar monitor ! Buktikan hasil tampilan program anda seperti berikut : a 100 mov cx,100 mov ah,2 mov dl,00 int 21 inc dl loop 107 int 20 Maka hasilnya adalah sebagai berikut : ☺☻♥♦♣ ♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&'()*+,-. /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] ^_`abcdefghijklmnopqrstuvwxyz{|} ~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡ «»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌ █▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙∙√ⁿ²

4. Rakitlah dan eksekusi dengan perintah g program berikut dan amati hasilnya ! lalu

berikan komentar anda ! minimal anda tuliskan guna program itu. Mov cx,1a Mov ah,2 Mov dl,41 Int 21 Inc dl Loop 107 Int 20 Jawab : Mov cx, 1a [isi cx dengan 1a (maksudnya adalah isi cx untuk 26 karakter)] Mov ah, 2 [isi reg ah dengan 2] Mov dl,41 [isi reg dl dengan kode ascii 41 (A)] Int 21 Inc dl

[increment dl]

Loop 107

[ lanjutkan output tanpa jump]

Int 20 [end program] Program ini berguna untuk memanggil code ASCII yang di mulai pada ‘dl’ yaitu huruf A dan dibatasi hingga 26 karakter yaitu pada cx, 1a maka hasil program ini adalah menampilkan huruf kapital yang dimulai dari A-Z berdasarkan code ASCII yang diminta yaitu (ABCDEFGHIJKLMNOPQRSTUVWXYZ) 5. Rakitlah program asssembly di layar debug menampilkan hal-hal berikut: a. Menampilkan huruf abjad dari a-z a 100 mov cx,1a mov ah,2 mov dl,61 int 21 inc dl loop 107 int 20 Hasilnya adalah sebagai berikut: abcdefghijklmnopqrstuvwxyz

b. Menampilkan huruf abjad dari z-a a 100 mov cx,1a mov ah,2 mov dl,7a int 21 dec dl loop 107 int 20

Hasilnya adalah sebagai berikut: zyxwvutsrqponmlkjihgfedcba c. Menampilkan huruf abjad dari Z-A a 100 mov cx,1a mov ah,2 mov dl,5a int 21 dec dl loop 107 int 20

Hasilnya adalah sebagai berikut: ZYXWVUTSRQPONMLKJIHGFEDCBA d. Menampilkan angka 0-9 a 100 mov cx,0a mov ah,2 mov dl,30 int 21 inc dl loop 107 int 20

Hasilnya adalah sebagai berikut:

0123456789

e. Menampilkan angka 9-0 a 100 mov cx,0a mov ah,2 mov dl,39 int 21 dec dl loop 107 int 20

Hasilnya adalah sebagai berikut:

9876543210

f. Menampilkan huruf abjad dari K-S a 100 mov cx,09 mov ah,2 mov dl,4b int 21 inc dl loop 107 int 20

Hasilnya adalah sebagai berikut:

KLMNOPQRS

g. Menampilkan huruf abjad dari m-d a 100 mov cx,0a mov ah,2 mov dl,6d int 21 dec dl loop 107 int 20

Hasilnya adalah sebagai berikut:

mlkjihgfed

6. Rakitlah program assembly di layar debug menampilkan hal-hal sbb: a. Menampilkan satu persatu huruf abjad dari a-z secara berurut A200 Push CX Push BP Mov BP,500 Mov CX,2000 LOOP 0208 Dec BP JNZ 0205 POP CX POP BP RET A100 Mov CX,D Mov ah,2 Mov dl,61 Int 21 Inc dl CALL 200 LOOP 107

Int 20

b. Menampilkan satu persatu angka dari 9-0 secara berurut A200 PUSH CX PUSH BP MOV BP,500 MOV CX,2000 LOOP 0208 DEC BP JNZ 0205 POP CX POP BP RET A100 Mov cx,5 Mov ah,2 Mov dl,39 Int 21 Dec dl CALL 200 LOOP 107 Int 20

7. Rakitlah dan eksekusi dengan perintah g program berikut dan buktikan hasil dari

persamaan 1250-375= 875 ! lalu berikan komentar anda ! minimal anda tuliskan arti sintag program baris demi baris a100 mov ax,1250 mov dx,375 sub al,dl

Buktika n : Hasil AX=1208 BX=0000 CX=0875 DX=0375 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1380

ES=1380 SS=1380 CS=1380 IP=0112 NV UP EI PL NZ AC PO NC CD20

INT

20 1380:0112

DAS mov cl,al mov al,ah SBB al,dh DAS mov ch,al int 20

JAWAB : A100 [menuju kealamat 100] Mov ax,1250 [isi ax dengan 1250] Mov dx,375 [isi dx dengan 375] Sub al,dl [kurangkan al dl] DAS [ubah hasil pengurangan dalam BCD] mov cl,al [isi cl al] mov al,ah [isi al ah] SBB al,dh [kurangi al dh dengan carry] DAS [convert/ubah hasil pengurangan ke BCD] mov ch,al [isi output ch al] int 20 [end program] ' komentar saya mengenai program ini adalah program’ ini merupakan program pengurangan yang menggunakan carry(limpahan). untuk melihat hasil program ini kita harus menambahkan beberapa program assembly yang bisa mengkonvert dan melihat hasil pengurangan dengan carry yaitu ‘SBB’ jika hanya menggunakan pengurangan (subtraction) biasa dengan menggunakan ‘SUB’ kita tidak akan mendapatkan

Related Documents

Mikroprosesor
April 2020 33
Psikotes Aritmatika
August 2019 19
Mikroprosesor(2)
June 2020 15
02 2 Aritmatika Biner
November 2019 16

More Documents from ""