You are on page 1of 22

UNIT 3

OPERASI ARITMATIKA

Dibuat oleh :

Laurensius Wahyu Tirtana


408531305031

PROGRAM STUDI D-3 TEKNIK ELEKTRO


JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MALANG
2009
A. Tujuan
Setelah mempraktekan latihan perpindahan data mahasiswa diharapkan mampu :
• Mengerti dan memahami berbagai macam operasi Operasi Aritmatika.
• Terampil mengoperasikan operasi aritmatika.
• Memahami perintah operasi dan fungsi didalam operasi aritmatika.

B. Dasar Teori
Instruksi – instruksi aritmatika meliputi : penambahan (addition), pengurangan
(substruction), pembandingan (comparison), perkalian (multiplication), dan pembagian
(division).
1. Penjumlahan (Addition)
Instruksi yang digunakan untuk keperluan ini adalah ADD, ADC (add with carry), dan
INC (increment). Mode pengalamatan yang terjadi pada operasi penjumlahan mencakup
hampir semua mode pengalamatan yang ada, kecuali penjumlahan dari memori ke memori
dan dari memori ke register segmen. Operasi penjumlahan ini akan menyebabkan perubahan
bit – bit pada flag register, yaitu bit – bit : Z, C, A, S, P, dan O.
• Penjumlahan Register (register addition)
Penjumlahan register (register addition) adalah penjumlahan yang terjadi antara data
suatu register asal dan suatu register tujuan. Hasil penjumlahan ini disimpan di register
tujuan.
Sintaks : ADD reg_tujuan,reg_asal
Contoh :
ADD BL,CL ; menjumlahkan isi register BL dan CL, hasilnya disimpan di
; register BL
ADD CX,BX ; menjumlahkan isi register CX dan BX, hasilnya disimpan
; di register CX
• Penjumlahan Dengan Data Langsung (immediate addition)
Penjumlahan dengan data langsung (immediate addition) adalah penjumlahan yang
terjadi antara isi suatu register dengan suatu data (mentah). Hasilnya disimpan di
register tersebut.
Sintaks : ADD reg , data
Contoh :
ADD AH,80h ; menjumlahkan isi register AH dengan 80h, hasilnya
; disimpan di AH
ADD BX,100h ; menjumlahkan isi register BX dengan 100h, hasilnya
; disimpan di register CX
• Penjumlahan Memori – Register (memory-register addition)
Penjumlahan memori–register (memory-register addition) terjadi antara data suatu
lokasi memori (asal) ke suatu register (tujuan) atau sebaliknya. Hasil penjumlahan
disimpan di register tujuan tersebut.
Sintaks : ADD reg , [alamat]
ADD [alamat] , reg
Contoh :
ADD AH, [AL] ; isi register AH dijumlahkan dengan data pada lokasi
; memori beralamat [DSx10h+AL], hasilnya disimpan
; di register AH
ADD [AL], AH ; data pada lokasi memori beralamat[DSx10h+AL]
; dijumlahkan dengan isi register AH, hasilnya disimpan
; memori tersebut
ADD A H, VAR1 ; isi register AH dijumlahkan dengan variabel VAR1
; (sebuah data di lokasi memori yang diwakili oleh
; VAR1) dan hasilnya disimpan di register AH
• INC (increment)
Increment (penambahan 1) menyebabkan data pada suatu lokasi memori atau suatu
register bertambah 1.
Sintaks : INC reg
INC [alamat]
Contoh :
INC DL ; isi register DL ditambah 1
INC [SI] ; isi lokasi memori beralamat[DSx10h+SI] ditambah 1
INC VAR2 ; isi VAR2 ditambah 1
• ADC (add with carry)
ADC (add with carry)pada dasarnya similar (mirip) dengan penjumlahan biasa
(ADD). Bedanya, pad operasi ADC, bit carry (C) turut dijumlahkan. Sintaksnya juga
mirip dengan operasi ADD (ADD diganti dengan ADC).
Contoh :
ADC AH, [AL] ; AH = AH + AL + carry, hasilnya disimpan di register
; AH
ADC BX, DX ; BX = BX + DX + carry, hasilnya disimpan di register
; BX
ADC [DI], CH ; menjumlahkan data pada lokasi memori beralamat
; [DSx10h+AL] dengan isi register CH dan bit carry
; hasilnya disimpan di lokasi memori itu sendiri
2. Pengurangan (Substraction)
Mode pengalamatan yang terjadi pada operasi pengurangan mencakup hampir semua
mode pengalamatan yang ada, kecuali pengurangan dari memori ke memori dan dari
memori ke register segmen. Seperti pad operasi penjumlahan, operasi pengurangan juga
akan menyebabkan perubahan bit – bit pada flag register, yaitu bit – bit : Z, C, A, S, P, dan
O.
• Pengurangan Register (register substraction)
Pengurangan Register (register substraction) merupakan pengurangan data pada
suatu register asal oleh isi register tujuan. Hasil pengurangan ini disimpan di register
tujuan.
Sintaks : SUB reg_tujuan,reg_asal
Contoh :
SUB BL,CL ; mengurangkan isi register BL dan CL, hasilnya disimpan di
; register BL
SUB CX,BX ; mengurangkan isi register CX dan BX, hasilnya disimpan
; di register CX
• Pengurangan Dengan Data Langsung (immediate substraction)
Pengurangan dengan data langsung (immediate substraction) adalah pengurangan
yang terjadi antara isi suatu register dengan suatu data (mentah). Hasilnya disimpan di
register tersebut.
Sintaks : SUB reg , data
Contoh :
SUB AH,80h ; mengurangkan isi register AH dengan 80h, hasilnya
; disimpan di AH
SUB BX,100h ; mengurangkan isi register BX dengan 100h, hasilnya
; disimpan di register CX
• Pengurangan Memori – Register (memory-register substraction)
Pengurangan memori–register (memory-register substraction) terjadi antara data
suatu lokasi memori (asal) ke suatu register (tujuan) atau sebaliknya. Hasil pengurangan
disimpan di register tujuan tersebut.
Sintaks : SUB reg , [alamat]
SUB [alamat] , reg
Contoh :
SUB AH, [AL] ; mengurangkan isi register AH dengan data pada lokasi
; memori beralamat [DSx10h+AL], hasilnya disimpan
; di register AH
SUB [AL], AH ; mengurangkan data pada lokasi memori beralamat
; [DSx10h+AL]dengan isi register AH, hasilnya disimpan
; memori tersebut
SUB AH, VAR1 ; mengurangkan isi register AH dengan variabel VAR1
; (sebuah data di lokasi memori yang diwakili oleh
; VAR1) dan hasilnya disimpan di register AH
• DEC (Decrement)
Increment (pengurangan 1) merupakan kebalikan dari increment, yang menyebabkan
data pada suatu lokasi memori atau suatu register berkurang 1.
Sintaks : DEC reg
DEC [alamat]
Contoh :
DEC DL ; isi register DL dikurangi 1
DEC [SI] ; isi lokasi memori beralamat[DSx10h+SI] dikurangi 1
DEC VAR2 ; isi VAR2 dikurangi 1
• SBB (sub with borrow)
SBB (sub with borrow) pada dasarnya similar (mirip) dengan pengurangan biasa
(SUB). Bedanya, pad operasi SBB, bit carry (C) turut dikurangkan. Sintaksnya juga
mirip dengan operasi SUB (SUB diganti dengan SBB).
Contoh :
SBB AH, [AL] ; AH = AH – AL – carry, hasilnya disimpan di register
; AH
SBB BX, DX ; BX = BX – DX – carry, hasilnya disimpan di register
; BX
SBB [DI], CH ; data pada lokasi memori beralamat[DSx10h+AL]
; dikurangkan dengan isi register CH dan bit carry,
; hasilnya disimpan di lokasi memori itu sendiri
3. Pembandingan (Comparison)
Pada dasarnya operasi pembandingan adalah operasi pengurangan tetapi tidak mengubah
isi lokasi memori atau register tujuan (yang berubah adalah bit – bit flag register C, Z dan S).
Operasi ini dijalankan dengan instruksi CMP. Biasanya instruksi ini diikuti dengan instruksi
lompatan bersyarat untuk menindaklanjuti hasil pembandingan tersebut.
Sintaksnya : CMP reg,reg
CMP reg,data
CMP reg,[alamat]
CMP [alamat],reg
Contah :
CMP DL, BL ; DL = DL – BL, tanpa mengubah isi DL maupun BL
CMP BX, [SI] ; isi register BX dikurangi dengan isi lokasi memori
; beralamat[DI:SI] tanpa mengubah isi BX maupun
; isi memori tersebut
CMP [BP], AX ; isi lokasi memori beralamat[SS:BP] dikurangi dengan
; isi register AX tanpa mengubah isi AX maupun isi
; memori tersebut
Oleh karena itu pembandingan pada dasarnya adalah operasi pengurangan, bila bilangan
di sebelah kiri lebih kecil daripada di sebelah kanan, bit Sign akan diset NG (negatif) dan bit
Carry akan diset CY (ada carry). Sebaliknya apabila bilangan di sebelah kanan lebih kecil
daripada di sebelah kiri, bit Sign akan diset PL (positif) dan bit Carry akan diset NC (tidak
ada carry). Bila kedua bilangan yang dibandingkan sama, bit Zero akan diset ZR (hasil
operasi 0),sebaliknya jika kedua bilangan berbeda akan diset NZ (hasil operasi tidak 0).
4. Perkalian (Multiplication)
Instruksi yang digunakan untuk perkalian ini adalah MUL (untuk bilangan tidak bertanda/
unsigned number) dan IMUL (untuk bilangan integer). Perkalian dapat dilakukan untuk
bilangan 8-bit, 16-bit, dan 32-bit.
• Perkalian 8-bit
Adalah perkalian antara sebuah multiplicand (bilangan yang akan dikalikan, yang
tersimpan di register AL) dengan sebuah multipler (bilangan pengali, yang dapat
merupakan isi dari sebuah register 8-bit, atau data pada lokasi memori tertentu, atau
sebuah variabel). Hasil perkalian ini disimpan di register AX (perkalian 8-bit
menghasilkan bilangan 16-bit).
Sintaks : MUL reg
MUL [alamat]
Contoh :
DEC DL ; isi register A L dikalikan dengan isi register DL, hasilnya
; disimpan di register AX
DEC VAR1 ; isi register A L dikalikan dengan VAR1, hasilnya disimpan
; di register AX
• Perkalian 8-bit
Adalah perkalian antara sebuah multiplicand (bilangan yang akan dikalikan, yang
tersimpan di register AX) dengan sebuah multipler (bilangan pengali, yang dapat
merupakan isi dari sebuah register 16-bit, atau data pada lokasi memori tertentu, atau
sebuah variabel). Hasil perkalian ini disimpan di register DX-AX (perkalian 16-bit
menghasilkan bilangan 32-bit).
Sintaks : MUL reg
MUL [alamat]
Contoh :
DEC BX ; isi register AX dikalikan dengan isi register BX, hasilnya
; disimpan di register DX- AX
DEC VAR2 ; isi register AX dikalikan dengan VAR2, hasilnya disimpan
; di register DX- AX
5. Pembagian (Division)
Instruksi yang digunakan untuk pembagian ini adalah DIV (untuk bilangan tidak bertanda/
unsigned number) dan IDIV (untuk bilangan integer). Pembagian dapat dilakukan untuk
bilangan 8-bit(bilangan yang dibagi 16-bit dan pembaginya 8-bit), 16-bit(bilangan yang
dibagi 32-bit dan pembaginya 16-bit), dan 32-bit (bilangan yang dibagi 64-bit dan
pembaginya 32-bit).
• Perkalian 8-bit
Adalah pembagian antara sebuah dividen (bilangan yang akan dibagi, yang tersimpan
di register AX) dengan sebuah divisor (bilangan pembagi, yang dapat merupakan isi dari
sebuah register 8-bit, atau data pada lokasi memori tertentu, atau sebuah variabel). Hasil
pembagian ini disimpan di register AL dan sisanya di AH.
Sintaks : DIV reg
DIV [alamat]
Contoh :
D IV DL ; isi register AX dibagi dengan isi register DL, hasilnya
; disimpan di register AL dan sisanya di register AH
D IV VAR1 ; isi register A L dibagi dengan VAR1, hasilnya disimpan
; di register AL dan sisanya di register AH
• Pembagian 16-bit
Adalah pembagian antara sebuah dividend (bilangan yang akan dikalikan, yang
tersimpan di register DX-AX) dengan sebuah divisor (bilangan pembagi, yang dapat
merupakan isi dari sebuah register 16-bit, atau data pada lokasi memori tertentu, atau
sebuah variabel). Hasil pembagian ini disimpan di register AX dan sisanya di DX.
Sintaks : DIV reg
DIV [alamat]
Contoh :
D IV BX ; isi register DX- AX dibagi dengan isi register BX, hasilnya
; disimpan di register AX dan sisanya di register DX
D IV VAR2 ; isi register DX- AX dibagi dengan VAR2, hasilnya
; disimpan register AX dan sisanya di register DX

