addition and subtraction instructions n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Addition and Subtraction Instructions PowerPoint Presentation
Download Presentation
Addition and Subtraction Instructions

Loading in 2 Seconds...

play fullscreen
1 / 25

Addition and Subtraction Instructions - PowerPoint PPT Presentation


  • 79 Views
  • Uploaded on

Addition and Subtraction Instructions. Module M16.3 Section 10.4. Binary Addition. Can add immediate data to a register or memory. Can add data from a register to a register. Can add data from a register to memory. Can add data from memory to a register.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Addition and Subtraction Instructions' - jiro


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
addition and subtraction instructions

Addition and SubtractionInstructions

Module M16.3

Section 10.4

binary addition
Binary Addition
  • Can add immediate data to a register or memory.
  • Can add data from a register to a register.
  • Can add data from a register to memory.
  • Can add data from memory to a register.
  • Can NOT add data directly from one memory location to another.
recall full adder truth table
Recall Full Adder Truth Table

Ci Ai Bi Si Ci+1

C

0

0 1 0 1

0 1 1 1

1

1

1

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

A

B

1

1

0

0

Final carry = 0

binary addition1
Binary Addition

Binary

0 0 1 1 0 1 0 1

0 0 0 1 1 0 0 1

1

0

1

1

0

0

0

Dec

Hex

35

+19

4E

53

+25

78

0

1

0

0

1

1

1

0

add 35h and 19h
Add 35H and 19H

0000 B0 35 MOV AL,35H

0002 04 19 ADD AL,19H

sum = 4EH in AL

carry and overflow
Carry and Overflow

Binary

0 0 1 1 0 1 0 1

0 0 0 1 1 0 0 1

1

0

1

1

0

0

0

Dec

Hex

35

+19

4E

53

+25

78

C = 0

O = 0

0

1

0

0

1

1

1

0

Note no carry from bit 6 to bit 7

and no carry from bit 7 to C.

carry and overflow1

Note carry from bit 6 to bit 7

but no carry from bit 7 to C.

Carry and Overflow

Binary

0 0 1 1 0 1 0 1

0 1 0 1 1 0 1 1

1

1

1

1

1

1

1

Dec

Hex

35

+5B

90

53

+91

144

C = 0

O = 1

1

0

0

1

0

0

0

0

Thinking SIGNED we added two positive numbers

and got a negative result. This can’t be correct!

Therefore, the OVERFLOW bit, O, is set to 1.

Correct answer (144) is outside the range -128 to +127.

carry and overflow2

Note carry from bit 6 to bit 7

and carry from bit 7 to C.

Carry and Overflow

Binary

0 0 1 1 0 1 0 1

1 1 0 1 0 0 1 1

1

1

1

1

0

1

1

Dec

Hex

35

+D3

108

53

- 45

8

C = 1

O = 0

0

0

0

0

1

0

0

0

Ignore

carry

Thinking SIGNED we added a positive number to a

negative number and got the correct positive answer.

Therefore, the OVERFLOW bit, O, is cleared to 0.

Correct answer (8) is inside the range -128 to +127.

carry and overflow3

Note no carry from bit 6 to bit 7

but there is a carry from bit 7 to C.

Carry and Overflow

Binary

1 0 0 1 1 1 1 0

1 1 0 1 0 0 1 1

0

0

0

1

1

1

1

Dec

Hex

9E

+D3

171

- 98

- 45

- 143

C = 1

O = 1

0

1

1

1

0

0

0

1

Ignore

carry

Thinking SIGNED we added two negative numbers

and got a positive answer. This must be wrong!

Therefore, the OVERFLOW bit, O, is set to 1.

Correct answer (-143) is outside the range -128 to +127.

carry and overflow summary
Carry and Overflow Summary

0000 B0 35 MOV AL,35H

0002 04 19 ADD AL,19H

sum = 4EH in AL, C=0, O=0

0004 B0 35 MOV AL,35H

0006 04 5B ADD AL,5BH

sum = 90H in AL, C=0, O=1

0008 B0 35 MOV AL,35H

000A 04 D3 ADD AL,D3H

sum = 08H in AL, C=1, O=0

000C B0 9E MOV AL,9EH

000E 04 D3 ADD AL,D3H

sum = 71H in AL, C=1, O=1

