TK2633 : MICROPROCESSOR & INTERFACING

24
TK2633 : MICROPROCESSOR & INTERFACING Lecture 10: Fixed Point Arithmetic Lecturer: Ass. Prof. Dr. Masri Ayob

description

TK2633 : MICROPROCESSOR & INTERFACING. Lecture 10: Fixed Point Arithmetic. Lecturer: Ass. Prof. Dr. Masri Ayob. Fixed Point Arithmetic. 8-bit binary addition. Suppose that the ten 8-bit numbers, stored at memory locations 2800H through 2809H, are added. - PowerPoint PPT Presentation

Transcript of TK2633 : MICROPROCESSOR & INTERFACING

Page 1: TK2633 : MICROPROCESSOR & INTERFACING

TK2633 : MICROPROCESSOR & INTERFACING

TK2633 : MICROPROCESSOR & INTERFACING

Lecture 10: Fixed Point Arithmetic

Lecture 10: Fixed Point Arithmetic

Lecturer: Ass. Prof. Dr. Masri Ayob

Page 2: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 2

Fixed Point Arithmetic.Fixed Point Arithmetic.

8-bit binary addition. Suppose that the ten 8-bit

numbers, stored at memory locations 2800H through 2809H, are added.

To sum these data, an 8-bit instructions are chosen.

The ADD M instruction is chosen.

Since this is to add 10 numbers, the programme loop construct is ideal for this problem.

Figure illustrates the flowchart to tackle the problem.

Page 3: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 3

The 8-bit binary addition listed in the example below, results in a problem that the largest sum can be only 0FFH.

This sum is appropriate only if 10 numbers are small, therefore to avoid overflow for bigger sum operation, the 16-bit sum operation will take place.

8-bit binary addition

Page 4: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 4

Example of 16-bit summation.

8-bit binary addition

Page 5: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 5

Suppose that two lists of numbers, each 10H bytes long, appear in the memory to be subtracted.

A programme must take the number stored at LIST2 and subtract it from the number stored at LIST1.

The difference must be stored at a location in LIST2.

This operation repeats 10H times until all sets of numbers are subtracted.

Figure illustrates the process.

8-bit binary subtraction

Page 6: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 6

8-bit binary subtraction: Exercise

There are two lists of numbers (LIST1 and LIST2), each 10H bytes long, appear in the memory. Write a program to take the number stored at LIST2 and subtract it from the number stored at LIST1. The difference must be stored at a location in LIST2.

Page 7: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 7

Repeated addition is the simplest method of multiplication to understand.

Suppose to multiply two 8-bit numbers, one number can be used as the loop counter.

The other number can be added the number of times stored in the loop counter.

Figure illustrates how the number 6 can be multiplied by 3.

Unsigned Multiplication by Repeated Addition

Page 8: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 8

Unsigned Multiplication by Repeated Addition

Page 9: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 9

Unsigned Constant MultiplicationUnsigned Constant Multiplication

Instead of using the repeated addition technique presented earlier, another technique often results in a much faster multiplication, which using DAD instruction.

The easiest way to multiply by 4 is by using the DAD H instruction.

Remember that if double HL twice, it is multiplied by 4. Example :

Page 10: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 10

The most flexible version of multiplication is the unsigned multiplication shift and add algorithm.

Observe the example below, the unsigned multiplication is a combination of shifting the number followed by addition for every shifted number.

Figure below, illustrates the process of shifting and adding number 9 and 15.

Unsigned Multiplication Algorithm

Page 11: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 11

The flowchart example to perform the algorithm.

Unsigned Multiplication Algorithm

Page 12: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 12

Unsigned Multiplication Algorithm

Page 13: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 13

Page 14: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 14

Modified Flowchart diagram to perform signed multiplication.

Signed Multiplication

Page 15: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 15

To do the signed multiplication, the multiplicand and multiplier are exclusive ORed together.

The result, which indicates the sign of the product, is saved in the B register.

Both numbers are then adjusted so that they are positive before the MULT subroutine is called.

Upon returning from the MULT subroutine, the sign of the B register shows the sign of the product.

For a negative result, the product in the HL register pair must be negated to form a negative product.

For a positive result, the product does not change.

Signed Multiplication

Page 16: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 16

Signed Multiplication: Modification of the previous program

Page 17: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 17

If data are shifted to the left, they multiply by 2 for each bit position of the shift.

If data are shifted to the right, they divide by 2 for each bit position of the shift.

Knowing this as a technique used to multiply by a constant, a technique can be developed so that a number can be divided by any power of 2.

Division by a constant

Page 18: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 18

Page 19: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 19

Example shows how the signed contents of the accumulator are divide by 4 with the result rounded.

Notice that a shift left copies the sign bit into the carry flag before shifting right twice.

Signed division by a constant

Page 20: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 20

To divide a number by any integer value, a division algorithm is normally used to develop a subroutine. The division algorithm uses a combination of shifting left, comparing, subtracting, and setting bits to perform binary division.

Below is an illustration of division algorithm.

Unsigned division algorithm

Page 21: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 21

Unsigned division algorithm

Page 22: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 22

Unsigned division algorithm

Page 23: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 23

Signed binary division is treated in the same manner as signed multiplication.

Signed division algorithm

Page 24: TK2633 : MICROPROCESSOR & INTERFACING

April 21, 2023Written by: Ramizi Mohamed,

Edited by:Dr Masri Ayob 24

Thank youQ&A