digital aritmetik unsigned integers signed integers...digital aritmetik unsigned integers signed...

54
Digital Aritmetik Unsigned Integers Signed Integers Original Slides Ingo Sander KTH/ICT/ES [email protected] Slides Per Lindgren EISLAB [email protected]

Upload: others

Post on 29-Oct-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Digital Aritmetik Unsigned Integers

Signed Integers"

Original Slides!Ingo Sander!KTH/ICT/[email protected]!

Slides!Per Lindgren!

[email protected]!

Page 2: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  Ett tal kan representeras binärt på många sätt. !

•  De vanligaste taltyperna som skall representeras är:!–  Heltal, positiva heltal (eng. integers)!

•  ett-komplementet, två-komplementet, sign-magnitude!–  Decimala tal med fix tal-område!

•  Fix-tal (eng. fixed-point)!–  Decimala tal i olika talområden!

•  Flyt-tal (eng. floating-point)!

Talrepresentationer"

2!

Page 3: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Positiva Heltal"

1 1 0 1 1 0 1

Positiva Heltal:

= 1*26 + 1*25 + 1*23 + 1*22 + 1*20 = 109 26 25 24 23 22 21 20

3!

Page 4: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Addition"

4!

5 + 2

7

0101 + 0010

0111

C4=0

Carry-out = 0 resultatet OK

Page 5: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Addition"

5!

Carry-out = 1 resultatet fel

7 +14

21

0111 + 1110

10101

1 1 1

c4=1 c3=1

Page 6: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Heltal"

1 1 0 1 1 0 1

Positiva Heltal:

= 1*26 + 1*25 + 1*23 + 1*22 + 1*20 = 109 26 25 24 23 22 21 20

Men hur representerar vi negativa tal???

6!

Page 7: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Två-komplementet"

7!

Fördel: En nolla. Nackdel: Risk för overflow

Talområde: -(2n-1)..+(2n-1-1) Decimal komplementering (2 siffror): - 49 → 102-49=51 Binär komplementering (5 siffor): -15 → 25-15=17 Vid två-komplementering inverteras ingående digits, och talet 1 läggs till, dvs –(d1d0) i basen b representeras som (b-1-d1)(b-1-d0)+1. Två-komplementet har den egenskapen att addition och subtraktion enkelt kan utföras.

X x XR0 00…000 01 00…001 1… …2nn--11-1

01…111 2nn--11-1

-2nn--11 10…000 2nn--11

… … …-2 11…110 2nn--22-1 11…111 2nn--11

Tecken-bit

Page 8: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Talkonvertering – Positiva till Negativa tal"

01111 +15

10000 invertera

10001 Lägg till ett

10001 -15

8!

Page 9: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Talkonvertering – Negativa till Positiva tal"

10001 -15

01110 Invertera

01111 Lägg till ett

01111 +15

Page 10: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Talkonvertering – Positiva till Negativa tal"

01001 +9

10!

Page 11: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Talkonvertering – Negativa till Positiva tal"

10111 -9

Page 12: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Representation med 2-komplement!

Heltal(2-komplement)"

B=bN-1 bN-2 ...b1 b0 där bi∈{0,1}

bN-1 bN-2 ... b1 b0

Tecken-Bit (Sign Bit)

Decimalvärde D(B)=-bN-1 2N-1

+bN-2 2N-2 + ...+b1 21+b0 20

12!

Page 13: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Heltal: (2-komplement)"000

001

010

011

100

101

110

111

-1

-2

-4

-3 3

2

0

1

13!

Page 14: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Sign-extension"

1 1 0 1 1 0 1

Heltal:

= -1*26 + 1*25+1*23 + 1*22 + 1*20 = - 45 -26 25 24 23 22 21 20

Teckenbiten har negativ vikt 1 1 0 1 1 0 1 26 25 24 23 22 21 20

1 -2n-1

1 2n-2

Kopiera teckenbiten för att utvidga talområdet genom att använda flera bitar!

1 27

14!

Page 15: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Addition av två heltal"X x XR0 00…000 01 00…001 1… …2nn--11-1

01…111 2nn--11-1

-2nn--11 10…000 2nn--11

… … …-2 11…110 2nn--22-1 11…111 2nn--11

XR=x mod 2n YR=y mod 2n ADD(x,y)= x+y mod 2n = XR+YR mod 2n

111111101111111

+ 0111111111111110

Overflow uppkommer om additionen hamnar utanför talområdet

15!

Page 16: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Addition"

16!

(+5) + (+2)

(+7)

0101 + 0010

0111

Page 17: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Addition"

17!

(-5) + (+2)

(-3)

1011 + 0010

1101

Page 18: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Addition"

18!

(+5) + (-2)

(+3)

0101 + 1110

1 0011

Carry-biten kan ignoreras!

Page 19: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Addition"

19!

(-5) + (-2)

(-7)

1011 + 1110

1 1001

