30
1 Arithmetic and Logic Arithmetic and Logic Operations Operations Patt and Patel Ch. 2 & 3 Patt and Patel Ch. 2 & 3

1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

Embed Size (px)

Citation preview

Page 1: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

1

Arithmetic and Logic Arithmetic and Logic Operations Operations

Patt and Patel Ch. 2 & 3Patt and Patel Ch. 2 & 3

Page 2: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

2

x 0011+y +0001 sum 0100

Or in tabular form…

Binary Addition

Carry InCarry In AA BB SumSum Carry OutCarry Out

00 00 00 00 00

00 00 11 11 00

00 11 00 11 00

00 11 11 00 11

11 00 00 11 00

11 00 11 00 11

11 11 00 00 11

11 11 11 11 11

Page 3: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

3

Binary Addition

a b

sumco ci

And as a full adder…

4-bit Ripple-Carry adder:• Carry values propagate from bit to bit• Like pencil-and-paper addition• Time proportional to number of bits• “Lookahead-carry” can propagate

carry proportional to log(n) with morespace.

a b

sumco ci

a b

sumco ci

a b

sumco ci

a b

sumco ci

Page 4: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

4

Addition: unsigned

Just like the simple addition given earlier:

Examples:

(we are ignoring overflow for now)

100001 (33) 00001010 (10) + 011101 (29) + 00001110 (14)

111110 (62) 00011000 (24)

Page 5: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

5

Addition: 2’s complement

•Just like unsigned addition•Assume 6-bit and observe:

000011 (3)+111100 (-4)

111111 (-1)

101000 (-24)+010000 (16)

111000 (-8)

111111 (-1)+001000 (8)

1000111 (7)

•Ignore carry-outs (overflow)•Sign bit is in the 2n-1 bit position•What does this mean for adding different signs?

Page 6: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

6

Addition: 2’s complement

-20 + 15

5 + 12

-12 + -25

More examples: Convert to 2SC and do the addition

Page 7: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

7

Addition: sign magnitude

• Add magnitudes only, just like unsigned addition

• Do not carry into the sign bit• If a carry out of the MSB of magnitude then

overflowed• Add only integers of like sign (“+ to +” OR “–

to –” )• Sign of the result is same as sign of the

addends

Page 8: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

8

Examples:

0 0101 (5)+ 0 0011 (3)

0 1000 (8)

1 1010 (-10)+ 1 0011 (-3)

1 1101 (-13)

0 01011 (11)+ 1 01110 (-14)

Cannot add!!! This is a subtraction

Addition: sign magnitude

Page 9: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

9

SubtractionGeneral rules:

1 – 1 = 00 – 0 = 01 – 0 = 1

10 – 1 = 10 – 1 = need to borrow!

•Or replace (x – y) with x + (-y)•Can replace subtraction with additive inverse and addition

Page 10: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

10

Subtraction: 2’s complement

Don’t. Just use addition:

x – y x + (-y)

Example:

10110 (-10) - 00011 (3)

10110 (-10) + 11101 (-3)

1 10011 (-13)

Page 11: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

11

Subtraction: 2’s complement

Can also flip bits of bottom # and add an LSB carry in, so for -10 - 3 we get:

1 10110 + 11100 110011

(throw away carry out)

Addition and subtraction are simple in 2’s complement,just need an adder and inverters.

“add 1”

“flip bits of bottom number”

Page 12: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

12

Subtraction: Unsigned

For n-bits use the 2’s complement method and overflowif negative

11100 (+28) - 10110 (+22)

Becomes1

11100+0100

1

100110

Only take 5 bits of result

Page 13: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

13

Subtraction: Sign Subtraction: Sign MagnitudeMagnitude

• If signs are different, then change If signs are different, then change the problem to additionthe problem to addition

• If the signs are the same then do If the signs are the same then do subtractionsubtraction

– compare magnitudes– subtract smaller from larger– if the order was switched, then switch

the sign of the result

Page 14: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

14

Subtraction: sign magnitude

0 11000 (24)- 0 00111 (7) 1 10001 (-17)

becomes

0 00111 (7)- 0 11000 (24)

Switched sign since the order of the subtraction was reversed

1 11000 (-24)- 1 00010 (-2)

1 10110 (-22)

For example:

Evaluation of the sign bit is not part of the arithmetic, it is determined by comparing magnitudes

Page 15: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

15

Overflow in Addition

Unsigned: When there is a carry out of the MSB

1000 (8) + 1001 (9) 10001 (1)

