0% found this document useful (0 votes)
65 views

William Stallings Computer Organization and Architecture 8 Edition Computer Arithmetic

The document summarizes computer arithmetic and the arithmetic logic unit (ALU). It discusses: 1) The ALU handles integer and sometimes floating point calculations. It uses binary representation and two's complement notation to represent positive and negative numbers. 2) Two's complement notation has benefits over sign-magnitude, including a single representation for zero and simple addition/subtraction operations. Numbers are represented with a sign bit and numeric bits. 3) The ALU performs operations like addition, subtraction, multiplication and division on binary numbers. Operations like multiplication and division are more complex and require algorithms like Booth's multiplication.

Uploaded by

Aqib abdullah
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

William Stallings Computer Organization and Architecture 8 Edition Computer Arithmetic

The document summarizes computer arithmetic and the arithmetic logic unit (ALU). It discusses: 1) The ALU handles integer and sometimes floating point calculations. It uses binary representation and two's complement notation to represent positive and negative numbers. 2) Two's complement notation has benefits over sign-magnitude, including a single representation for zero and simple addition/subtraction operations. Numbers are represented with a sign bit and numeric bits. 3) The ALU performs operations like addition, subtraction, multiplication and division on binary numbers. Operations like multiplication and division are more complex and require algorithms like Booth's multiplication.

Uploaded by

Aqib abdullah
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 26

William Stallings

Computer Organization
and Architecture
8th Edition

Chapter 9
Computer Arithmetic
Arithmetic & Logic Unit
• Does the calculations
• Everything else in the computer is there
to service this unit
• Handles integers
• May handle floating point (real) numbers
ALU Inputs and Outputs
Integer Representation
• Only have 0 & 1 to represent everything
• Positive numbers stored in binary
—e.g. 41=00101001.
• No minus sign
• No period
• Sign-Magnitude
• Two’s compliment
Sign-Magnitude
• Left most bit is sign bit
• 0 means positive
• 1 means negative
• +18 = 00010010
• -18 = 10010010
• Problems
—Need to consider both sign and magnitude in
arithmetic
—Two representations of zero (+0 and -0)
Two’s Compliment
• +3 = 00000011
• +2 = 00000010
• +1 = 00000001
• -1 = 11111111
• -2 = 11111110
• -3 = 11111101
Benefits
• One representation of zero
• Arithmetic works easily (see later)
• Negating is fairly easy
—3 = 00000011
—Boolean complement gives 11111100
—Add 1 to LSB 11111101
Geometric Depiction of Twos
Complement Integers
Negation Special Case 1
• 0= 00000000
• Bitwise not 11111111
• Add 1 to LSB +1
• Result 1 00000000
• Overflow is ignored, so:
• -0=0
Negation Special Case 2
• -128 = 10000000
• bitwise not 01111111
• Add 1 to LSB +1
• Result 10000000
• So:
• -(-128) = -128 X
• Monitor MSB (sign bit)
• It should change during negation
Range of Numbers
• 8 bit 2s compliment
—+127 = 01111111 = 27 -1
— -128 = 10000000 = -27
—8 bit, 1 bit is used as a sign bit so you are left with 7 bits, hence the range
becomes -128 to 127

• 16 bit 2s compliment
—+32767 = 011111111 11111111 = 215 – 1
—1 bit used for sign, range = -32768 to 32767
— -32768 = 100000000 00000000 = -215
Conversion Between Lengths
• Positive number pack with leading zeros
• Conversion from 8 bit to 16 bit.
• +18 = 00010010
• +18 = 00000000 00010010
• Negative numbers pack with leading ones
• -18 = 11101110
• -18 = 11111111 11101110

• i.e. pack with MSB (sign bit)


Addition and Subtraction
• Normal binary addition
• Monitor sign bit for overflow
• Take twos compliment of subtrahend and
add to minuend
—i.e. a - b = a + (-b)
—B – a = a 2’s complement
—A – b = b 2’s complement
—A+b =

• So we only need addition and complement


circuits
Hardware for Addition and Subtraction
Multiplication
• Complex
• Work out partial product for each digit
• Take care with place value (column)
• Add partial products
Multiplication Example
• 1011 Multiplicand (11 dec)
• x 1101 Multiplier (13 dec)
• 1011 Partial products
• 0000 Note: if multiplier bit is 1 copy
• 1011 multiplicand (place value)
• 1011 otherwise zero
• 10001111 Product (143 dec)
• Note: need double length result
Unsigned Binary Multiplication
Execution of Example
Flowchart for Unsigned Binary
Multiplication
Multiplying Negative Numbers
• This does not work!
• Solution 1
—Convert to positive if required
—Multiply as above
—If signs were different, negate answer
• Solution 2
—Booth’s algorithm
Booth’s Algorithm
Example of Booth’s Algorithm
Division
• More complex than multiplication
• Negative numbers are really bad!
• Based on long division
Division of Unsigned Binary Integers

00001101 Quotient
Divisor 1011 10010011
(11)
Dividend
1011
Partial 001110
1011
Remainders
001111
1011
Remainder
100
Flowchart for Unsigned Binary Division
DIVISION – (11/3)
N M(DIVISOR) A Q(DIVIDEND) ACTION/
-M = 11101 _________
4 00011 00000 1011 Initialization
00001 011? Shift Left AQ
11110 011? A=A- M
3 00001 0110 Q[0] = 0,RES A
00010 110? SHIFT LEFT AQ 11111
110? A=A+ M
2 00010 1100 Q[0] = 0, RES A 00101
100? SHIFT LEFT AQ 00010 100? A=A+ M
1 00010 1001 Q[0] = 1
00101 001? SHIFT LEFT AQ 00010
001? A=A- M 0
0 00010 0011 Q[0] = 1
2(remainder) 3(quotient)

You might also like