C. Alat dan Bahan


• 1 Perangkat komputer
• Buku penunjang (Dasar-dasar Mikroprosessor)

D. Langkah Kerja
1. Persiapkan buku-buku yang menunjang praktek perpindahan data
2. Pastikan komputer dapat beroperasi dengan baik dan menunjang praktek
3. Jalankan aplikasi Command Prompt. Klik Start accessoriescommand prompt
4. Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\>
5. Operasikan sesuai dengan perintah dosen pembimbing. Berikut sintaks yang
diperintahkan oleh dosen pembimbing.
6. Catatlah hasil praktek setelah melakukan percobaan.

E. Hasil Percobaan
Latihan 7.1
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\a>debug


-a100
0AFB:0100 mov ax,100
0AFB:0103 mov bx,200
0AFB:0106 mov cx,300
0AFB:0109 mov dx,400
0AFB:010C mov [200],ax
0AFB:010F add ax,dx
0AFB:0111 add bx,2f
0AFB:0114 add cx,[200]
0AFB:0118 add [200],dx
0AFB:011C inc ax
0AFB:011D inc ax
0AFB:011E inc ax
0AFB:011F int 20
0AFB:0121
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B80001 MOV AX,0100
-d200
0AFB:0200 73 E3 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 s.u.< t.<.t...6.
0AFB:0210 0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...-
0AFB:0220 01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u...
0AFB:0230 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u.
0AFB:0240 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X
0AFB:0250 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2
0AFB:0260 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u....
0AFB:0270 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).
-t

