Section 9.9: Integer Multiplication (Frame 6)                     [prev][home][next]
counter               partial product                     multiplier
---------------------------------------------------------------------------
00001000             00000000 00000000                     11001101
                    +         00101011      add 43-------- ^
                    ------------------
                     00000000 00101011
00000111 (decr)                                            10011010
(lshift)
   not zero          00000000 01010110  (lshift)
---------------------------------------------------------------------------
00000111             00000000 01010110                     10011010
                    +         00101011      add 43-------- ^
                    ------------------
                     00000000 10000001
00000110 (decr)                                            00110100
(lshift)
   not zero          00000001 00000010  (lshift)
---------------------------------------------------------------------------
00000110             00000001 00000010                     00110100
                    +         00000000      add 0--------- ^
                    ------------------
                     00000001 00000010
00000101 (decr)                                            01101000
(lshift)
   not zero          00000010 00000100  (lshift)
---------------------------------------------------------------------------
00000101             00000010 00000100                     01101000
                    +         00000000      add 0--------- ^
                    ------------------
                     00000010 00000100
00000100 (decr)                                            11010000
(lshift)
   not zero          00000100 00001000  (lshift)
---------------------------------------------------------------------------
00000100             00000100 00001000                     11010000
                    +         00101011      add 43-------- ^
                    ------------------
                     00000100 00110011
00000011 (decr)                                            10100000
(lshift)
   not zero          00001000 01100110  (lshift)
---------------------------------------------------------------------------
00000011             00001000 01100110                     10100000
                    +         00101011      add 43-------- ^
                    ------------------
                     00001000 10010001
00000010 (decr)                                            01000000
(lshift)
   not zero          00010001 00100010  (lshift)
---------------------------------------------------------------------------
00000010             00010001 00100010                     01000000
                    +         00000000      add 0--------- ^
                    ------------------
                     00010001 00100010
00000001 (decr)                                            10000000
(lshift)
   not zero          00100010 01000100  (lshift)
---------------------------------------------------------------------------
00000001             00100010 01000100                     10000000
                    +         00101011      add 43-------- ^
                    ------------------
                     00100010 01101111
00000000 (decr)                                            00000000
(lshift)
   zero          do not shift
---------------------------------------------------------------------------