TUGAS MIKROPROSESOR ARITMATIKA

16
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

Transcript of TUGAS MIKROPROSESOR ARITMATIKA

Page 1: TUGAS MIKROPROSESOR ARITMATIKA

OPERASI ARITMATIKA

A. PENJUMLAHAN (ADD)1. Contoh permasalahan penjumlahan yang melibat carry yang membutuhkan

instruksi ADC dan INC adalah : 2000 + 2200= 4200

Programnya:a 100mov ax, 2000mov dx, 2200adc al,dlDAAmov cl,almov al,ahadc al,dhDAAmov ch,alint 20

HASIL OPERASI PENJUMLAHAN-TAX=2000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0103 NV UP EI PL NZ NA PO NC13A1:0103 BA0022 MOV DX,2200-TAX=2000 BX=0000 CX=0000 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0106 NV UP EI PL NZ NA PO NC13A1:0106 10D0 ADC AL,DL-TAX=2000 BX=0000 CX=0000 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0108 NV UP EI PL ZR NA PE NC13A1:0108 27 DAA-TAX=2000 BX=0000 CX=0000 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0109 NV UP EI PL ZR NA PE NC13A1:0109 88C1 MOV CL,AL-TAX=2000 BX=0000 CX=0000 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000

Page 2: TUGAS MIKROPROSESOR ARITMATIKA

DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010B NV UP EI PL ZR NA PE NC13A1:010B 88E0 MOV AL,AH-TAX=2020 BX=0000 CX=0000 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010D NV UP EI PL ZR NA PE NC13A1:010D 10F0 ADC AL,DH-TAX=2042 BX=0000 CX=0000 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010F NV UP EI PL NZ NA PE NC13A1:010F 27 DAA-TAX=2042 BX=0000 CX=0000 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0110 NV UP EI PL NZ NA PE NC13A1:0110 88C5 MOV CH,AL-TAX=2042 BX=0000 CX=4200 DX=2200 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0112 NV UP EI PL NZ NA PE NC13A1:0112 CD20 INT 20

B. PENGURANGAN (SUB)1. Contoh permasalahan pengurangan(subtraction) yang melibat carry :

4000– 1000 = 3000Programnya:

a 100mov ax, 4000mov dx, 1000sub al,dlDASmov cl,almov al,ahSBB al,dhDASmov ch,alint 20

Page 3: TUGAS MIKROPROSESOR ARITMATIKA

HASIL OPERASI PENGURANGAN-T

AX=4000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0103 NV UP EI PL NZ NA PO NC13A1:0103 BA0010 MOV DX,1000-T

AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0106 NV UP EI PL NZ NA PO NC13A1:0106 28D0 SUB AL,DL-T

AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0108 NV UP EI PL ZR NA PE NC13A1:0108 2F DAS-T

AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0109 NV UP EI PL ZR NA PE NC13A1:0109 88C1 MOV CL,AL-T

AX=4000 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010B NV UP EI PL ZR NA PE NC13A1:010B 88E0 MOV AL,AH-T

AX=4040 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010D NV UP EI PL ZR NA PE NC13A1:010D 18F0 SBB AL,DH-T

Page 4: TUGAS MIKROPROSESOR ARITMATIKA

AX=4030 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010F NV UP EI PL NZ NA PE NC13A1:010F 2F DAS-T

AX=4030 BX=0000 CX=0000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0110 NV UP EI PL NZ NA PE NC13A1:0110 88C5 MOV CH,AL-T

AX=4030 BX=0000 CX=3000 DX=1000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0112 NV UP EI PL NZ NA PE NC13A1:0112 CD20 INT 20

C. PERKALIAN (MUL)1. Perdalam pemahaman tentang instruksi AAM dan buat kasus-kasus yang

melibatkan instruksi AAM.Programnya:

A100MOV AX,0003MOV BX,0003MUL BXAAMINT 20

HASIL OPERASI PERKALIAN-T

AX=0003 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0103 NV UP EI PL NZ NA PO NC13A1:0103 BB0300 MOV BX,0003-T

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

Page 5: TUGAS MIKROPROSESOR ARITMATIKA

Hasil LSW MUL BX

Hasil LSW MUL BX

DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0106 NV UP EI PL NZ NA PO NC13A1:0106 F7E3 MUL BX

-T

AX=0009 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0108 NV UP EI PL NZ NA PO NC13A1:0108 D40A AAM

-TAX=0009 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010A NV UP EI PL NZ NA PE NC13A1:010A CD20 INT 20

D. PEMBAGIAN ( DIV atau MOD)1. Perdalam pemahaman tentang instruksi AAD, dan buat kasus-kasus pembagian

yang melibatkan instruksi AADa100mov ah,04mov al,02 aadmov cl,8div clInt 20

HASIL OPERASI PEMBAGIAN-T

AX=0400 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0102 NV UP EI PL NZ NA PO NC13A1:0102 B002 MOV AL,02-T

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

Page 6: TUGAS MIKROPROSESOR ARITMATIKA