AX=0100 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0103 NV UP EI PL NZ NA PO NC
0AFB:0103 BB0002 MOV BX,0200
-t

AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0106 NV UP EI PL NZ NA PO NC
0AFB:0106 B90003 MOV CX,0300
-t

AX=0100 BX=0200 CX=0300 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0109 NV UP EI PL NZ NA PO NC
0AFB:0109 BA0004 MOV DX,0400
-t
AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010C NV UP EI PL NZ NA PO NC
0AFB:010C A30002 MOV [0200],AX DS:0200=E373

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010C NV UP EI PL NZ NA PO NC
0AFB:010C A30002 MOV [0200],AX DS:0200=E373
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010F NV UP EI PL NZ NA PO NC
0AFB:010F 01D0 ADD AX,DX
-t

AX=0500 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0111 NV UP EI PL NZ NA PE NC
0AFB:0111 83C32F ADD BX,+2F
-t

AX=0500 BX=022F CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0114 NV UP EI PL NZ NA PO NC
0AFB:0114 030E0002 ADD CX,[0200] DS:0200=0100
-t

AX=0500 BX=022F CX=0400 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0118 NV UP EI PL NZ NA PE NC
0AFB:0118 01160002 ADD [0200],DX DS:0200=0100
-t

AX=0500 BX=022F CX=0400 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011C NV UP EI PL NZ NA PE NC
0AFB:011C 40 INC AX
-t