Extra carry-biten kan ignoreras!

Page 20: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Overflow"

20!

(+5) + (+5)

(-6)

0101 + 0101

1010

1 1

Overflow – teckenbiten stämmer inte överens med ingående tal...

Page 21: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Overflow (2)"

21!

(-5) + (-5)

(+6)

1011 + 1011

1 0110

1 1

Overflow – teckenbiten stämmer inte överens med ingående tal...

0

Page 22: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  För 4-bit-tal!– Overflow om a3 = b3 och b3 ≠ r3!

!

Logik för att detektera overflow"

22!

Overflow = a3b3r3 + a3b3r3

Overflow = an−1bn−1rn−1 + an−1bn−1rn−1

Page 23: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Subtraktion"

23!

A - B = A +(-B)= A +(2’s complement B) = A +(NOT B) + 1

Hur gör man subtraktionen på ett enkelt sätt?

Page 24: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Subtraktion"

24!

(+5) - (+2)

(+3)

0101 - 0010

????

I stället för subtraktion, gör en addition med 2-komplementet!

0101 + 1101

1 0011

Page 25: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Subtraktion"

25!

(-5) - (+2)

(-7)

1011 - 0010

????

1011 + 1110

1001

Page 26: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Subtraktion"

26!

(+5) - (-2)

(+7)

0101 - 1110

????

0101 + 0010

0111

Page 27: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Subtraktion"

27!

(-5) - (-2)

(-3)

1011 - 1110

????

1011 + 0010

1101

Page 28: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Tvåkomplementsrepresentation, en sammanfattning"

•  Område: -2N-1 upp till 2N-1 – 1!•  Negation: Invertera varje bit (det boolska

komplementet), addera sedan 1.!•  Expansion av bitlängd: Lägg till ytterligare bit

positioner till vänster om teckenbiten, med samma värde som teckenbiten.!

•  Overflow-regeln: Om två nummer med samma tecken adderas, så har det blivit overflow om resultatet har ett motsatt tecken.!

•  Subtraktionsregeln: För att subtrahera B från A, ta två-komplementet av B och addera till A."

28!

Page 29: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

(Alternativt sätt att detektera overflow)"

29!

(+7) + (+2)

(+9)

0111 + 0010

1001

1 1 0

c4=0 c3=1

Overflow eftersom c4 och c3 är olika!

Page 30: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

(Alternativt sätt att detektera overflow)"

30!

(-7) + (+2)

(-5)

1001 + 0010

1011

0 0 0

c4=0 c3=0

Inte overflow eftersom c4 och c3 är lika!

Page 31: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

(Alternativt sätt att detektera overflow)"

31!

(+7) + (-2)

(+5)

0111 + 1110

10101

1 1 1

c4=1 c3=1

Inte overflow eftersom c4 och c3 är lika!

Page 32: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

(Alternativt sätt att detektera overflow)"

32!

(-7) + (-2)

(-9)

1001 + 1110

10011

0 0 1

c4=1 c3=0

Overflow eftersom c4 och c3 är olika!

Page 33: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  För 4-bit-tal!– Overflow om c3 och c4 är olika!– Annars är det inte overflow!

!•  För n-bit-tal!

(Logik för att detektera overflow)"

33!

Overflow = c3c 4 + c 3c4 = c3 ⊕ c4

Overflow = cn−1 ⊕ cn

Page 34: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Aritmetisk Hårdvara"

34!

Page 35: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Halv-adderaren (eng. Half adder)"

c0a

+ 0bcs

0 0

0 1

0 1

0

1

a b

a b c s0 0 0 00 1 0 11 0 0 11 1 1 0

0 1

1 0

0 1

0

1

a b

c = a b s =a ⊕ b

HA a b

s c

a b

s c

35!

Page 36: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Hel-adderaren (eng. Full adder)"

cutcin

0 a+ 0 b

cuts

0 0

0 1

00 01 11 10

0

1

ab cin a b cin cut s

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

cut = a b + cina + cinb

1 0

1 1

0 1

1 0

00 01 11 10

0

1

ab cin

s = a ⊕ b ⊕ cin

0 1

1 0 FA

a b cin

s cut

36!

Page 37: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  Vi kan även konstruera en hel-adderare mha två halv-adderare och en ELLER-grind !

•  Komposition tillåter att konstruera nya system med hjälp av kända byggblock!

Hel-adderare Komposition med halv-adderare"

37!

HA HA

a b cin

s cut FA

a b cin

s cut

Page 38: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Hel-adderaren (eng. Full adder)"

0 0

0 1

00 01 11 10

0

1

ab cin a b cin cut s

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

cut = a b + cina + cinb

1 0

1 1

0 1

1 0

00 01 11 10

0

1

ab cin

s = a ⊕ b ⊕ cin

0 1

1 0 HA

HA a b cin

s cut FA

a b cin

s cut

38!

(cut) (s)

cutcin

0 a+ 0 b

cuts

