Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika atau
matematika yang terjadi sesuai dengan intruksi program.
2. Kemudian ALU mengerjakan perintah yang diminta intruksi seperti : menambah data,
Membagi data, atau memanipulasi data yang ada.
Dalam sistem bilangan biner , semua bilangan dapat direpresentasikan dengan hanya
menggunakan bilangan 1, 0, tanda minus, dan tanda titik.
Namun untuk keperluan penyimpanan dan pengolahan komputer, kita tidak perlu
menggunakan tanda menggunakan tanda minus dan titik. Hanya bilangan biner (0 dan 1)
yang dapat merepresentasikan bilangan. Bila kita hanya memakai integer non-negatif, maka
representasinya akan lebuh mudah. Sebuah word 8-bit dapat digunakan untuk
merepresentasikan bilangan 0 hingga 255. Misalnya:
00000000= 0
00000001= 1
00101001 = 41
10000000 = 128
11111111= 225
SIGN MAGNITUDE
Apabila bit paling kiri sama dengan 0 suatu bilangan adalah positif. Bila bit yang
paling kiri sama dengan 1 bilangan bernilai negatif.
CONTOH :
+ 18 = 00010010
– 18 = 10010010
Prosedur di atas tidak berlaku bagi integer negatif komplemen dua. Dengan memakai
contoh yang sama:
Aturan integer komplemen dua adalah untuk memindahkan bit tanda ke posisi terkiri
yang baru dan mengisinya dengan salinan-salinan bit tanda. Bilangan positif diisi dengan 0
dan bilangan negatif isi dengan 1 -18 = 10010010 (komplemen dua, 8 bit) -18 =
1111111100010010 (komplemen dua, 16 bit)
Proses dua langkah ini disebut sebagai operasi komplemen pasangan dari bilangan
bulat.
Seperti yang diharapkan, nilai negatif dari angka itu sendiri:
Kami dapat menunjukkan validitas operasi yang baru saja dijelaskan dengan
menggunakan definisi dari representasi dari dua komplemen. Sekali lagi, interpretan urutan
n-bit dari digit biner an-1 an-2 ...... a1a0 sebagai gabungan kedua bilangan bulat A, sehingga
nilainya adalah
𝑛−2
𝑛−1
𝐴 = −2 𝑎𝑛−1 + ∑ 2𝑖 𝑎𝑖
𝑖=0
Beberapa anomali semacam itu tidak dapat dihindari. Jumlah pola bit yang berbeda
dalam kata n-bit adalah 2n, yang merupakan bilangan genap. Kami ingin mewakili bilangan
bulat positif dan negatif dan 0. Jika jumlah yang sama dari bilangan bulat positif dan negatif
diwakili (tanda besarnya), maka ada dua representasi untuk 0. Jika hanya ada satu
representasi 0 (komplemen berpasangan), maka ada jumlah yang tidak seimbang dari angka
positif dan negatif yang diwakili. Dalam kasus pasangan kata komplemen, untuk n-bit
panjang, ada representasi untuk -2n - 1 tetapi tidak untuk + 2n - 1.
ATURAN OVERFLOW: Jika dua angka ditambahkan, dan keduanya positif atau keduanya
negatif, maka luapan terjadi jika dan hanya jika hasilnya memiliki tanda yang berlawanan.
Gambar 10.3 Penjumlahan dalam representasi dua komplemen pasangan
Gambar 10.3 e dan f menunjukkan contoh-contoh overflow. Perhatikan bahwa
luapan dapat terjadi apakah ada carry atau tidak.
Pengurangan mudah ditangani dengan aturan berikut:
SUBTRACTION ATURAN: Untuk mengurangi satu angka (subtrahend) dari yang lain
(minuend), ambil dua komplemen (negasi) dari subtrahend dan tambahkan ke minuend.
Dengan demikian, pengurangan dicapai dengan menggunakan penjumlahan, seperti
yang diilustrasikan pada Gambar 10.4. Dua contoh terakhir menunjukkan bahwa aturan
luapan masih berlaku.
Gambar 10.9 Perkalian Dua Integral 4-Bit Tidak Bersertifikat Menghasilkan Hasil 8-Bit
Sayangnya, skema sederhana ini tidak akan berfungsi untuk perkalian. Untuk
melihat ini, perhatikan lagi Gambar 10.7. Kami dikalikan 11 (1011) oleh 13 (1101) untuk
mendapatkan 143 (10001111). Jika kita mengartikan ini sebagai angka komplemen pasangan,
kita memiliki - 5 (1011) kali - 3 (1101) sama dengan - 113 (10001111). Contoh ini
menunjukkan bahwa perkalian langsung tidak akan berhasil jika baik multiplicand dan
multiplier negatif. Bahkan, itu tidak akan berfungsi jika multiplicand atau multiplier negatif.
Untuk membenarkan pernyataan ini, kita perlu kembali ke Gambar 10.7 dan menjelaskan apa
yang sedang dilakukan dalam hal operasi dengan kekuatan dari 2. Ingat bahwa nomor biner
yang tidak ditandatangani dapat diekspresikan sebagai penjumlahan dari kekuatan 2. Dengan
demikian,
1101 = 1 × 23 + 1 × 22 + 1 × 20
= 23 + 22 + 20
selanjutnya, perkalian bilangan biner oleh 2n dilakukan dengan menggeser angka itu ke n bit
kiri. Dengan pemikiran ini, Gambar 10.10 mengulang Gambar 10.7 untuk membuat generasi
produk parsial dengan penggandaan eksplisit. Satu-satunya perbedaan pada Gambar 10.10
adalah ia mengakui bahwa produk parsial harus dilihat sebagai angka 2n-bit yang dihasilkan
dari n-bit multiplicand.
Jadi, sebagai integer unsigned, 4-bit multiplicand 1011 disimpan dalam 8-bit kata
sebagai 00001011. Setiap produk parsial (selain itu untuk 20) terdiri dari nomor ini bergeser
ke kiri, dengan posisi kosong di sebelah kanan diisi dengan nol (misalnya, pergeseran ke kiri
dua tempat menghasilkan 00101100).
Algoritma Booth digambarkan pada Gambar 10.12 dan dapat digambarkan sebagai
berikut. Seperti sebelumnya, multiplier dan multiplicand ditempatkan di Q dan M register,
masing-masing.
Jumlah operasi semacam itu dapat dikurangi menjadi dua jika kita amati itu
Jadi produk dapat dihasilkan oleh satu tambahan dan satu pengurangan dari
multiplicand. Skema ini meluas ke sejumlah blok 1 dalam pengganda, termasuk kasus di
mana 1 tunggal diperlakukan sebagai blok.
Algoritme Booth sesuai dengan skema ini dengan melakukan pengurangan ketika
blok pertama dari blok ditemui (1–0) dan tambahan ketika akhir blok ditemui (0–1).
Untuk menunjukkan bahwa skema yang sama berfungsi untuk pengganda negatif, kita perlu
amati yang berikut ini. Misalkan X adalah angka negatif dalam notasi pelengkap pasangan:
Representasi X = {1xn – 2 x n - 3 .... x1x0}
Maka nilai X dapat dinyatakan sebagai berikut:
Pembaca dapat memverifikasi ini dengan menerapkan algoritma ke angka pada Tabel 10.2.
Bit X paling kiri adalah 1, karena X negatif. Asumsikan bahwa 0 paling kiri berada di posisi
ke-k. Jadi, X adalah bentuknya
Representasi X = {111.....10xk – 1 x k - 2 .....x1x0} (10.5)
Maka nilai X adalah
Menata ulang
Untuk menangani angka negatif, kami mengakui bahwa sisanya ditentukan oleh:
D=Q*V+R