AX=0501 BX=022F CX=0400 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011D NV UP EI PL NZ NA PO NC
0AFB:011D 40 INC AX
-t

AX=0502 BX=022F CX=0400 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011E NV UP EI PL NZ NA PO NC
0AFB:011E 40 INC AX
-t

AX=0503 BX=022F CX=0400 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011F NV UP EI PL NZ NA PE NC
0AFB:011F CD20 INT 20
-d200
0AFB:0200 00 05 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 ..u.< t.<.t...6.
0AFB:0210 0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...-
0AFB:0220 01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u...
0AFB:0230 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u.
0AFB:0240 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X
0AFB:0250 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2
0AFB:0260 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u....
0AFB:0270 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).

Latihan 7.2
C:\DOCUME~1\a>debug
-a100
0AFB:0100 mov ax,100
0AFB:0103 mov bx,200
0AFB:0106 mov cx,300
0AFB:0109 mov dx,400
0AFB:010C mov [200],ax
0AFB:010F sub dx,ax
0AFB:0111 sub bx,2f
0AFB:0114 sub cx,[200]
0AFB:0118 sub [200],ax
0AFB:011C dec ax
0AFB:011D dec ax
0AFB:011E dec ax
0AFB:011F int 20
0AFB:0121
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B80001 MOV AX,0100
-d200
0AFB:0200 73 E3 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 s.u.< t.<.t...6.
0AFB:0210 0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...-
0AFB:0220 01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u...
0AFB:0230 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u.
0AFB:0240 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X
0AFB:0250 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2
0AFB:0260 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u....
0AFB:0270 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).
-t

AX=0100 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0103 NV UP EI PL NZ NA PO NC
0AFB:0103 BB0002 MOV BX,0200
-t

AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0106 NV UP EI PL NZ NA PO NC
0AFB:0106 B90003 MOV CX,0300
-t

AX=0100 BX=0200 CX=0300 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0109 NV UP EI PL NZ NA PO NC
0AFB:0109 BA0004 MOV DX,0400
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010C NV UP EI PL NZ NA PO NC
0AFB:010C A30002 MOV [0200],AX DS:0200=E373
-t
AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010F NV UP EI PL NZ NA PO NC
0AFB:010F 29C2 SUB DX,AX
-t

AX=0100 BX=0200 CX=0300 DX=0300 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0111 NV UP EI PL NZ NA PE NC
0AFB:0111 83EB2F SUB BX,+2F
-t

AX=0100 BX=01D1 CX=0300 DX=0300 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0114 NV UP EI PL NZ AC PE NC
0AFB:0114 2B0E0002 SUB CX,[0200] DS:0200=0100
-t

AX=0100 BX=01D1 CX=0200 DX=0300 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0118 NV UP EI PL NZ NA PE NC
0AFB:0118 29060002 SUB [0200],AX DS:0200=0100
-t

AX=0100 BX=01D1 CX=0200 DX=0300 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011C NV UP EI PL ZR NA PE NC
0AFB:011C 48 DEC AX
-t

AX=00FF BX=01D1 CX=0200 DX=0300 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011D NV UP EI PL NZ AC PE NC
0AFB:011D 48 DEC AX
-t

AX=00FE BX=01D1 CX=0200 DX=0300 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011E NV UP EI PL NZ NA PO NC
0AFB:011E 48 DEC AX
-t

AX=00FD BX=01D1 CX=0200 DX=0300 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011F NV UP EI PL NZ NA PO NC
0AFB:011F CD20 INT 20
-d200
0AFB:0200 00 00 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 ..u.< t.<.t...6.
0AFB:0210 0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...-
0AFB:0220 01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u...
0AFB:0230 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u.
0AFB:0240 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X
0AFB:0250 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2
0AFB:0260 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u....
0AFB:0270 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).