Page 16: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

16

Signed magnitude: When there is a carry out of theMSB of the magnitude

1 1000 (-8) +1 1001 (-9)

Overflow in Addition

carry out from MSB of magnitude

110001 (-1)

Page 17: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

17

2’s complement: When the signs of the addends are the same, but the sign of the result is different

0011 (3) + 0110 (6)

Adding 2 numbers of opposite signs never overflows

Why?

Overflow in Addition

1001 (-7)

Page 18: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

18

Overflow in Subtraction

Unsigned: if result is negative

Signed magnitude: never happens when actually doing subtraction

2’s complement: never do subtraction, so use the addition rule on the addition operation done.

Page 19: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

19

Unsigned Binary MultiplicationThe multiplicand is multiplied by the multiplier toproduce the product, the sum of partial products

multiplicand X multiplier = product

0011 (+3) x 0110 (+6) 0000 0011 0011 0000 0010010 (+18)

•Longhand, it looks just like decimal•Result can require twice as many bits as the largermultiplicand (why?)

Page 20: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

20

0011 (3) x 1011 (-5)

2’s Complement Multiplication

•If negative multiplicand, just sign-extend it.•If negative multiplier, take 2SC of both multiplicand andmultiplier (-7 x -3 = 7 x 3, and 7 x –3 = -7 x 3)

1101 (-3) x 0101 (+5) 11111111101 0000000000 111111101 + 00000000 11110001 (-15)

Only need 8 bits for result

Page 21: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

21

Division

Only required to know for unsigned binary

Just like you do with decimal long hand

14/3 = …

Page 22: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

22

Logical Operations

Operate on raw bits with 1 = true and 0 = false

In1In1 In2In2 && || ~(&~(&))

~(|)~(|) ^̂ ~(^~(^))

00 00 00 00 11 11 00 11

00 11 00 11 11 00 11 00

11 00 00 11 11 00 11 00

11 11 11 11 00 00 00 11

(AND OR NAND NOR XOR XNOR )

Page 23: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

23

In LC-3, done bit-wise in parallel for corresponding bits

X = 0011Y = 1010

X AND Y = ?

Logical Operations

Example:

So how do an OR? How about an XOR?

Page 24: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

24

MaskingMaskingMaskingMasking refers to using AND refers to using AND operations to isolate bits in a word operations to isolate bits in a word

Example:ab .FILL 0x6162mask .FILL 0x00ffb .FILL 0x0062

LD R2, bLD R5, abLD R3, maskAND R1, R5, R3JSR Sub ; R0 = R2 – R1BRz found_b ; ‘b’ is 0x62 in ASCII

Does this code find “b”?

Page 25: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

25

How about adding this, does it work?How about adding this, does it work?

ab .FILL 0x6162mask2 .FILL 0xff00a .FILL 0x0061

LD R2, aLD R5, abLD R3, mask2AND R1, R5, R3JSR Sub ; R0 = R2 – R1BRz found_a ; ‘a’ is 0x61 in ASCII

Does this code find “a”?

Masking

Page 26: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

26

Shifts and Rotates

Logical right•Move bits to the right, same order•Throw away the bit that pops off the LSB•Introduce a 0 into the MSB

00110101 00011010 (shift right by 1 )

Logical left•Move bits to the left, same order•Throw away the bit that pops off the MSB•Introduce a 0 into the LSB

00110101 11010100 (shift left by 2 )•Can do by adding number to it self

Logical Operations

Page 27: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

27

Logical Operations: Shifts and Rotates

Arithmetic right•Move bits to the right, same order•Throw away the bit that pops off the LSB•Reproduce the original MSB into the new MSB•Alternatively, shift the bits, and then do sign extension

00110101 00011010 (right by 1)1100 1111 (right by 2)

Arithmetic left•Move bits to the left, same order•Throw away the bit that pops off the MSB•Introduce a 0 into the LSB

00110101 01101010 (left by 1)

Page 28: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

28

Logical Operations: Shifts and Rotates

Rotate left•Move bits to the left, same order•Put the bit(s) that pop off the MSB into the LSB•No bits are thrown away or lost

00110101 01101010 (rotate by 1)1100 1001 (rotate by 1)

Rotate right•Move bits to the right, same order•Put the bit that pops off the LSB into the MSB•No bits are thrown away or lost

00110101 10011010 (rotate by 1)1101 0111 (rotate by 2)

Page 29: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

29

Questions?Questions?

Page 30: 1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3

30