minuend
subtrahend
2 –7=
5 – 2 =
-5 – 2 =
5 – (-2) =
7 – (-7) =
(-6) – 4 =
Operasi Aritmatika
Operasi perkalian lebih rumit
dibandingkan operasi penjumlahan atau
pengurangan, baik dalam hardware
maupun software
Ada beberapa jenis algoritma yang
digunakan dalam bermacam-macam
komputer
1 0 1 1 Multiplicand (11)
x 1 1 0 1 Mutiplier (13)
1 0 1 1
0 0 0 0 Partial
1 0 1 1 Product
1 0 1 1
1 0 0 0 1 1 1 1 Product (143)
Pengalian meliputi pembentukan beberapa
perkalian parsial untuk setiap digit dalam
multiplier. Perkalian parsial ini kemudian
dijumlahkan untuk mendapatkan hasil pengalian
akhir
Bila bit multiplier sama dengan 0, maka hasil
pengaliannya 0. Bila bit multiplier 1, maka hasil
pengaliannya sama dengan mutiplicand
Hasil pengalian akhir diperoleh dengan
menjumlahkan perkalian parsial tersebut. Setiap
hasil perkalian parsial yang berurutan digeser
satu posisi ke kiri relatif terhadap hasil perkalian
sebelumnya.
Pengalian dua buah integer biner n-bit
menghasilkan hasil perkalian sampai 2n-bit
Control Logic membaca bit-bit multiplier satu
persatu
Bila Q0 = 1, multiplicand ditambahkan ke
register A; hasilnya disimpan ke register A;
setelah itu seluruh bit di register C, A dan Q
digeser ke kanan 1 bit.
Bila Q0 = 0, tidak terjadi penambahan; seluruh
bit di register C, A dan Q digeser ke kanan 1
bit.
Proses tersebut dilakukan secara berulang
untuk setiap bit multiplier
Hasil perkalian akhir tersimpan di register A
dan Q.
Dengan algoritma pengalian di atas
1011 * 1101 = 1000 1111
• Perkalian unsigned integer : 11 * 13 = 143
• Perkalian komplemen-2 : -5 * -3 = -113
perkaliantidak berfungsi jika
multiplicand dan/atau multiplier-nya
negatif
Ada beberapa cara untuk menangani hal
tersebut:
• konversi multiplier dan multiplicand jadi positif,
dikalikan; cari komplemen-2 dari hasilnya jika
tanda multiplier dan multiplicand berbeda
• Menggunakan algoritma lain yang tidak
memerlukan transformasi, misalnya Algoritma
Booth
memiliki kelebihan kecepatan proses
perkaliannya, relatif terhadap
pendekatan langsung
terdapat register Q(multiplier),
M(multiplicand), A(accumulator), dan
register 1-bit di kanan Q yg ditandai
dengan Q-1
hasil perkalian tersimpan di A dan Q
A dan Q-1 diinisialisasi 0
control logic memeriksa bit-bit multiplier satu-
persatu beserta bit di kanannya
Jika kedua bit sama (1-1 atau 0-0), maka
seluruh bit di A, Q dan Q-1 digeser 1-bit ke
kanan
jika kedua bit berbeda, multiplicand
ditambahkan (0-1) atau dikurangkan (1-0) ke
register A, kemudian digeser ke kanan
Pergeseran ke kanan adalah dimana bit A yang
paling kiri digeser dan selain digeser bit
tersebut tetap berada di posisi semula
contoh : 0111 * 0011 = 0001 0101
Dengan algoritma booth, hitunglah
a) (7) x (3) =
b) (7) x (-3) =
c) (-7) x (-3) =
Operasi Aritmatika
1 3
1 1 1 4 7
1 1
3 7
3 3
4
1001 0011 : 1011 = 000 1101 + 0100
E A Q
0 1 0 0 1 0 0 1 1 Initial
M = 1011 1 0 0 1 0 0 1 1 0 Shift Left
M’ = 0101 (2nd-c) 0 1 0 1
1 0 1 1 1 A A - M
1 0 1 1 1 0 1 1 1 Set Q0
0 1 1 1 0 1 1 1 0 Shift Left
0 1 0 1
1 0 0 1 1 A A - M
1 0 0 1 1 1 1 1 1 Set Q0
0 0 1 1 1 1 1 1 0 Shift Left
0 1 0 1
0 1 1 0 0 A A - M
1 0 1 1
1 0 1 1 1 1 1 1 0 A A + M (restore A)
0 1 1 1 1 1 1 0 0 Shift Left
0 1 0 1
1 0 1 0 0 A A - M
1 0 1 0 0 1 1 0 1 Set Q0
Sisa hasil bagi Hasil bagi
Muatkan divisor ke M, dividend ke A dan Q. dividend
diekspresikan sbg komplemen-2 2n-bit.
Geser A dan Q 1-bit ke kiri
Bila M dan A memiliki tanda yg sama, lakukan A A
– M; bila tandanya beda, A A + M
Operasi tsb akan berhasil bila tanda A sesudah dan
sebelum operasi sama
• bila berhasil (A dan Q = 0), set Q0 1
• bila gagal (A dan Q <> 0), reset Q0 0 dan
simpan A sebelumnya
Ulangi langkah 2 sampai 4 utk setiap posisi bit di Q
Bila tanda divisor dan dividend sama maka quotient
ada di Q, jika tidak quotient adalah komplemen-2
dari Q.
Remainder ada di A.
A Q M = 1101
0 0 0 0 0 1 1 1 Initial
(7) / (-3) 0 0 0 0 1 1 1 0 Shift Left
M = 1101 1 1 0 1 Add
0 0 0 0 1 1 1 0 Restore
0 0 0 1 1 1 0 0 Shift Left
1 1 1 0 Add
0 0 0 1 1 1 0 0 Restore
0 0 1 1 1 0 0 0 Shift Left
0 0 0 0 Add
0 0 0 0 1 0 0 1 Set Q0 = 1
0 0 0 1 0 0 1 0 Shift
1 1 1 0 Add
0 0 0 1 0 0 1 0 restore
7+7 =
-10+5=
12+(-3)=
-5 -1 =
-7-10 =
6 – 5 =
13 – 20 =
7 x 3 =
7 x (-3) =
-7 x -3 =
7/3 =
-7/3 =
(-7)/(3)
dan (7)/(-3) akan menghasilkan
remainder yang berbeda. Hal ini disebabkan
operasi pembagian didefinisikan sebagai
D = Q *V + R
dengan
• D = dividend (bil.dibagi) A,Q
• Q = quotient (hasil bagi) Q
• V = divisor (bil.pembagi) M
• R = remainder (sisa) A