Morlan Pardede, MT
Perkalian dan Pembagian Bilangan Biner
PRAKTIKUM MIKROPROSESOR
PERKALIAN DAN PEMBAGAIAN BILANGAN BINER
DISUSUN OLEH :
LEMBAR PENGESAHAN
NO PERCOBAAN :03/MIKROPROSESOR/TK-4B/2021
JUDUL PERCOBAAN : PERKALIAN DAN PEMBAGIAN BINER
TANGGAL PERCOBAAN : 23 MARET 2021
TANGGAL PENYERAHAN : 30 MARET 2021
NAMA PRAKTIKAN : AGNES DEA KRISTINA MANALU
KELAS : TK4B
NIM :1905061034
INSTRUKTUR : 1. Ir.Morlan Pardede,MT
2. Daniel Saragih Napitu,ST,M.Kom
Mengetahui
Instruktur I Instruktur II
MODUL 3
PERKALIAN DAN PEMBAGAIAN BILANGAN BINER
A. TUJUAN
1. Membuat program perkalian dua bilangan biner
2. Membuat program pembagian bilangan biner
3. Membuat program perkalian Biner dengan sign-bit
B. Dasar Teori
1. Perkalian Biner
Perkalian bilangan dapat dilakukan dengan pegulangan menjumlahkan bilangan yang
dikali sebanyak pengali, menjumlahkan hasil kali bobot biner 1 dari pengali dengan bilangan
dikali. Sebagai contoh 6 x 10 maka bobot biner 1 pengali adalah 2 dan 8.
8 4 2 1 (Bobot)
10 = 1 0 1 0 2
12
48 +
60
Mengalikan bilangan dengan 2 dapat dilakukan dengan menggeser bilangan tersebut ke kiri
satu bit. Untuk mengalikan dengan 4 dilakukan dengan menggerser bilangan terssebut dua
kali, untuk mengali 8 dengan menggeser tiga kali. Untuk mengali dengan 10 dilakukan
dengan menjumlahkan hasil kali 8 dengan hasil kali 2.
Berikut ini merupakan program mengalikan isi register HL dengan 10.
Program 1. Program Kali 10.
Label: Mnemonic Komentar
Kali10: DAD H HL=HL x 2
MOV D,H Simpan hasil kali 2
MOV E,L
DAD H HL= HL dikali 4
Perkalian yang umum dilakukan adalah perkalian biner yaitu dengan cara mengeser dan
menjumlahkan. Bilangan pengali digeser 1 bit ke kanan dimana jika bit b0 sebelumnya (bit
Cy) logika 1 maka hasil dijumlahkan dengan bilangan dikali. Selanjutnya bilangan dikali
digerser 1 bit ke kiri dengan bit b0=0 seperti ditunjukkan gambar berikut:
PERKALIAN
Periksa Pengali
Ya
1001 (9) 00? Selesai
x 1101 (13) Tdk
1110101 (117)
Hasil=Hasil+ bil.dikali
penggeseran ke kiri satu bit dilakukan dengan proses menjumlahkan bilangan tersebut
dengan bilangan tersebut. Untuk itu isi registerDE harus dipertukarkan dengan HL.
Program 2. Perkalian Biner
;59H x 0DH=0485H
ORG 8500H
LXI D,0059H ;Set bil Dikali
MVI A,0DH ;Set bil Pengali
LXI H,0000 ;Clear Hasil
ULANG: ORA A ;Periksa bil. Pengali dan Cy=0
JZ SELESAI ;Selesai jika pengali =0
RAR ;Geser bil Pengali ke kanan dgn b7=0
JNC LMPT ;Lompat jika b0=0
DAD D ;Hasil=hasil+pengali
LMPT: XCHG ;Pengali digeser ke kiri
DAD H ;dengan operasi jumlah
XCHG
JMP ULANG ;Ulangi
SELESAI: HLT
Perkalian dgnTanda
Bil. Dikali Ya
Negatipkan Bil.Dikali
negatip
?
Tdk
Periksa Bil.Pengali
Ya
Pengali
Negatipkan Pengali
Negatip
?
Tdk
Kalikan
Hasil Kali
Ya
Negatip? Negatipkan Hasil
Tdk
Selesai
Tanda bilangan terdapat pada bit b7 dimana jika logika 1 berarti negatip dan jika logika 0
berarti positip. Untuk mendapatkan tanda hasil dapat dilakukan dengan melogik EX-OR
pengali dengan dikali dan memeriksa bit-7 dari hasil. Jika bit b7 logika 1 berarti negatip.
Pengecekan sign bit ini dapat dilakukan dengan perintah JP (Jump if Positip) atau JM (Jump
if minus). Berikut ini diberikan program perkalian biner isi register A dengan isi register E
dengan tanda dan hasilnya terdapat pada register HL.
Program 3. Perkalian dengan tanda
;Dalam BCD: 100 x-05 =-500
;64H x FBH=FE0CH
ORG 8100H
MVI A, 64H ; Set bil. Dikali 100
7-6 POLITEKNIK NEGERI MEDAN
Mikroprosesor Ir.Morlan Pardede, MT
Perkalian dan Pembagian Bilangan Biner
Catatan: Untuk melihat tanda hasil kali dilakukan dengan meng EX-Orkan pengali dengan
bil. Dikali. Sehingga jika bit b7 kedua bilangan sama maka bit b7 hasil akan 0 dan jika
berbeda bit b7 akan 1. Instruksi JP akan memeriksa bit b7 dimana jika logika 0 maka
program akan melompat. Saat operasi OR bit Cy akan logika 0 sehingga saat operasi RAR
dilakukan akan membuat bit b7 logika 0.
3. Pembagian Biner
Dengan menggeser register A ke kanan maka akan menghasilkan bilangan yang ada
pada register A tersebut dibagi dua dengan sisa bagi terdapat pada bit Cy.
Bagi4: ORA A ;Cy=0
RAR ;Geser ke kanan 1101
ORA A ;Cy=0
RAR ;Geser ke kanan 1001 1110101
1001
RET (1)
Operasi pembagaian di atas hanya berlaku jika 01011
1001
hasilnya bilangan bulat. Untuk pembagian biner (1)
00100
secara umum dilakukan dengan cara pembagian 1001 (0)
biner seperti ditunjukkan pada gambar berikut. 1001
1001 (1)
0
Gambar Proses pembagian biner
Pembagi
0001101 Bil.Dibagi
Set Counter=Banyak bit bil.Dibagi
Buffer
1001 0001 (1) 1110101
Bandingkan
1001 Clear Buffer
0011 Hasil=0
Bandingkan 1001
0111 Hasil=0 Geser Hasil ke kiri
Bandingkan
1001 dengan bit b0=0
1110 Hasil=0
Kurangkan
1001 - Geser bil. Dibagi ke kiri 1 bit
(bit MSB ke bit Cy)
Geser
0101 Hasil=1
1011
Geser buffer ke kiri 1 bit
Kurangkan
1001 - (bit MSB bil.dibagi ke bit b0 buffer)
Geser 0010
Hasil=1
Buffer=Buffer-Pembagi
Kurangi Counter
Tdk
0?
Ya
Selesai
C. Percobaan
PROGRAM 2
HASIL PROGRAM
ANALISA DATA
PROGRAM 3
Alamat Op-Code label Mnemonic Komentar
LOOP 1 LO LOO LOOP LO LO LO LO
OP P3 4 OP OP OP OP
2 5 6 7 8
8117 2F CMA
8118 3A INR A
P2 KALI
8121 7C MOVA,H A=
D1
8127 23 INX HL
812D B7 ULAN ORA A A=32 PC= PC= PC= PC= PC= PC= PC=
G 812 812E 812E 812 812 812E 812
E E E E
812E CA-3C- JZ BALIK PC= 8131 PC= PC= PC= PC= PC= PC=
81 813 8131 8131 813 813 8131
1 1 1
8136 EB ULG 1 XCHG E=00 E=0 PC= E=14 E=1 E=B E=F
L=05 0 8137 L=28 4 4 4
L=0 L=5 L=A L=40
A 0 0
813C C9 RET BE
RH
E
NTI
HASIL PROGRAM
ANALISA DATA
PROGRAM 4
8615 91 SUB C -
8616 1C INR E -
B = 0F, B=0E B=0D B=0C,FLA B=0B,FLAG: B=0A,FLA
FLAG : S = 0, FLAG:S=0,P FLAG:S=0, G:S=0,Z= S=0,A=0,P= G:S=0,A=0
8617 05 DCR B Z=0, A=1, P=1, =0,A=0,Z=0 P=0,A=0,Z 0,A=0,P= 0,Z=0,PC=8 ,P=0,Z=0,P
PC=8618 ,PC= 8618 =0,PC= 8618 1,PC=861 618 C=8618
8
861B 76 HLT
HASIL PROGRAM
ANALISA DATA
KESIMPULAN