SISA Hasil BAGI

DIV,BX

Hasil BAGI DIV,BX

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

AX=002A BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0106 NV UP EI PL NZ NA PO NC13A1:0106 B108 MOV CL,08-T

AX=002A BX=0000 CX=0008 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=0108 NV UP EI PL NZ NA PO NC13A1:0108 F6F1 DIV CL

-TAX=0205 BX=0000 CX=0008 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13A1 ES=13A1 SS=13A1 CS=13A1 IP=010A NV UP EI PL NZ NA PO NC13A1:010A CD20 INT 20

Page 7: TUGAS MIKROPROSESOR ARITMATIKA

Hasil Perintah

ADD AX,BX

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 :

a100mov ax,91edmov bx,bf50mov [500],axadd ax,bxint 20

OPERASI ARITMATIKA :-tAX=91ED BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=1372 ES=1372 SS=1372 CS=1372 IP=0103 NV UP EI PL NZ NA PO NC1372:0103 BB50BF MOV BX,BF50-tAX=91ED BX=BF50 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=1372 ES=1372 SS=1372 CS=1372 IP=0106 NV UP EI PL NZ NA PO NC1372:0106 A30005 MOV [0500],AX DS:0500=0000-tAX=91ED BX=BF50 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=1372 ES=1372 SS=1372 CS=1372 IP=0109 NV UP EI PL NZ NA PO NC1372:0109 01D8 ADD AX,BX

-tAX=1513D BX=BF50 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=1372 ES=1372 SS=1372 CS=1372 IP=010B OV UP EI PL NZ NA PO CY1372:010B CD20 INT 20

Page 8: TUGAS MIKROPROSESOR ARITMATIKA

☺☻♥♦♣♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²

Hasil BCD

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

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 100mov ax,1250mov dx,375adc al,dlDAAmov cl,almov al,ahadc al,dhDAAmov ch,alint 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 100mov cx,100mov ah,2mov dl,00int 21inc dlloop 107int 20

Maka hasilnya adalah sebagai berikut :

Page 9: TUGAS MIKROPROSESOR ARITMATIKA

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 100mov cx,1amov ah,2mov dl,61int 21inc dlloop 107int 20Hasilnya adalah sebagai berikut:

abcdefghijklmnopqrstuvwxyz

Page 10: TUGAS MIKROPROSESOR ARITMATIKA

b. Menampilkan huruf abjad dari z-a

a 100mov cx,1amov ah,2mov dl,7aint 21dec dlloop 107int 20

Hasilnya adalah sebagai berikut:

c. Menampilkan huruf abjad dari Z-A

a 100mov cx,1amov ah,2mov dl,5aint 21dec dlloop 107int 20

Hasilnya adalah sebagai berikut:

d. Menampilkan angka 0-9

a 100mov cx,0amov ah,2mov dl,30int 21inc dlloop 107int 20

Hasilnya adalah sebagai berikut:

e. Menampilkan angka 9-0

a 100mov cx,0amov ah,2mov dl,39int 21dec dlloop 107int 20

zyxwvutsrqponmlkjihgfedcba

ZYXWVUTSRQPONMLKJIHGFEDCBA

0123456789

Page 11: TUGAS MIKROPROSESOR ARITMATIKA

Hasilnya adalah sebagai berikut:

f. Menampilkan huruf abjad dari K-Sa 100mov cx,09mov ah,2mov dl,4bint 21inc dlloop 107int 20

Hasilnya adalah sebagai berikut:

g. Menampilkan huruf abjad dari m-da 100mov cx,0amov ah,2mov dl,6dint 21dec dlloop 107int 20

Hasilnya adalah sebagai berikut:

6. Rakitlah program assembly di layar debug menampilkan hal-hal sbb:a. Menampilkan satu persatu huruf abjad dari a-z secara berurut

A200Push CXPush BPMov BP,500Mov CX,2000LOOP 0208Dec BPJNZ 0205POP CXPOP BPRET

A100Mov CX,DMov ah,2Mov dl,61Int 21Inc dlCALL 200LOOP 107

Int 20

9876543210

KLMNOPQRS

mlkjihgfed

Page 12: TUGAS MIKROPROSESOR ARITMATIKA

b. Menampilkan satu persatu angka dari 9-0 secara berurut

A200PUSH CXPUSH BPMOV BP,500MOV CX,2000LOOP 0208DEC BPJNZ 0205POP CXPOP BPRET

A100Mov cx,5Mov ah,2Mov dl,39Int 21Dec dlCALL 200LOOP 107Int 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

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

1380:0112 CD20 INT 20

a100

mov ax,1250

mov dx,375

sub al,dl

DAS

mov cl,al

mov al,ah

SBB al,dh

DAS

mov ch,al

int 20

Buktikan

lisaH:

Page 13: TUGAS MIKROPROSESOR ARITMATIKA

‘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 hasil yang kita ingin kan. Dan hasil juga diletakkan pada

register CX agar mudah dilihat hasilnya

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]

'