Latihan 7.3
C:\DOCUME~1\a>debug
-a100
0AFB:0100 mov ax,100
0AFB:0103 mov bx,200
0AFB:0106 mov cx,300
0AFB:0109 mov dx,400
0AFB:010C mov [300],ax
0AFB:010F cmp ax,bx
0AFB:0111 cmp bx,1fc
0AFB:0115 cmp cx,[300]
0AFB:0119 cmp [300],dx
0AFB:011D cmp [300],ax
0AFB:0121 int 20
0AFB:0123
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B80001 MOV AX,0100
-d300
0AFB:0300 06 32 99 C6 06 34 99 FF-C6 06 35 99 00 E8 99 00 .2...4....5.....
0AFB:0310 AC E8 61 E2 74 38 3C 0D-74 34 3A 06 02 96 74 2E ..a.t8<.t4:...t.
0AFB:0320 3A C3 74 2A 3C 3A 74 03-E9 5F FF 80 3E F0 97 02 :.t*<:t.._..>...
0AFB:0330 75 05 E8 74 00 EB D9 46-EB 14 E9 4D FF BA D1 89 u..t...F...M....
0AFB:0340 E9 CB E5 BA FB 8A E9 C5-E5 4E 5F 9D F9 C3 4E EB .........N_...N.
0AFB:0350 51 80 CF 01 81 CD 00 80-E8 12 E2 46 E8 E4 DF 74 Q..........F...t
0AFB:0360 0D E8 45 00 AC E8 41 00-81 CD 00 40 EB 34 3C 0D ..E...A....@.4<.
0AFB:0370 75 09 B0 00 AA 81 CD 00-40 EB CE E8 2B 00 E8 EC u.......@...+...
-t

AX=0100 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0103 NV UP EI PL NZ NA PO NC
0AFB:0103 BB0002 MOV BX,0200
-t

AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0106 NV UP EI PL NZ NA PO NC
0AFB:0106 B90003 MOV CX,0300
-t

AX=0100 BX=0200 CX=0300 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0109 NV UP EI PL NZ NA PO NC
0AFB:0109 BA0004 MOV DX,0400
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010C NV UP EI PL NZ NA PO NC
0AFB:010C A30003 MOV [0300],AX DS:0300=3206
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010F NV UP EI PL NZ NA PO NC
0AFB:010F 39D8 CMP AX,BX
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0111 NV UP EI NG NZ NA PE CY
0AFB:0111 81FBFC01 CMP BX,01FC
-t
AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0115 NV UP EI PL NZ AC PO NC
0AFB:0115 3B0E0003 CMP CX,[0300] DS:0300=0100
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0119 NV UP EI PL NZ NA PE NC
0AFB:0119 39160003 CMP [0300],DX DS:0300=0100
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=011D NV UP EI NG NZ NA PE CY
0AFB:011D 39060003 CMP [0300],AX DS:0300=0100
-t

AX=0100 BX=0200 CX=0300 DX=0400 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0121 NV UP EI PL ZR NA PE NC
0AFB:0121 CD20 INT 20
-d300
0AFB:0300 00 01 99 C6 06 34 99 FF-C6 06 35 99 00 E8 99 00 .....4....5.....
0AFB:0310 AC E8 61 E2 74 38 3C 0D-74 34 3A 06 02 96 74 2E ..a.t8<.t4:...t.
0AFB:0320 3A C3 74 2A 3C 3A 74 03-E9 5F FF 80 3E F0 97 02 :.t*<:t.._..>...
0AFB:0330 75 05 E8 74 00 EB D9 46-EB 14 E9 4D FF BA D1 89 u..t...F...M....
0AFB:0340 E9 CB E5 BA FB 8A E9 C5-E5 4E 5F 9D F9 C3 4E EB .........N_...N.
0AFB:0350 51 80 CF 01 81 CD 00 80-E8 12 E2 46 E8 E4 DF 74 Q..........F...t
0AFB:0360 0D E8 45 00 AC E8 41 00-81 CD 00 40 EB 34 3C 0D ..E...A....@.4<.
0AFB:0370 75 09 B0 00 AA 81 CD 00-40 EB CE E8 2B 00 E8 EC u.......@...+...
Latihan 7.4
C:\DOCUME~1\a>debug
-a100
0AFB:0100 mov al,12
0AFB:0102 mov dl,2
0AFB:0104 mul dl
0AFB:0106 mov ax,2030
0AFB:0109 mov bx,1000
0AFB:010C mul bx
0AFB:010E int 20
0AFB:0110
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B012 MOV AL,12
-d200
0AFB:0200 00 00 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 ..u.< t.<.t...6.
0AFB:0210 0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...-
0AFB:0220 01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u...
0AFB:0230 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u.
0AFB:0240 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X
0AFB:0250 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2
0AFB:0260 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u....
0AFB:0270 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).
-t

AX=0012 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0102 NV UP EI PL NZ NA PO NC
0AFB:0102 B202 MOV DL,02
-t

