+ All Categories
Home > Documents > Multiplication and Division - Hampden-Sydney...

Multiplication and Division - Hampden-Sydney...

Date post: 11-Oct-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
27
Multiplication and Division Lecture 17 Sections 3.1 - 3.4 Robb T. Koether Hampden-Sydney College Fri, Oct 4, 2019 Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 1 / 27
Transcript
Page 1: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Multiplication and DivisionLecture 17

Sections 3.1 - 3.4

Robb T. Koether

Hampden-Sydney College

Fri, Oct 4, 2019

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 1 / 27

Page 2: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 2 / 27

Page 3: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Outline

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 3 / 27

Page 4: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Outline

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 4 / 27

Page 5: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Multiplication Algorithm

8-bit Unsigned Multiplication01101001

x 01101101----------

0110100101101001

0110100101101001

01101001--------------10110010110101

Notice that the product is nearly twice as long as the multiplicandand the multiplier.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 5 / 27

Page 6: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Multiplication Algorithm

Because the product of two 32-bit integers can be as large as64-bits, MIPS provides a register pair hi and lo to hold theproduct.MIPS provides two multiply instructions.

mult - signed multiply.multu - unsigned multiply.

They both put the 64-bit product into the registers hi and lo.The contents of hi and lo can be moved to general purposeregisters using the instructions

mfhi - move from hi.mflo - move from lo.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 6 / 27

Page 7: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Multiplication Algorithm

32-bit Unsigned Multiplication

0x00000005× 0x00000006

0x00000005× 0xfffffffa

0xfffffffb× 0xfffffffa

Run the program unsigned_mult.asm using the aboveexamples and explain the results.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 7 / 27

Page 8: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Outline

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 8 / 27

Page 9: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Multiplication Algorithm

Consider x × y using mult and multu.mult will multiply x × y and give the product the appropriate sign.multu will treat both integers as positive.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 9 / 27

Page 10: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

4-bit Signed Multiplication

4-bit Signed Multiplication1110 (-2)

x 1101 (-3)----1110

00001110

1110-----10110110

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 10 / 27

Page 11: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Multiplication Algorithm

The two’s complements of x and y are the integers 232 − x and232 − y .

(232 − x)(232 − y) = 264 − 232x − 232y + xy

= 232(232 − (x + y)) + xy .

Thus, hi will contain the two’s complement of x + y and lo willcontain xy (assuming that xy < 232).What are the contents of hi and lo when x and −y are multipliedby multu?

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 11 / 27

Page 12: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Multiplication Algorithm

32-bit Signed Multiplication

0x00000005× 0x00000006

0x00000005× 0xfffffffa

0xfffffffb× 0xfffffffa

In the program unsigned_mult.asm, change mulu to mul.Run the program, using the above examples and explain theresults.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 12 / 27

Page 13: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Outline

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 13 / 27

Page 14: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Outline

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 14 / 27

Page 15: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Division Algorithm

8-bit Unsigned Division10100 r 10

--------101)1100110

101---010000---101101---001000---010000---10

102÷ 5 = 20 rem 2.Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 15 / 27

Page 16: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

MIPS Quotient and Remainder

As we saw in the previous example, integer division results in twonumbers: the quotient and the remainder.MIPS stores the quotient in lo and the remainder in hi.We then use mfhi or mflo to retrieve the one that we want.Note that the remainder of a÷ b is the same as a mod b.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 16 / 27

Page 17: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

MIPS Division

Run the program int_div.asm.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 17 / 27

Page 18: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Outline

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 18 / 27

Page 19: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

MIPS Division

Change divu to div in the program int_div.asm and run itagain.Enter combinations of positive and negative numbers.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 19 / 27

Page 20: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Sign of the Quotient and Remainder

When dividing a by b, the quotient q and remainder r must satisfythe following:

a, b, q, and r must satisfy the equation

a = qb + r .

The sign of q must be the same as the sign of ab.The sign of r must be the same as the sign of a.r must satisfy

0 ≤ |r | < |b|.

These four rules together determine the values of q and r .

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 20 / 27

Page 21: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Sign of the Quotient and Remainder

Example (Positive ÷ Positive)Let a = +102 and b = +5.Then q must be positive, r must be positive, and 0 ≤ r < 5.The only possible solution is

102 = (+20)(+5) + 2,

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 21 / 27

Page 22: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Sign of the Quotient and Remainder

Example (Positive ÷ Negative)Let a = +102 and b = −5.Then q must be negative, r must be positive, and 0 ≤ r < 5.The only possible solution is

102 = (−20)(−5) + 2,

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 22 / 27

Page 23: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Sign of the Quotient and Remainder

Example (Negative ÷ Positive)Let a = −102 and b = +5.Then q must be negative, r must be negative, and 0 ≤ |r | < 5.The only possible solution is

−102 = (−20)(+5)− 2,

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 23 / 27

Page 24: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Sign of the Quotient and Remainder

Example (Negative ÷ Negative)Let a = −102 and b = −5.Then q must be positive, r must be negative, and 0 ≤ |r | < 5.The only possible solution is

−102 = (+20)(−5)− 2,

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 24 / 27

Page 25: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

The Sign of the Quotient and Remainder

This is why the mod operator % in C sometimes returns a negativevalue.In mathematics, on the other hand, the mod operator alwaysproduces a nonnegative value.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 25 / 27

Page 26: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Outline

1 MultiplicationUnsigned MultiplicationSigned Multiplication

2 DivisionUnsigned DivisionSigned Division

3 Assignment

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 26 / 27

Page 27: Multiplication and Division - Hampden-Sydney Collegepeople.hsc.edu/faculty-staff/robbk/Coms361/Lectures/Lectures 2019... · 32-bit Signed Multiplication 0x00000005 0x00000006 0x00000005

Assignment

AssignmentRead Sections 3.1 - 3.4.

Robb T. Koether (Hampden-Sydney College) Multiplication and Division Fri, Oct 4, 2019 27 / 27


Recommended