Download presentation
Presentation is loading. Please wait.
Published byJewel Austin Modified over 9 years ago
1
1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3
2
2 x 0011 +y+0001 sum 0100 Or in tabular form… Binary Addition Carry In ABSum Carry Out 00000 00110 01010 01101 10010 10101 11001 11111
3
3 Binary Addition ab sum coci 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 more space. ab sum coci ab sum coci ab sum coci ab sum coci
4
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)
5
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 2 n-1 bit position What does this mean for adding different signs?
6
6 Addition: 2’s complement -20 + 15 5 + 12 -12 + -25 More examples: Convert to 2SC and do the addition
7
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
8
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
9
9 Subtraction General rules: 1 – 1 = 0 0 – 0 = 0 1 – 0 = 1 10 – 1 = 1 0 – 1 = need to borrow! Or replace (x – y) with x + (-y) Can replace subtraction with additive inverse and addition
10
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)
11
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”
12
12 Subtraction: Unsigned For n-bits use the 2’s complement method and overflow if negative 11100 (+28) -10110 (+22) Becomes 1 11100 +01001 100110 Only take 5 bits of result
13
13 Subtraction: Sign Magnitude If signs are different, then change the problem to additionIf signs are different, then change the problem to addition If the signs are the same then do subtractionIf the signs are the same then do subtraction –compare magnitudes –subtract smaller from larger –if the order was switched, then switch the sign of the result
14
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
15
15 Overflow in Addition Unsigned: When there is a carry out of the MSB 1000 (8) +1001 (9) 10001 (1)
16
16 Signed magnitude: When there is a carry out of the MSB of the magnitude 1 1000 (-8) +1 1001 (-9) Overflow in Addition carry out from MSB of magnitude 110001 (-1)
17
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)
18
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.
19
19 Unsigned Binary Multiplication The multiplicand is multiplied by the multiplier to produce the product, the sum of partial products multiplicand X multiplier = product 0011 (+3) x 0110 (+6) 0000 0011 0000 0010010 (+18) Longhand, it looks just like decimal Result can require twice as many bits as the larger multiplicand (why?)
20
20 0011 (3) x1011 (-5) 2’s Complement Multiplication If negative multiplicand, just sign-extend it. If negative multiplier, take 2SC of both multiplicand and multiplier (-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
21
21 Division Only required to know for unsigned binary Just like you do with decimal long hand 14/3 = …
22
22 Logical Operations Operate on raw bits with 1 = true and 0 = false In1In2&|~(&)~(|)^~(^) 00001101 01011010 10011010 11110001 (AND OR NAND NOR XOR XNOR )
23
23 In LC-3, done bit-wise in parallel for corresponding bits X = 0011 Y = 1010 X AND Y = ? Logical Operations Example: So how do an OR? How about an XOR?
24
24 Masking Masking refers to using AND operations to isolate bits in a word Example: ab.FILL0x6162 mask.FILL0x00ff b.FILL0x0062 LDR2, b LDR5, ab LDR3, mask AND R1, R5, R3 JSRSub; R0 = R2 – R1 BRzfound_b; ‘b’ is 0x62 in ASCII Does this code find “b”?
25
25 How about adding this, does it work? ab.FILL0x6162 mask2.FILL0xff00 a.FILL0x0061 LDR2, a LDR5, ab LDR3, mask2 AND R1, R5, R3 JSRSub; R0 = R2 – R1 BRzfound_a; ‘a’ is 0x61 in ASCII Does this code find “a”? Masking
26
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
27
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)
28
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)
29
29 Questions?
30
30
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.