AX=0012 BX=0000 CX=0000 DX=0002 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0104 NV UP EI PL NZ NA PO NC
0AFB:0104 F6E2 MUL DL
-t

AX=0024 BX=0000 CX=0000 DX=0002 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0106 NV UP EI PL NZ NA PE NC
0AFB:0106 B83020 MOV AX,2030
-t

AX=2030 BX=0000 CX=0000 DX=0002 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0109 NV UP EI PL NZ NA PE NC
0AFB:0109 BB0010 MOV BX,1000
-t

AX=2030 BX=1000 CX=0000 DX=0002 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010C NV UP EI PL NZ NA PE NC
0AFB:010C F7E3 MUL BX
-t

AX=0000 BX=1000 CX=0000 DX=0203 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010E OV UP EI PL ZR NA PE CY
0AFB:010E CD20 INT 20
-d200
0AFB:0200 00 00 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 ..u.< t.<.t...6.
0AFB:0210 0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...-
0AFB:0220 01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u...
0AFB:0230 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u.
0AFB:0240 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X
0AFB:0250 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2
0AFB:0260 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u....
0AFB:0270 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).

Latihan 7.5
C:\DOCUME~1\a>debug
-a100
0AFB:0100 mov ax,250
0AFB:0103 mov dl,3
0AFB:0105 div dl
0AFB:0107 mov dx,2030
0AFB:010A mov ax,0405
0AFB:010D mov bx,1000
0AFB:0110 div bx
0AFB:0112 int 20
0AFB:0114
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B85002 MOV AX,0250
-d200
0AFB:0200 00 00 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 ..u.< t.<.t...6.
0AFB:0210 0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...-
0AFB:0220 01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u...
0AFB:0230 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u.
0AFB:0240 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X
0AFB:0250 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2
0AFB:0260 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u....
0AFB:0270 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).
-t

AX=0250 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0103 NV UP EI PL NZ NA PO NC
0AFB:0103 B203 MOV DL,03
-t

AX=0250 BX=0000 CX=0000 DX=0003 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0105 NV UP EI PL NZ NA PO NC
0AFB:0105 F6F2 DIV DL
0AFB:0105 F6F2 DIV DL
-t

AX=01C5 BX=0000 CX=0000 DX=0003 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0107 NV UP EI PL NZ NA PO NC
0AFB:0107 BA3020 MOV DX,2030
-t

AX=01C5 BX=0000 CX=0000 DX=2030 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010A NV UP EI PL NZ NA PO NC
0AFB:010A B80504 MOV AX,0405
-t

AX=0405 BX=0000 CX=0000 DX=2030 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=010D NV UP EI PL NZ NA PO NC
0AFB:010D BB0010 MOV BX,1000
-t

AX=0405 BX=1000 CX=0000 DX=2030 SP=FFEE BP=0000 SI=0000 DI=0000


DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0110 NV UP EI PL NZ NA PO NC
0AFB:0110 F7F3 DIV BX

F. PEMBAHASAN
1. Penjumlahan (Addition)
• ADD
Untuk menambah dalam bahasa assembler digunakan perintah ADD dan ADC
serta INC. Perintah ADD digunakan dengan syntax :
ADD Tujuan,Asal
Perintah ADD ini akan menambahkan nilai pada Tujuan dan Asal. Hasil yang
didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi
Tujuan:=Tujuan + Asal. Sebagai contohnya :
MOV AH,15h ; AH:=15h
MOV AL,4 ; AL:=4
ADD AH,AL ; AH:=AH+AL, jadi AH=19h
Perlu diperhatikan bahwa pada perintah ADD ini antara Tujuan dan Asal harus
mempunyai daya tampung yang sama, misalnya register AH(8 bit) dan AL(8 bit),
AX(16 bit) dan BX(16 bit).
Bila Tujuan tempat hasil penjumlahan disimpan tidak mencukupi seperti
pertambahan 1234h dengan F221h.
1234 h Biner → 0001 0010 0011 0100
F221 h Biner → 1111 0010 0010 0001
---------- + --------------------------- +
10455 h 10000 0100 0101 0101
Pada pertambahan diatas dapat dilihat bahwa pertambahan bilangan 1234
dengan F221 akan menghasilkan nilai 10455. Supaya lebih jelas dapat dilihat pada
pertambahan binernya dihasilkan bit ke 17, padahal register terdiri atas 16 bit saja.
Operasi pertambahan yang demikian akan menjadikan carry flag menjadi satu,
Contoh:
MOV AX,1234h ; NIlai AX:=1234h dan carry=0
MOV BX,0F221h ; Nilai BX:=F221h dan carry=0
ADD AX,BX ; Nilai AX menjadi 0455h dan carry=1
• ADC
Perintah ADC digunakan dengan cara yang sama pada perintah ADD, yaitu :
ADC Tujuan,Asal
Perbedaannya pada perintah ADC ini Tujuan tempat menampung hasil
pertambahan Tujuan dan Asal ditambah lagi dengan carry flag
(Tujuan:=Tujuan+Asal+Carry). Pertambahan yang demikian bisa memecahkan
masalah seperti yang pernah dikemukakan, seperti pertambahan pada bilangan
12345678h + 9ABCDEF0h.
Seperti yang telah kita ketahui bahwa satu register hanya mampu menampung
16 bit, maka untuk pertambahan seperti yang diatas bisa anda gunakan perintah ADC
untuk memecahkannya, Contoh:
MOV AX,1234h ; AX = 1234h CF = 0
MOV BX,9ABCh ; BX = 9ABCh CF = 0
MOV CX,5678h ; BX = 5678h CF = 0
MOV DX,0DEF0h ; DX = DEF0h CF = 0
ADD CX,DX ; CX = 3568h CF = 1
ADC AX,BX ; AX = AX+BX+CF = ACF1
Hasil penjumlahan akan ditampung pada register AX:CX yaitu ACF13568h.
Adapun flag-flag yang terpengaruh oleh perintah ADD dan ADC ini adalah
CF,PF,AF,ZF,SF dan OF.
• INC
Perintah INC(Increment) digunakan khusus untuk pertambahan dengan 1.
Perintah INC hanya menggunakan 1 byte memory, sedangkan perintah ADD dan
ADC menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi
pertambahan dengan 1 gunakanlah perintah INC. Syntax pemakainya adalah :
INC Tujuan
Nilai pada tujuan akan ditambah dengan 1. Tujuan disini dapat berupa suatu
register maupun memory.