Page 39: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  Komposition kan även användas för att konstruera n-bit-adderare !

•  Man behöver n hel-adderare för att konstruera en n-bit-adderare !

Mer komposition"

39!

Page 40: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Ripple-Carry Adderaren (RCA) "

FA

a1 b1

cin1

FA

a0 b0

cin0

s0 s1

FA

an-1 bn-1

cinn-1

sn-1

cut0 cutn-1

an-1bn-1 ... a0 b0

sn-1 ... s0

cin0 cutn-1 n-bit ADD

TD=n*TFA (cin -> cout) A=n*AFA

40!

Page 41: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  Subtraktion kan göras genom addition med två komplementet!–  Invertera alla bitar av den andra operanden!– Addera 1!

Subtraktion"

41!

Page 42: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Add/sub-enheten"

42!

s 0 s 1 s n 1 –

x 0 x 1 x n 1 –

c n n -bit adder

y 0 y 1 y n 1 –

c 0

Add ⁄ Sub control Add/Sub = 0: Addition

Add/Sub = 1: Subtraktion

Page 43: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

EXEMPEL"

43!

s 0 s 1 s n 1 –

x 0 x 1 x n 1 –

c n n -bit adder

y 0 y 1 y n 1 –

c 0

Add ⁄ Sub control Add/Sub = 0: Addition

Add/Sub = 1: Subtraktion

x = 1010 y = 0110 Add = 0 (addition)

Page 44: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

EXEMPEL"

44!

s 0 s 1 s n 1 –

x 0 x 1 x n 1 –

c n n -bit adder

y 0 y 1 y n 1 –

c 0

Add ⁄ Sub control Add/Sub = 0: Addition

Add/Sub = 1: Subtraktion

x = 1010 y = 0110 Add = 1 (subraktion)

Page 45: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Arithmetic Logic Unit (ALU)"

MUX

LU AU f0 f1 Funktionsväljare

A/L

f0 f1 A/L

x y

cin ALU

A/L f1 f0 Funktion 0 0 0 x+y 0 0 1 x-y 1 0 0 x and y 1 0 1 x or y 1 1 0 x xor y 1 1 1 x nor y

45!

Page 46: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

EXEMPEL"

MUX

LU AU f0 f1 Funktionsväljare

A/L

f0 f1 A/L

x y

cin ALU

A/L f1 f0 Funktion 0 0 0 x+y 0 0 1 x-y 1 0 0 x and y 1 0 1 x or y 1 1 0 x xor y 1 1 1 x nor y

46!

x = 1001 y = 0110

Page 47: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  Komparatorn implementeras som subtraktionskrets!

(Komparator)"

47!

Page 48: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  A < B -> A – B < 0 R = A – B -> A + (-B)!

•  Inspektera Carry-out, 1 -> A<B false e.g 7<2!

A<B (unsigned)"

48!

(+7) + (-2)

(+5)

0111 + 1110

10101

1 1 1

c4=1

Page 49: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  A < B -> A – B < 0 R = A + (-B)!

•  Inspektera Carry-out, 0 -> A<B true e.g 2<7!

A<B (unsigned)"

49!

(+2) + (-7)

(+5)

0010 + 1001

01011

0

C4=0

Page 50: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  A < B -> A – B < 0 R = A + (-B)!

•  Inspektera N, 1 -> A<B true e.g 2<7!

A<B (signed)"

50!

(+2) + (-7)

(+5)

0010 + 1001

01011

0

N=1

Page 51: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  A < B -> A – B < 0 R = A + (-B)!

•  Inspektera N, 1 -> A<B true, men det stämmer inte e.g 7< -5!

A<B (signed)"

51!

(+7) + (-(-5))

(+5)

0111 + 0101

01100

0

N=1

Page 52: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  Vi måste även ta hänsyn till overflow!•  Dvs, A<B -> A-B<0, N xor V = 1!

A<B (signed)"

52!

(+7) + (-(-5))

(+5)

0111 + 0101

01100

0

N=1

V=1 (A,B samma tecken R motsatt tecken)

Page 53: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

•  Olika beteende om vi betraktar talen som signed eller unsigned!

•  Unsigned, kolla carry-out!•  Signed, kolla V xor N!•  Därför två olika instruktioner i MIPS!

–  SLTU (unsigned)!–  SLT (signed)!–  (se MIPS instruktionsuppsättning för fler varianter)!

A<B "

53!

Page 54: Digital Aritmetik Unsigned Integers Signed Integers...Digital Aritmetik Unsigned Integers Signed Integers" Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Slides! Per Lindgren!

Sammanfattning"

•  Addition och subtraktion av heltal!– Två-komplementet!– Subtraktion av ett tal implementeras som

addition med dess två-komplement!•  ALU utför både !

– aritmetiska (ADD,SUB, SLT/SLTU etc.) och!–  logiska operationer (AND, OR, etc.)!!

D0011E, Digitalteknik!