Nama Praktikan:
Hanif Mahfuzzalfi (191331047)
Nama Instruktur :
Ferry Satria, BSEE.,M.T.
. Rahmawati Hasanah,S.ST.,M.T.
V. DATA PERCOBAAN
1. Buat diagram alir dan program untuk mengurangkan 12 PASANG data biner bertanda 8bit
yang berada pada BM1 dan BM2. Simpan hasil pengurangan pada
BM3. Beri tanda ketika terjadi “Over Flow”.
.DATA
BM1 DB 93H, 77H, 6CH, 9AH, 0CCH, 44H, 6EH, 77H, 88H, 75H, 0, 64H
BM2 DB 3FH, 4CH, 6CH, 81H, 93H, 2AH, 4DH, 2EH, 35H, 0AAH, 95H, 99H
BM3 DB 12 DUP(0)
Flowchart :
START
SI ←0
AL ←0
AL ←0FFH
AL ←AL-[BM2+SI]
AL ←AL+1
AL ←AL+[BM1+SI]
[BM3+SI] ←AL
Y
0F=1
[BM4+SI] ←0FFH
SI ←SI+1
SI:12
Y
Z=0
END
Program :
Hasil :
2. Buat diagram alir dan program untuk mengurangkan 10 PASANG data biner bertanda
16bit yang berada pada BM1 dan BM2. Simpan hasil pengurangan pada
BM3. Beri tanda ketika terjadi “Over Flow”.
.DATA
BM1 DW 9343H, 7877H, 6AECH, 99DAH, 0C43CH, 44DEH, 645EH, 7917H, 8888H,
7899H
BM2 DW 3AAFH, 4B5CH, 68CCH, 8441H, 0ACE3H, 2CFAH, 471DH, 200EH,4567H,
0ABC6H
BM3 DW 9 DUP(0)
Flowchart :
START
SI ←0
AX ←0
AX ←0FFFFH
AX ←AX-[BM2+SI]
AX ←AX+1
AX ←AX+[BM1+SI]
[BM3+SI] ←AX
Y
0F=1
[BM4+SI] ←0FFFFH
SI ←SI+1
SI:20
Y
Z=0
END
Program :
Hasil :
3. Buat diagram alir dan program untuk mengurangkan data biner Bertanda 32bit yang
berada pada BM1 dan BM2. Simpan hasil pengurangan pada BM3. Beri tanda ketika
terjadi “Over Flow”.
BM1 78903456H, F56BC832H, 87654321H, 0H, 22117755H
BM2 7FFFFFFFH, 9876655AH, 55667788H, 12345678H, 22117755H
BM3 0, 0, 0, 0, 0
Flowchart :
START
SI ←0
BX←0
CX←0
DX←0
BX←0FFFFH
BX←BX-[BM2+SI]
BX←BX+1
BX←BX+[BM1+SI]
[BM3+SI]←BX
SI←SI+2
CX←CX+[BM+SI]+CF
DX←0FFFFH
DX←DX-[BM2+SI]
CX←CX+DX
[BM3+SI]←CX
Y
0F=1
[BM4+SI] ←0FFFFH
SI ←SI+1
SI:20
Y
Z=0
END
Program :
Hasil :
4. Buat diagram alir dan program untuk mengurangkan data biner bertanda 48bit berikut:
0C8769758A3C7H–853164E5AA7CH. Simpan hasil pengurangan pada unit memori
48bit.
Flowchart :
START
SI ←0
BX←0
CX←0
DX←0
BX←0FFFFH
BX←BX-[BM2+SI]
BX←BX+1
BX←BX+[BM1+SI]
[BM3+SI]←BX
SI←SI+2
CX←CX+[BM+SI]+CF
DX←0FFFFH
DX←DX-[BM2+SI]
CX←CX+DX
[BM3+SI]←CX
Y
0F=1
SI:4
Y
Z=0
[BM4+SI] ←0FFFFH
SI:4
T
Z=0
END
Program :
Hasil :
5. Buat diagram alir dan program untuk mengurangkan data biner 64bit bertanda berikut:
9E45C8769758A3C7H–2BC4853164E5AA7CH.
Simpan hasil pengurangan pada unit memori 64bit.
Flowchart :
START
SI ←0
BX←0
CX←0
DX←0
BX←0FFFFH
BX←BX-[BM2+SI]
BX←BX+1
BX←BX+[BM1+SI]
[BM3+SI]←BX
SI←SI+2
CX←CX+[BM+SI]+CF
DX←0FFFFH
DX←DX-[BM2+SI]
CX←CX+DX
[BM3+SI]←CX
SI←SI+2
CX←CX+[BM+SI]+CF
DX←0FFFFH
DX←DX-[BM2+SI]
CX←CX+DX
[BM3+SI]←CX
Y
0F=1
SI:6
Y
Z=0
[BM4+SI] ←0FFFFH
SI:6
T
Z=0
END
Program :
Hasil :
VI. ANALISIS
Pada praktikum kali ini yaitu membuat program Assembly pengurangan
menggunakan LOOP. Overflow adalah saat memory tidak bisa menampung hasil
pengurangan sehingga data yang di tamplkan salah karena kekurangan tempat. Bilangan
desimal disebutg negatif saat digit pertamanya lebih dari 7 dan disebut positif jika kurang
dari 7 atau sama dengan 7, hasil dari pengurangan juga bisa overflow atau tidak overflow.
Sebuah data hasil pengurangan dikatakan overflow jika:
Jika hasil positif angka pertamanya tidak boleh lebih dari angka 7, jika lebih dari 7 maka
akan di katakan overflow karena terlalu positif.
Jika hasil negatif angka pertamanya tidak boleh lebih dari angka 8, jika lebih dari 8 maka
akan dikatakan overflow karena terlalu negatif.
Pada percobaan pertama yaitu membuat program untuk mengurangkan 12
PASANG data biner bertanda 8bit yang berada pada BM1 dan BM2. Simpan hasil
pengurangan pada BM3. Beri tanda ketika terjadi “Over Flow”.
.DATA
BM1 DB 93H, 77H, 6CH, 9AH, 0CCH, 44H, 6EH, 77H, 88H, 75H, 0, 64H
BM2 DB 3FH, 4CH, 6CH, 81H, 93H, 2AH, 4DH, 2EH, 35H, 0AAH, 95H, 99H
BM3 DB 12 DUP(0)
Untuk membuat programnya adalah merubah data pengurang menjadi komplemen 16,
jika data negatif maka diubah dengan cara FFH dikurangi data dan di tambah dengan 1
maka keluarannya adalah K’16. Namun jika data positif hanya tinggal menambah negatif
di depannya. Lalu data K’16 dari BM2 ini di tambahkan dengan data BM1, dikarenakan
A – B = A + (-B). Program di jalankan hingga semua data telah habis dengan
menggunakan parameter SI sebesar 12 karena data 2 digit kemudian di compare untuk
memberhentikan loop.
Pada percobaan kedua yaitu membuat program untuk mengurangkan 10 PASANG
data biner bertanda 16bit yang berada pada BM1 dan BM2. Simpan hasil pengurangan
pada BM3. Beri tanda ketika terjadi “Over Flow”.
.DATA
BM1 DW 9343H, 7877H, 6AECH, 99DAH, 0C43CH, 44DEH, 645EH, 7917H, 8888H,
7899H
BM2 DW 3AAFH, 4B5CH, 68CCH, 8441H, 0ACE3H, 2CFAH, 471DH, 200EH,4567H,
0ABC6H
BM3 DW 9 DUP(0)
Untuk program kedua ini tidak jauh berbeda dengan program pertama, yang membedakan
hanya pada jumlah data dan besar data, praktikum 2 ada 10 data masing masing dan 4
digit per-data. Program di buat dengan parameter SI sebesar 20 kemudian di compare
hingga data habis. Dari hasil praktikum dan perhitungan didapatkan data yang sama pada
data yang tidak overflow, sedangkan data hasil berbeda pada yang terjadi overflow
karena memori tidak bisa menampung semua data.
Pada percobaan ketiga yaitu membuat program untuk mengurangkan data biner
Bertanda 32bit yang berada pada BM1 dan BM2. Simpan hasil pengurangan pada BM3.
Beri tanda ketika terjadi “Over Flow”.
BM1 78903456H, F56BC832H, 87654321H, 0H, 22117755H
BM2 7FFFFFFFH, 9876655AH, 55667788H, 12345678H, 22117755H
BM3 0, 0, 0, 0, 0
Hal pertama yang dilakukan adalah melakukan perhitungan kepada masing masing data
lalu di dapat hasil overflow pada data ke 3. Lalu pembuatan program, karena data 32 bit
atau 8 digit dimana memori hanya bisa menampung 4 digit maka data di bagi menjadi 2.
Pada data pengurang BM2, data tersebut di ubah menjadi komplemen 16, lalu di tambahkan
dengan lowbit data yang di kurangi, setelah itu carry akan di tambahkan ke data high bit
pada BM1. Lanjut merubah data Highbit pengurang di BM2, namun sedikit berbeda karena
pada perubahan ke komplemen 16 tidak di tambah 1 Kemudian data high bit di tambahkan
dengan data highbit pada BM1. Simpan hasil pengurangan pada BM3 dan keterangan
overflow atau tidak pada BM4.
Pada percobaan keempat yaitu membuat program untuk mengurangkan data biner
bertanda 48bit berikut: 0C8769758A3C7H–853164E5AA7CH. Simpan hasil
pengurangan pada unit memori 48bit. Pada percobaan ini tidak jauh berbeda dengan
percobaan ketiga hanya saja yang berbeda hanya jumlah data dan besar datanya. Karena
besar data adalah 48bit atau 12 digit maka data harus di bagi masing masing menjadi 3
karen memori hanya bisa menampung 4 digit.
Pada percobaan terakhir yaitu membuat program untuk mengurangkan data biner
64bit bertanda berikut:
9E45C8769758A3C7H–2BC4853164E5AA7CH.
Simpan hasil pengurangan pada unit memori 64bit. Pada percobaan ini tidak jauh
berbeda dengan percobaan sebelumnya hanya saja yang berbeda hanya jumlah datanya
yang 64 bit sehingga perlu di tambah 4 digit lagi dan merubah parameter SI nya menjadi
6.
VII. KESIMPULAN
Dari praktikum kali ini dapat disimpulkan bahwa :
Jika bilangan hexa lebih dari 7 maka bilangan negatif dan ketika di ubah menjadi K16
maka data herus mengurangi F dan di tambahkan dengan 1 maka menghasilkan K16 dan
Jika bilangan hexa kurang atau sama dengan 7 maka bilangan positif dan jika ingin di
ubah ke K16 hanya dengan menambahkan negatif di depannya.
Overflow adalah keadaan saat memory tidak cukup untuk menyimpan hasil perhitungan.
Jika hasil pengukuran negatif angka pertamanya tidak boleh lebih dari angka 8, jika lebih
dari 8 maka akan dikatakan overflow karena terlalu negatif dan Jika hasil positif angka
pertamanya tidak boleh lebih dari angka 7, jika lebih dari 7 maka akan di katakan
overflow karena terlalu positif.