Anda di halaman 1dari 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 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 BA0022 MOV DX,2200
-T
AX=2000 BX=0000 CX=0000 DX=2200 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 10D0 ADC AL,DL
-T
AX=2000 BX=0000 CX=0000 DX=2200 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 27 DAA
-T
AX=2000 BX=0000 CX=0000 DX=2200 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=2000 BX=0000 CX=0000 DX=2200 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=2020 BX=0000 CX=0000 DX=2200 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 10F0 ADC AL,DH
-T
AX=2042 BX=0000 CX=0000 DX=2200 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 27 DAA
-T
AX=2042 BX=0000 CX=0000 DX=2200 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=2042 BX=0000 CX=4200 DX=2200 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

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 Hasil LSW


MUL BX 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 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000


DI=0000
DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0102 NV UP EI PL NZ NA
PO NC
13A1:0102 B002 MOV AL,02
-T

AX=0402 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000


DI=0000
DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0104 NV UP EI PL NZ NA
PO NC
13A1:0104 D50A AAD
-T

AX=002A BX=0000 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 B108 MOV CL,08
-T

AX=002A BX=0000 CX=0008 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 F6F1 DIV CL

SISA Hasil
Hasil BAGI BAGI
DIV,BX DIV,BX

-T
AX=0205 BX=0000 CX=0008 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
PO NC
13A1:010A CD20 INT 20
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 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000
DI=0000
DS=1372 ES=1372 SS=1372 CS=1372 IP=0103 NV UP EI PL NZ NA
PO NC
1372:0103 BB50BF MOV BX,BF50
-t
AX=91ED BX=BF50 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000
DI=0000
DS=1372 ES=1372 SS=1372 CS=1372 IP=0106 NV UP EI PL NZ NA
PO NC
1372:0106 A30005 MOV [0500],AX
DS:0500=0000
-t
AX=91ED BX=BF50 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000
DI=0000
DS=1372 ES=1372 SS=1372 CS=1372 IP=0109 NV UP EI PL NZ NA
PO NC
1372:0109 01D8 ADD AX,BX

Hasil
Perintah
ADD AX,BX
-t
AX=1513D BX=BF50 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000
DI=0000
DS=1372 ES=1372 SS=1372 CS=1372 IP=010B OV UP EI PL NZ NA
PO CY
1372:010B CD20 INT 20
2. Rakitlah program penjumlahan bilangan BCD yang memenuhi persaman berikut :
1250 + 375 = 1625
Hasil BCD

AX=1216 BX=0000 CX=1625 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 NA PO


NC

1380:0112 CD20 INT 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

KLMNOPQRS
Hasilnya adalah sebagai berikut:

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 DAS
n
mov cl,al
: Hasil
mov al,ah
AX=1208 BX=0000 CX=0875 DX=0375
SBB al,dh
SP=FFEE BP=0000 SI=0000 DI=0000
DAS
DS=1380 ES=1380 SS=1380 CS=1380
IP=0112 NV UP EI PL NZ AC PO NC mov ch,al

CD20 INT 20 1380:0112 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

Anda mungkin juga menyukai