2. Pengurangan (Substraction)
• SUB
Untuk Operasi pengurangan dapat digunakan perintah SUB dengan syntax:
SUB Tujuan,Asal
Perintah SUB akan mengurangkan nilai pada Tujuan dengan Asal. Hasil yang
didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi
Tujuan:=Tujuan-Asal.
Contoh :
MOV AX,15 ; AX:=15
MOV BX,12 ; BX:=12
SUB AX,BX ; AX:=15-12=3
SUB AX,AX ; AX=0
Untuk menolkan suatu register bisa anda kurangkan dengan dirinya sendiri
seperti SUB AX,AX.
• SBB
Seperti pada operasi penambahan, maka pada operasi pengurangan dengan
bilangan yang besar(lebih dari 16 bit), bisa anda gunakan perintah SUB disertai
dengan SBB(Substract With Carry). Perintah SBB digunakan dengan syntax:
SBB Tujuan,Asal
Perintah SBB akan mengurangkan nilai Tujuan dengan Asal dengan cara yang
sama seperti perintah SUB, kemudian hasil yang didapat dikurangi lagi dengan Carry
Flag(Tujuan:=Tujuan-Asal-CF).
Perintah EQU digunakan untuk mendefisisikan suatu yang constan(Tetap),
data yang telah didefinisikan dengan perintah EQU tidak dapat dirubah. Dengan
perintah EQU kita mendefinisikan bahwa ALo = 0EFFF, AHi=122, BLo=FFFF dan
BHi=0FE. Untuk menampung hasil dari pengurangan A-B(122EFFF-FEFFF)
nantinya, kita definisikan suatu tempat untuk menyimpannya dengan nama HslLo dan
HslHi. Tanda '?' digunakan untuk menyatakan bahwa tempat yang kita pesan sebanyak
sebanyak 1 word(DW) tidak diberikan data awal yang akan terdapat pada varibel
tersebut(HslLo dan HslHi). Jadi data yang akan terdapat pada HslLo dan HslHi bisa
apa saja dan kita tidak mengetahuinya. Tempat data program kita lompati dengan
perintah JMP supaya komputer tidak mengeksekusi data program sebagai perintah.
MOV AX,ALo
SUB AX,Blo
MOV HslLO,AX
Untuk mengurangkan angka 122EFFF dengan 0FEFFFF kita dapat
mengurangkan word rendah dari angka tersebut dahulu, yaitu EFFF- FFFF. Hal ini
dikarenakan daya tampung register yang hanya 16 bit. Dapat anda lihat bahwa
pengurangan EFFF-FFFF akan menyebabkan terjadinya peminjaman(Borrow), hasil
word rendah(F000) yang didapatkan kemudian kita simpan pada variabel HslLo.
122 EFFF
FE FFFF
------------- -
023 F000
Sampai saat ini kita sudah selesai mendapatkan nilai pada word rendahnya,
yang disimpan pada variabel HslLo.
MOV AX,AHi
SBB AX,BHi
MOV HslHi,AX
Langkah selanjutnya adalah menghitung word tingginya yaitu pengurangan
122-FE-Carry dengan menggunakan perintah SBB maka masalah tersebut dengan
mudah terpecahkan. Akhirnya kita akan mendapatkan hasil pengurangan dari
122EFFF-0FEFFFF yaitu 23F000 yang tersimpan pada pasangan
HslHi:HslLo(0023F000).
• DEC
Perintah DEC(Decrement) digunakan khusus untuk pengurangan dengan 1.
Perintah DEC hanya menggunakan 1 byte memory, sedangkan perintah SUB dan SBB
menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi pengurangan
dengan 1 gunakanlah perintah DEC. Syntax pemakaian perintah dec ini adalah:
DEC Tujuan
Nilai pada tujuan akan dikurangi 1, tujuan disini dapat berupa suatu register
maupun memory. Contoh : perintah DEC AL akan mengurangi nilai di register AL
dengan 1.
3. Pembandingan (Comparison)
Pada dasarnya operasi pembandingan adalah operasi pengurangan tetapi tidak
mengubah isi lokasi memori atau register tujuan (yang berubah adalah bit – bit flag
register C, Z dan S). Operasi ini dijalankan dengan instruksi CMP. Biasanya instruksi ini
diikuti dengan instruksi lompatan bersyarat untuk menindaklanjuti hasil pembandingan
tersebut.
4. Perkalian (Multiplication)
Untuk perkalian bisa digunakan perintah MUL dengan syntax:
MUL Sumber
Sumber disini dapat berupa suatu register 8 bit(Mis:BL,BH,..), register 16 bit(Mis:
BX,DX,..) atau suatu varibel. Ada 2 kemungkinan yang akan terjadi pada perintah MUL
ini sesuai dengan jenis perkalian 8 bit atau 16 bit.
Bila Sumber merupakan 8 bit seperti MUL BH maka komputer akan mengambil nilai
yang terdapat pada BH dan nilai pada AL untuk dikalikan. Hasil yang didapat akan selalu
disimpan pada register AX. Bila sumber merupakan 16 bit seperti MUL BX maka
komputer akan mengambil nilai yang terdapat pada BX dan nilai pada AX untuk
dikalikan. Hasil yang didapat akan disimpan pada register DX dan AX(DX:AX), jadi
register DX menyimpan Word tingginya dan AX menyimpan Word rendahnya.
5. Pembagian (Division)
Operasi pada pembagian pada dasarnya sama dengan perkalian. Untuk operasi
pembagian digunakan perintah DIV dengan syntax:
DIV Sumber
Bila sumber merupakan operand 8 bit seperti DIV BH, maka komputer akan
mengambil nilai pada register AX dan membaginya dengan nilai BH. Hasil pembagian 8
bit ini akan disimpan pada register AL dan sisa dari pembagian akan disimpan pada
register AH.
Bila sumber merupakan operand 16 bit seperti DIV BX, maka komputer akan
mengambil nilai yang terdapat pada register DX:AX dan membaginya dengan nilai BX.
Hasil pembagian 16 bit ini akan disimpan pada register AX dan sisa dari pembagian akan
disimpan pada register DX.

