35
1 Arithmetic Operations Arithmetic Operations addition subtraction multiplication division Each of these operations on the integer representations: unsigned two's complement

1 Arithmetic Operations Arithmetic Operations addition subtraction multiplication division Each of these operations on the integer representations:

Embed Size (px)

Citation preview

Page 1: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

1

Arithmetic Operations

Arithmetic Operations addition subtraction multiplication division

Each of these operations on the integer representations: unsigned two's complement

Page 2: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

2

Addition

One bit of binary addition

carry out

carry in

a

b

sum bit

+

Page 3: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

3

Addition Truth Table

Carry In a bCarry Out Sum Bit

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

Page 4: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

4

Addition

Unsigned and 2's complement use the same addition algorithm

Due to the fixed precision, throw away the carry out from the msb

00010111+ 10010010

Page 5: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

5

Two’s Complement Addition

1 1 1 1 1 1 1 0 ( )

+ 0 0 0 0 0 0 0 1 ( )

                  ( )

1 1 1 1 0 0 0 0 ( )

+ 0 0 1 1 0 0 0 0 ( )

                  ( )

Page 6: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

6

Overflow

The condition in which the result of an arithmetic operation cannot fit into the fixed number of bits available.

For example:+8 cannot fit into a 3-bit, unsigned

representation. It needs 4 bits: 1000

Page 7: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

7

Overflow Detection

Most architectures have hardware that detects when overflow has occurred (for arithmetic operations).

The detection algorithms are simple.

Page 8: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

8

Unsigned Overflow Detection6-bit examples:

0 0 1 1 1 1 1 1 1 1 1 1

+ 0 0 1 1 1 1 + 0 0 0 0 0 1

                           

1 0 0 0 0 0

+ 1 0 0 0 0 0

             

Carry out from msbs is

overflow in unsigned

Page 9: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

9

Unsigned Overflow Detection6-bit examples:

Carry out from msbs is overflow in unsigned

0 0 1 1 1 1 1 1 1 1 1 1

+0 0 1 1 1 1 +0 0 0 0 0 1

0 1 1 1 1 0 0 0 0 0 0 0

0 1

1 0 0 0 0 0

+1 0 0 0 0 0

0 0 0 0 0 0

1

No Overflow Overflow!

Overflow!

Page 10: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

10

Two’s Complement Overflow Detection

When adding 2 numbers of like sign+ to +- to –

and the sign of the result is different!

+ -+ + + -

- +Overflow! Overflow!

Page 11: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

11

Addition

Overflow detection: 2’s complement6-bit examples

111111+ 111111

( )

( )

100000+ 011111

( )

( )

( ) ( )

011111+ 011111

( )

( )

( )

Page 12: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

12

Subtraction

basic algorithm is like decimal…

111000- 010110

0 – 0 = 01 – 0 = 11 – 1 = 0

0 – 1 = ? BORROW!

Page 13: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

13

Subtraction

For two’s complement representation The implementation redefines the

operation: a – b becomes a + (-b) This is a 2-step algorithm:

1. “take the two’s complement of b” (common phrasing for: find the additive

inverse of b) 2. do addition

Page 14: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

14

Subtraction

6-bit, 2’s complement examples

001111- 111100

( )

( )

000010- 011100

( )

( )

Page 15: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

15

Subtraction

Overflow detection: 2’s complementIf the addition causes overflow,

so does the subtraction!

100000- 000010

( )

( )

Page 16: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

16

Multiplication

0 × 0 = 00 × 1 = 01 × 0 = 01 × 1 = 1

Same algorithm as decimal… There is a precision problem

n bits * n bitsn + n bits may be needed

Page 17: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

17

In HW, space is always designated for a larger precision product.

32 bits * 32 bits

64 bits

Page 18: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

18

Unsigned Multiplication

01111 * 01101

Page 19: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

19

Unsigned Multiplication

11111 * 11111

Page 20: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

20

Two’s ComplementSlightly trickier: must sign extend the partial

products (sometimes!)

Page 21: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

21

ORSign extend multiplier and multiplicand to full width of product

_ _ _ _ _ _ * _ _ _ _ _ _

And, use only exact number of lsbs of product

product

Page 22: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

22

Multiplication

+ - + -×+ × + × - × -

or

reverse additive inverses

find additive inverses

-× +

+× +

OK

OK

sign ext. partial product

Page 23: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

23

Unsigned Division

1100111 25/3

Page 24: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

24

Sign Extension

The operation that allows the same 2's complement value to be represented, but using more bits.

0 0 1 0 1 (5 bits)_ _ _ 0 0 1 0 1 (8 bits)

1 1 1 0 (4 bits)_ _ _ _ 1 1 1 0 (8 bits)

Page 25: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

25

Zero Extension

The same type of thing as sign extension, but used to represent the same unsigned value, but using more bits

0 0 1 0 1 (5 bits)_ _ _ 0 0 1 0 1 (8 bits)

1 1 1 1 (4 bits)_ _ _ _ 1 1 1 1 (8 bits)

Page 26: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

26

Truth Table for a Few Logical Operations

X Y X and Y

X nand Y

X or Y X xor Y

0 0 0 1 0 0

0 1 0 1 1 1

1 0 0 1 1 1

1 1 1 0 1 0

Page 27: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

27

Logical Operations

Logical operations are done bitwise on every computer

Invented example:Assume that X,Y, and Z are 8-bit variables

and Z, X, Y

If X is 0 0 0 0 1 1 1 1 Y is 0 1 0 1 0 1 0 1then Z is _ _ _ _ _ _ _ _

Page 28: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

28

To selectively clear bit(s) clear a bit means make it a 0 First, make a mask:

(the generic description of a set of bits that do whatever you want them to)

Within the mask, 1‘s for unchanged bits 0‘s for cleared bits

To clear bits numbered 0,1, and 6 of variable X

mask 1 . . 1 0 1 1 1 1 0 0 and use the instructionand result, X, mask

Page 29: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

29

To selectively set bit(s) set a bit means make it a 1 First, make a mask:

0‘s for unchanged bits 1‘s for set bits

To set bits numbered 2,3, and 4 of variable X

mask 0 . . 0 0 0 1 1 1 0 0and use the instructionor result, X, mask

Page 30: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

30

Shift

Moving bits around

1) arithmetic shift2) logical shift3) rotate

Bits can move right or left

Page 31: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

31

Arithmetic Shift

Right

sign extension!

Left

Page 32: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

32

Logical Shift

Right

Left

Logical left is the same as arithmetic left.

Page 33: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

33

Rotate

Right

Left

No bits lost, just moved

Page 34: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

34

Assume a set of 4 chars. are in an integer-sized variable (X).

Assume an instruction exists to print out the character all the way to the right…

putc X (prints D)

Invent instructions, and write code to print ABCD, without changing X.

Page 35: 1 Arithmetic Operations  Arithmetic Operations  addition  subtraction  multiplication  division  Each of these operations on the integer representations:

35

Karen’s solution

rotl X, 8 bitsputc X # Arotl X, 8 bitsputc X # Brotl X, 8 bitsputc X # Crotl X, 8 bitsputc X # D