; disimp disimpan an di AH AD D
BX,100h ; men menjuml umlahka hkan isi reg regis istter BX deng denga an 100h, 100h, hasi hasiln lnya ya ; disimpan di registe registerr C X
Penjumlahan Memori – Register ( memory-register addition) Penjumlahan Penjumlahan memori–regi memori–register ster (memory-register memory-register addition) terjadi antara data suatu lokasi lokasi memori memori (asal) (asal) ke suatu suatu regist register er (tujuan (tujuan)) atau atau sebali sebalikny knya. a. Hasil Hasil penjum penjumlah lahan an disimpan di register tujuan tersebut. Sintaks : ADD reg , [alamat] [alamat] ADD [alamat] , reg
Contoh :
AD D
AH, [AL]
; isi reg egis istter AH diju dijum mlahkan deng nga an data pada loka lokasi si ; memori memori beral beralam amat at[DSx [D Sx10h+ 10h+A A L], hasilnya disimpan ; di regi regist ster erA H
AD D
[AL], [AL], AH
; data pada loka lokasi si memori beralamat [DSx10 [DSx10h+AL] h+AL] ; dijumlahkan dijumlahkan dengan dengan isi register A H, hasilnya disimpan ; memori memori ter terse sebu butt
AD D
A H, VA R1 ; isi reg egis istter AH diju dijum mlahkan deng nga an vari varia abel VA R1 ; (sebuah datadi lokasi memori memori yang diwakili oleh ; V A R 1) dan hasilnya disimpan di regist register erA H
INC (increment) Increment Increment (penambahan (penambahan 1) menyebabka menyebabkan n data pada suatu lokasi memori atau suatu register bertambah 1. Sintaks : INC reg INC INC [ala [alama mat] t]
Contoh :
IN C
DL
; isi register D L di ditambah 1
INC
[SI] [SI]
; isi isi loka okasi memori beralamat[DSx10 [DSx10h+ h+SI SI]] di ditambah 1
INC INC
VAR2 VAR 2
; isi VAR2 ditambah 1
ADC (add with carry) ADC (add dasarnya similar similar (mirip) (mirip) dengan dengan penjumlahan penjumlahan biasa (add with with carry carry)pada dasarnya (ADD). Bedanya, pad operasi ADC, bit carry (C) turut dijumlahkan. Sintaksnya juga mirip dengan operasi ADD (ADD diganti dengan ADC). Contoh :
ADC
AH, [AL] [AL]
; AH = AH + AL + ca carry, hasilnya disim simpan di register ; AH
ADC
BX, DX
; BX = BX + DX + ca carry, hasilnya disimpan di register ; BX
ADC AD C
[DI], [DI], CH
; menjumlahk hka an data pad pada loka lokasi si memori beralamat ; [DSx1 [D Sx10h+A 0h+A L] denga dengan n isi regist register erCH dan dan bit carry carry ; hasilnya disimpan di lokasi memori itu sendiri
2. Pengu ngurang rangan an (Substraction)
Mode pengalamatan yang terjadi pada operasi pengurangan mencakup hampir semua mode mode pengal pengalamat amatan an yang yang ada, ada, kecual kecualii pengur pengurang angan an dari dari memori memori ke memori memori dan dari 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) Penguranga Pengurangan n Register Register (register merupakan pengurangan pengurangan data pada (register substraction) substraction) merupakan suatu register asal oleh isi register tujuan. Hasil pengurangan ini disimpan di register tujuan. Sintaks : SUB reg_tujuan,reg_asal Contoh :
SUB
BL,CL
; meng ngu urangka gkan isi regis gister BL dan CL, has hasil ilny nya a disi disim mpan di ; regist register erBL
SUB
CX,BX
; meng ngu urangka gkan isi regis gister CX dan BX, hasi hasiln lnya ya disi disimp mpa an ; di regi regist ster erC X
Pengurangan Dengan Data Langsung ( immediate substraction) Pengurangan dengan data langsung ( immediate substraction) adalah pengurangan yang terjadi antara isi suatu register register dengan dengan suatu data (mentah). (mentah). Hasilnya Hasilnya disimpan disimpan di register tersebut. Sintaks : SUB reg , data Contoh :
SUB
AH,80h AH,80h
; meng ngu urangka gkan isi reg egis istter AH deng nga an 80h 80h, hasi hasiln lnya ya ; disimp disimpan an di AH
SUB
BX,100h ; meng mengur ura angka ngkan n isi regis egistter BX deng denga an 100h 100h,, hasi hasiln lnya ya ; disimpan di registe registerr C X
Pengurangan Memori – Register ( memory-register substraction) Penguranga Pengurangan n memori–regi memori–register ster (memory-register terjadi antara antara data data memory-register substraction) substraction) terjadi suatu lokasi memori (asal) ke suatu register (tujuan) atau sebaliknya. Hasil pengurangan disimpan di register tujuan tersebut. Sintaks : SUB reg , [alamat] SUB [alamat] , reg reg
Contoh :
SUB
AH, [AL]
; meng ngur ura angka gkan isi isi re regis gister AH deng nga an dat data pada loka lokasi si ; memori memori beral beralam amat at[DSx [D Sx10h+ 10h+A A L], hasilnya disimpan ; di regi regist ster erA H
SUB
[AL], AH
; meng ngur ura angka gkan data pad pada loka lokasi si memori beralamat ; [DSx1 [D Sx10h+A 0h+A L]dengan isi regist register erAH AH,, hasilnya hasilnya disimpan disimpan ; memori memori ter terse sebu butt
SUB
AH, VA R1 ; meng ngur ura angka gkan isi isi re regis gister AH deng nga an vari varia abel VA R1 ; (sebuah datadi lokasi memori memori yang diwakili oleh ; V A R 1) dan hasilnya disimpan di regist register erA H
DEC (Decrement) Increment (pengurangan 1) merupakan kebalikan dari increment, yang menyebabkan data pada suatu lokasi memori atau suatu register berkurang 1. Sintaks : DECreg DEC [alamat] [alamat]
Contoh :
DEC
DL
; isi register D L di dikurangi 1
DEC
[SI] [SI]
; isi isi loka okasi memori beralamat[DSx10 [DSx10h+ h+SI SI]] di dikurangi 1
DEC DEC
VAR2 VAR 2
; isi VAR VAR2 2 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] [AL]
; AH = AH – AL – carry, hasilnya disimpan di register ; AH
SBB SBB
BX, BX, DX
; BX = BX – DX – car carry, hasilnya disimpan di register
; BX SBB
[DI], [DI], CH
; data pada loka lokasi si memori beralamat [DSx10 [DSx10h+AL] h+AL] ; dikurangkan dengan dengan isi register register CH dan bit carry, ; hasilnya disimpan di lokasi memori itu sendiri
3. Pemba mband ndin ing gan (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 CMP reg, reg,[a [ala lama mat] t] CMP CMP [ala [alama mat] t],r ,reg eg
Contah :
CMP
DL, DL, BL BL
; DL = DL – BL, tanpa mengubah isi DL ma maupun BL
CMP
BX, [SI] [SI]
; isi isi re register BX dikurangi dengan isi isi lok loka asi memori ; berala beralama matt [DI:S [D I:SI] I] tanpa tanpa menguba mengubah h isi B X maupun maupun ; isi memori memori ters terseb ebut ut
CMP
[BP], [BP], AX
; isi loka lokasi si memori beralamat[SS:BP] [SS:BP] dik dikur ura ang ngii deng nga an ; isi register registerA X tanp tanpa a mengub mengubah ah isi A X maupun maupun isi ; memori memori ter terse sebu butt
Oleh karena itu pembandingan pembandingan pada dasarnya dasarnya adalah operasi pengurangan, pengurangan, bila bilangan 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/ IMUL (untuk (untuk bilang bilangan an intege integer). r). Perkal Perkalian ian dapat dapat dilaku dilakukan kan untuk untuk unsigned number ) dan IMUL bilangan 8-bit, 16-bit, dan 32-bit.
Perkalian 8-bit Adalah Adalah perkalian perkalian antara sebuah multiplicand multiplicand (bilangan (bilangan yang akan dikalikan, dikalikan, yang tersim tersimpan pan di regist register er AL) dengan dengan sebuah sebuah multip multipler ler (bilan (bilangan gan pengal pengali, i, yang yang dapat dapat
merupakan isi dari sebuah register 8-bit, atau data pada lokasi memori tertentu, atau sebu sebuah ah varia variabe bel) l).. Hasi Hasill perk perkal alia ian n ini ini disi disimp mpan an di regis registe terr AX (perk (perkal alian ian 8-bi 8-bitt menghasilkan bilangan 16-bit). Sintaks : MUL reg MUL [alamat]
Contoh :
DEC
DL
; isi isi register A L dik dikalika ikan dengan isi isi register DL, hasilnya ; disimpan di registe registerr A X
DEC
VAR 1
; isi isi re regist ister A L dik dikalik likan dengan VA R1, ha hasil silnya nya disi disim mpan ; di regi regist ster erA X
Perkalian 8-bit Adalah Adalah perkalian perkalian antara sebuah multiplicand multiplicand (bilangan (bilangan yang akan dikalikan, dikalikan, yang tersim tersimpan pan di regist register er AX) dengan dengan sebuah sebuah multip multipler ler (bilan (bilangan gan pengal pengali, i, yang yang dapat dapat merupakan isi dari sebuah register 16-bit, atau data pada lokasi memori tertentu, atau sebuah sebuah variab variabel). el). Hasil Hasil perkal perkalian ian ini disimp disimpan an di regist register er DX-AX DX-AX (perka (perkalia lian n 16-bit 16-bit menghasilkan bilangan 32-bit). Sintaks : MUL reg MUL [alamat]
Contoh :
DEC
BX
; isi re register AX dikalikan dengan isi register BX, ha hasilnya ; disimpa disimpan n di regi regist ster erD X- A X
DEC
VAR 2
; isi isi re regist ister AX dik dikalik alika an dengan VAR 2, ha hasil silnya nya disi disim mpan ; di reg regis istter DX - AX
5. Pemba mbagian (Division)
Instruksi yang digunakan untuk pembagian ini adalah DIV (untuk bilangan tidak bertanda/ (untuk bilangan bilangan integer). Pembagian dapat dilakukan dilakukan untuk unsigned number ) dan IDIV (untuk bilangan bilangan 8-bit(bilan 8-bit(bilangan gan yang dibagi 16-bit 16-bit dan pembaginy pembaginyaa 8-bit), 8-bit), 16-bit(bila 16-bit(bilangan ngan yang dibagi dibagi 32-bit 32-bit dan pembag pembaginy inyaa 16-bit 16-bit), ),
dan 32-bit 32-bit (bilangan (bilangan yang yang dibagi dibagi 64-bit 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 DIV
reg [alamat]
Contoh :
DIV
DL
; isi register AX dibagi dengan isi register DL, hasilnya ; disimpan di register register A L dan sisanya di register register A H
DIV
VAR1
; isi isi re register A L dibagi dengan VAR1, ha hasilny ilnya a disim simpan ; di registe registerr A L dan sisanya di registe registerr A H
Pembagian 16-bit Adalah Adalah pembag pembagian ian antara antara sebuah sebuah divide dividend nd (bilan (bilangan gan yang yang akan akan dikali dikalikan kan,, yang 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 DIV
reg [alamat]
Contoh :
DIV
BX
; isi register DX- AX dibagi dengan isi register BX, hasilnya ; disimpan di register register A X dan sisanya di register register D X
DIV
VAR2
; isi register DX- AX dibagi dengan VAR2, hasilnya ; disimpan register register A X dan sisanya di register register D X
C. Alat dan Bahan •
1 Perangkat komputer
•
Buku penunjang (Dasar-dasar Mikroprosessor)
D. Langkah Kerja
1. Persiapkan Persiapkan buku-b buku-buku uku yang yang menunjan menunjang g praktek praktek perpinda perpindahan han data data 2. Pastikan Pastikan komputer komputer dapat dapat beroperas beroperasii dengan dengan baik dan dan menunjang menunjang praktek praktek 3. Jalank Jalankan an aplika aplikasi si Comman Command d Prompt. Prompt. Klik Klik Start Start accessoriescommand prompt 4.
Microso Microsoft ft Window Windowss XP [Versi [Version on 5.1.2 5.1.2600 600]] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\>
5. Operasikan Operasikan sesuai sesuai dengan dengan perintah perintah dosen dosen pembimbing pembimbing.. Berikut Berikut sintaks yang yang diperintahkan oleh dosen pembimbing.
6. Catatlah Catatlah hasil hasil praktek praktek setelah setelah melakukan melakukan percobaan. 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 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 20 -d200 0AFB:0200 00 05 75 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 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 20 -d200 0AFB:0200 00 00 75 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 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 74 Q..........F...t 0AFB:0360 0D E8 45 00 AC E8 41 00-81 CD 00 40 EB 34 3C 0D
[email protected]<. 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 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 74 Q..........F...t 0AFB:0360 0D E8 45 00 AC E8 41 00-81 CD 00 40 EB 34 3C 0D
[email protected]<. 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 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 -t
MOV
DL,02
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 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 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 75 1D 3C 20 74 F6-3C 09 74 F2 86 06 36 99 ..u.< t.<.t...6.
0AFB:0210 0AFB:0220 0AFB:0230 0AFB:0240 0AFB:0250 0AFB:0260 0AFB:0270 -t
0A C0 74 EA F6 C7 80 74-05 C6 06 61 97 01 E9 2D ..t....t...a...01 3A C3 75 05 80 CF 80-EB D4 3C 0D 75 03 E9 18 .:.u......<.u... 01 3A 06 02 96 75 03 E9-17 01 B2 3A 38 14 75 1D .:...u.....:8.u. 80 3E F0 97 01 75 03 E8-23 E1 E8 5C 01 AC E8 58 .>...u..#..\...X 01 89 3E 32 99 C6 06 34-99 00 E9 B3 00 89 3E 32 ..>2...4......>2 99 C6 06 34 99 00 80 3E-F0 97 01 75 1D E8 8F E3 ...4...>...u.... 75 18 50 A0 12 96 04 41-E8 2E 01 B0 3A E8 29 01 u.P....A....:.).
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. Penj Penjum umla laha han n (Addi (Additi tion on)) •
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 didapa didapatt akan akan ditaru ditaruh h pada pada Tujuan Tujuan,, dalam dalam bahasa bahasa pascal pascal sama sama dengan dengan instru instruksi ksi Tujuan:=Tujuan + Asal. Sebagai contohnya :
MOV AH,15h MOV AL,4
; AH:=15h
; AL:=4
ADD AH,AL ; AH:=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 Bila Tujuan Tujuan tempat tempat hasil hasil penjum penjumlah lahan an disimp disimpan an tidak tidak mencuk mencukupi upi seperti seperti pertambahan 1234h dengan F221h. 1234 h F221 h ---------- + 10455 h
Biner → Biner →
0001 0010 0011 0100 1111 0010 0010 0001 --------------------------- + 10000 0100 0101 0101
Pada Pada pertam pertambah bahan an diatas diatas dapat dapat diliha dilihatt bahwa bahwa pertam pertambah bahan an bilang bilangan an 1234 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. Operas Operasii pertam pertambah bahan an yang yang demiki demikian an akan akan menjadi menjadikan kan carry carry flag flag menjad menjadii satu, satu, Contoh: MOV AX,1234h AX,1234h ; NIlai AX:=1234h AX:=1234h dan carry=0 MOV BX,0F221h ADD AX,BX •
; Nilai BX:=F221h dan carry=0
; Nilai AX menjadi 0455h dan carry=1
ADC
Perintah ADC digunakan dengan cara yang sama pada perintah ADD, yaitu : ADC Tujuan,Asal
Perb Perbed edaan aanny nyaa pada pada perin perinta tah h ADC ADC ini ini Tuju Tujuan an temp tempat at menam menampu pung ng hasi hasill pertambahan
Tujuan
dan
Asal
ditambah
lagi
dengan
carry
flag
(Tujuan (Tujuan:=T :=Tuju ujuan+ an+Asa Asal+C l+Carry arry). ). Pertam Pertambah bahan an yang yang demiki demikian an bisa bisa memecah memecahkan kan masalah masalah sepert sepertii yang yang pernah pernah dikemu dikemukak kakan, an, sepert sepertii pertam pertambah bahan an pada pada bilang bilangan an 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 9ABCh CF = 0 MOV CX,5678h
; BX = 5678h CF = 0
MOV DX,0DEF0 DX,0DEF0h h ; DX = DEF0h CF 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
Perint Perintah ah INC(In INC(Increm crement ent)) diguna digunakan kan khusus khusus untuk untuk pertam pertambah bahan an dengan dengan 1. Perint Perintah ah INC hanya hanya menggu menggunak nakan an 1 byte byte memory memory,, sedang sedangkan kan perint perintah ah ADD dan ADC ADC meng menggu guna naka kan n 3 byte. byte. Oleh Oleh seba sebab b itu itu bila bila anda anda ingi ingin n mela melaku kuka kan n oper operas asii 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. Pengu engurranga ngan (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 didapa didapatt akan akan ditaru ditaruh h pada pada Tujuan Tujuan,, dalam dalam bahasa bahasa pascal pascal sama sama dengan dengan instru instruksi ksi 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 Seperti pada operasi penambahan penambahan,, maka pada operasi operasi pengurangan pengurangan dengan bilan bilangan gan yang yang besar(l besar(lebi ebih h dari dari 16 bit), bit), bisa bisa anda anda gunaka gunakan n perint perintah ah SUB diserta disertaii 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 Perintah EQU digunakan digunakan untuk mendefisis mendefisisikan ikan suatu yang constan(Te constan(Tetap), tap), data data yang yang telah telah didefin didefinisi isikan kan dengan dengan perint perintah ah EQU EQU tidak tidak dapat dapat dirub dirubah. ah. Dengan Dengan perintah EQU kita mendefinisikan bahwa ALo = 0EFFF, AHi=122, BLo=FFFF dan BHi= BHi=0F 0FE. E. Untu Untuk k menam menampu pung ng hasi hasill dari dari peng pengur uran anga gan n A-B( A-B(12 122E 2EFF FFFF-FE FEFF FFF) F) 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
Untu Untuk k
meng mengur uran angk gkan an
angk angkaa
122E 122EFF FFF F
deng dengan an 0FEF 0FEFFF FFF F
kita kita
dapa dapatt
mengurangkan word rendah dari angka tersebut dahulu, yaitu EFFF- FFFF. Hal ini dikaren dikarenaka akan n daya daya tampun tampung g regist register er yang yang hanya hanya 16 bit. bit. Dapat Dapat anda anda lihat lihat bahwa 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 Langkah selanjutny selanjutnyaa adalah menghitung menghitung word tingginya tingginya yaitu pengurangan pengurangan 122-FE-Car 122-FE-Carry ry dengan dengan menggunak menggunakan an perintah perintah SBB maka masalah tersebut tersebut dengan dengan muda mudah h terp terpec ecah ahka kan. n. Akhi Akhirny rnyaa kita kita akan akan mend mendapa apatk tkan an hasi hasill peng pengur uran anga gan n dari dari 122EFFF-0FEFFFF
yaitu
HslHi:HslLo(0023F000). •
DEC
23F000
yang
tersimpan
pada
pasangan
Perintah Perintah DEC(Decremen DEC(Decrement) t) digunakan digunakan khusus khusus untuk untuk pengurang pengurangan an dengan 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. Pemba emband ndin inga gan n (Comparison)
Pada Pada dasa dasarn rnya ya opera operasi si pemb pemban andi ding ngan an adal adalah ah oper operas asii peng pengur uran anga gan n teta tetapi pi tida tidak k 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 disimp disimpan an pada pada regist register er AX. Bila sumbe sumberr merupa merupakan kan 16 bit seperti seperti MUL BX maka komp komput uter er akan akan meng mengam ambil bil nilai nilai yang terd terdap apat at pada pada BX dan dan nila nilaii pada pada AX untu untuk k 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)
Operas Operasii pada pada pembag pembagian ian pada pada dasarny dasarnyaa sama sama dengan dengan perkal perkalian ian.. Untuk Untuk operas operasii pembagian digunakan perintah DIV dengan syntax: DIV Sumber
Bila sumber merupa merupakan kan operan operand d 8 bit sepert sepertii DIV maka komp komput uter er akan akan DIV BH, maka 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 merupa merupakan kan operan operand d 16 bit sepert sepertii DIV BX, maka maka komp komput uter er akan 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. Penj Penjum umla laha han n (Add (Addit itio ion) n) a. Instru Instruksi ksi ADD
-> ADD reg1, reg1, reg2 reg2
atau atau
ADD reg, reg, [alamat [alamat]]
Hasil penjumlahan disimpan di reg1. b. Instru Instruksi ksi INC
->
INC reg
atau atau
INC [alamat [alamat]]
Data pada reg atau [alamat] bertambah 1 c. Instruksi Instruksi ADC -> ADC reg1, reg2 atau
ADC reg, [alamat] [alamat]
Penjumlahan biasa yang hasilnya ditambah dengan bit carry. Hasilnya disimpan di reg1.
2. Peng Pengur uran anga gan n (Sub (Subtr tract actio ion) n) a. Instruksi Instruksi SUB
-> SUB reg1, reg2
atau
SUB reg, [alamat] [alamat]
Hasil pengurangan disimpan di reg1 b. Instru Instruksi ksi DEC
->
DEC reg
atau atau DEC [alamat [alamat]]
Data pada pada reg atau [alamat] akan bertambah 1 c. Instru Instruksi ksi SBB
->
SBB SBB reg1, reg1, reg2 reg2 atau atau SUB [alamat [alamat], ], reg
Pengurangan Pengurangan biasa yang hasilnya hasilnya dikurangi dikurangi dengan bit carry. carry. Hasilnya Hasilnya disimpan di reg1 atau [alamat].
3. Pemban Pembandin dingan gan (CMP (CMP / Compar Compariso ison) n) Instruksi CMP
-> CMP reg1, reg2 atau CMP reg, data
Membandingan isi reg1 dengan reg2 atau data
4. Perk Perkali alian an (Multi (Multipl plic icati ation on)) Instruksi MUL
-> MUL reg
atau MUL MUL [alamat]
Perkalian antara AL (8 bit) atau AX (16 bit) dengan isi reg atau [alamat], hasilnya disimpan di AX (8 bit) bit) atau DX-AX (16 bit).
5. Pemb Pembag agia ian n (Divi (Divisi sion on))
a. Pembag Pembagian ian 8 bit -> DIV
reg
atau
DIV [alamat [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 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. Simanju Simanjunta ntak, k, S. V. V. Henr Henri. i. 2001 2001.. Dasar-Dasar Mikroprosesor . Yogyakarta: Kanisius 2. http/:goog http/:google.com le.com dengan dengan kata kata kunci kunci : operasi operasi aritmatika aritmatika (bahasa (bahasa assembl assembly) y)