G. Kesimpulan
1. Penjumlahan (Addition)

a. Instruksi ADD -> ADD reg1, reg2 atau ADD reg, [alamat]
Hasil penjumlahan disimpan di reg1.
b. Instruksi INC -> INC reg atau INC [alamat]
Data pada reg atau [alamat] bertambah 1
c. Instruksi ADC -> ADC reg1, reg2 atau ADC reg, [alamat]
Penjumlahan biasa yang hasilnya ditambah dengan bit carry. Hasilnya disimpan di
reg1.

2. Pengurangan (Subtraction)
a. Instruksi SUB -> SUB reg1, reg2 atau SUB reg, [alamat]
Hasil pengurangan disimpan di reg1
b. Instruksi DEC -> DEC reg atau DEC [alamat]
Data pada reg atau [alamat] akan bertambah 1
c. Instruksi SBB -> SBB reg1, reg2 atau SUB [alamat], reg
Pengurangan biasa yang hasilnya dikurangi dengan bit carry. Hasilnya disimpan
di reg1 atau [alamat].

3. Pembandingan (CMP / Comparison)


Instruksi CMP -> CMP reg1, reg2 atau CMP reg, data
Membandingan isi reg1 dengan reg2 atau data

4. Perkalian (Multiplication)
Instruksi MUL -> MUL reg atau MUL [alamat]
Perkalian antara AL (8 bit) atau AX (16 bit) dengan isi reg atau [alamat], hasilnya
disimpan di AX (8 bit) atau DX-AX (16 bit).

5. Pembagian (Division)
a. Pembagian 8 bit -> DIV reg atau DIV [alamat]
Pembagian dividen (disimpan di AX) dengan divisor (reg 8 bit) atau data pada
lokasi memori, hasilnya disimpan di AL sisanya di AH.
b. Pembagian 16 bit -> DIV reg (16 bit) atau DIV [alamat]
Pembagian dividen (disimpan di DX-AX) dengan divisor (reg 16 bit) atau data
pada lokasi memori, hasilnya disimpan di AX sisanya di DX

H. DAFTAR PUSTAKA
1. Simanjuntak, S. V. Henri. 2001. Dasar-Dasar Mikroprosesor. Yogyakarta: Kanisius
2. http/:google.com dengan kata kunci : operasi aritmatika (bahasa assembly)

You might also like