overflow
Overflow
  • Note that the overflow bit was set whenever we had a carry from bit 6 to bit 7, but no carry from bit 7 to C.
  • It was also set when we had a carry from bit 7 to C, but no carry from bit 6 to bit 7.
  • Upshot: The overflow bit is the EXCLUSIVE-OR of a carry from bit 6 to bit 7 and a carry from bit 7 to C.
binary subtraction
Binary Subtraction
  • Can subtract immediate data from a register or memory.
  • Can subtract a register from a register.
  • Can subtract a register from memory.
  • Can subtract memory from a register.
  • Can NOT subtract data in one memory location from that in another memory location.
recall full subtractor truth table

Hex

5

- 7

E

Recall Full Subtractor Truth Table

Ci Ai Bi Di Ci+1

C

0

0 1 0 1

0 1 1 1

0

1

1

0 0 0 0 0

0 0 1 1 1

0 1 0 1 0

0 1 1 0 0

1 0 0 1 1

1 0 1 0 1

1 1 0 0 0

1 1 1 1 1

A

B

1

1

1

0

Final borrow = 1

binary subtraction1
Binary Subtraction

Binary

1 0 1 1 0 1 0 1

0 1 1 0 1 1 1 1

0

1

0

0

1

1

1

Dec

Hex

B5

- 6F

46

181

- 111

70

0

1

0

0

0

1

1

0

Final borrow = 0

subtract 6fh from b5h
Subtract 6FH from B5H

0000 B0 B5 MOV AL,B5H

0002 2C 6F SUB AL,6FH

difference = 46H in AL

binary subtraction2
Binary Subtraction

Binary

1 0 1 1 0 1 0 1

0 1 1 0 1 1 1 1

0

1

0

0

1

1

1

Dec

Hex

B5

- 6F

46

181

- 111

70

C = 0

0

1

0

0

0

1

1

0

This is the correct answer if we consider B5H to be

UNSIGNED and equal to 181.

But suppose you were thinking of B5H = 10110101

as the 2’s complement negative number 01001011 = 4BH

or -75.

binary subtraction3
Binary Subtraction

Binary

1 0 1 1 0 1 0 1

0 1 1 0 1 1 1 1

0

1

0

0

1

1

1

Dec

Hex

B5

- 6F

46

- 75

- 111

-186

C = 0

O = 1

0

1

0

0

0

1

1

0

Thinking SIGNED we subtracted a positive number from a

negative number and got a positive answer. This must be wrong!

Therefore, the OVERFLOW bit, O, is set to 1.

Correct answer (-186) is outside the range -128 to +127.

binary subtraction4

Note no carry from bit 6 to bit 7

but there is a carry from bit 7 to C.

Therefore, overflow, O = 1.

Binary Subtraction

Binary

1 0 1 1 0 1 0 1

1 0 0 1 0 0 0 1

1

0

1

1

0

0

0

Dec

Hex

B5

+91

1 46

B5

- 6F

46

- 75

- 111

-186

0

1

0

0

0

1

1

0

1

Borrow = !Carry

C = 0

Ignore carry

Take the two’s complement of 6F and add.

6FH = 01101111

10010001 = 91H

16 bit addition
16-Bit Addition

37FAH

+82C4H

BABEH

0000 B8 FA 37 MOV AX,37FAH

0003 05 C4 82 ADD AX,82C4H

sum = BABEH in AX

16 bit subtraction
16-Bit Subtraction

A1C9H

-8315H

1EB4H

0000 B8 C9 A1 MOV AX,A1C9H

0003 2D 15 83 SUB AX,8315H

difference = 1EB4H in AX

sign extending bytes to words
Sign extending bytes to words

5 = 00000101

-5 = 11111011 = FBH

16 bits

-5 = 1111111111111011 = FFFBH

To add an 8-bit signed number to a 16-bit signed number

the 8-bit number must be sign extended:

If bit 7 is 1, make bits 8 - 15 one.

If bit 7 is 0, make bits 8 - 15 zero.

cbw convert byte to word
CBW (Convert Byte to Word)
  • The 8086 instruction CBW extends the sign bit of AL into AH.
  • Similar words for other microprocessors:
  • 68000: EXT (sign EXTend)
  • 6809: SEX (Sign EXtend)
add 8 bits to 16 bits signed
Add 8-bits to 16-bits (signed)

FBH

+123AH

Sign extend

FFFBH

+123AH

1235H

0000 B0 FB MOV AL,0FBH ;AL = -5

0002 98 CBW ;AX = -5

0002 05 3A 12 ADD AX,123AH AX = sum