## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

**48/3248/32-bit division algorithm
**

Vittorio GIOVARA Alberto GRAND

**Formulation of the problem
**

Our goal is to find an algorithm that is able to compute the residual of the division between a 48-bit dividend and a 32-bit divisor using an 8086 machine. Input numbers are expressed according to the module and sign representation.

Invariance property (I)

The invariance property holds true when dividing two real numbers. In general, given a, b ∈ R, the result of the division a / b will not change if we multiply or divide both the dividend and the divisor by a given number k other than 0. Example: 84 / 6 = (84 / 3) / (6 / 3) = 28 / 2 = 12

Invariance property (II)

How can this property be useful to the solution of our problem? Since the 8086 processor has built-in capabilities for handling 32-bit/16-bit divisions, we may choose k = 216 , so as to reduce the length of the operands A and B to respectively 32 and 16 bits. Note that the division by a power of 2 can efficiently be implemented through a right shift.

**Invariance property (III)
**

A = B B / 216 A / 216 =

Is this result correct? Are the two operations still equivalent?

Invariance property (IV)

In general, the answer is no. This is because, by performing a right shift, we are discarding all the least significant bits of the operands. Nonetheless, the result we obtain is still close to the true quotient. Example: 184 / 21 = 8, R = 16 (184 / 10) / (21/10) ≅ 18 / 2 = 9

Approximation of the quotient

The result obtained by dividing the MS 32 bits of A by the MS 16 bits of B may thus be used as an initial approximation of the true quotient.

The algorithm (I)

The division between A47…16 and B31…16 is initially performed, regardless of the sign of the operands. The approximated quotient Q is then multiplied by the divisor B, in order to obtain A* . A* is subsequently compared with A.

The algorithm (II)

If A > A*, then we check if their difference is larger than B, i.e. we check whether B fits one more time in A.

◦ If this is the case, A* is incremented by B and we go back to the initial test. ◦ Otherwise, the difference is the sought residual.

If A > A*, then A* is decremented by B and we go back to the initial test. Otherwise, A = A*, so the sought residual is 0.

**Handling of signed values (I)
**

The sign of the operands is stored in a register (which is then pushed onto the stack) and later retrieved to adjust the result. This is achieved by means of an AND operation between the 8 MSBs of the two operands and the bitmask 80H.

Handling of signed values (II)

Both operands are then made positive by forcing a 0 in their MSB, by means of an AND operation between the 8 MSBs and the bitmask 7FH. The algorithm therefore treats the operands as if they were positive.

**Adjustment of the residual (I)
**

Note that: 17 / 4 = 4, R = 1 = R* BUT (-17) / 4 = -5, R = 3 = 4 – R* 17 / (-4) = -4, R = 1 (-17) / (-4) = 5, R = 3 = 4 – R*

**Adjustment of the residual (II)
**

We can infer the rule from the previous example:

◦ If the dividend is positive, the residual is the computed one ◦ If the dividend is negative, the residual is the complement to the divisor of the computed one.

The residual is therefore adjusted if the dividend is negative. The original sign of the operands is finally restored.

…that’s all, folks! …that’s all, folks!

- 1 1 Variables Expressions (2)
- multiplication strategies
- Modul PROBIM-M3
- The Use of Euclids Division Lemma to Prove Mathematical Relationships
- WEEK 1
- Floating-point Package for Intel 8008 and 8080 Microprocessor - Ll Lab (171286)
- [slides] Microprocessor-Based Systems - 48/32-bit division algorithm - flow chart
- at wooord
- 111
- Lesson Plan
- Microprocessor-Based Systems - 48/32-bit division algorithm
- 01 7thgrade math unit
- De Forest's Training Vol 1
- math lesson 1
- liki3
- Bode Plot
- math 7 plus unit 2 overview
- Exp lit DYNAMICS.doc
- D_Optimal
- Data+Compression
- 18 Polynomials
- MATLAB Code for Speech Recognition
- Two 3 Trees Deletion
- Number theory (1).doc
- Fraction Combo 3
- Algebra
- Computer Shopper - October 2015 UK
- algo - ex2 - incomplete!
- Manual de Usuario control de acceso iButton Ingles.pdf
- Factorization

- Telecommunication Electronics
- View Conference Program 2010
- [slides] Parallel and Distributed Computing on Low Latency Clusters
- Il caso Ryanair
- [slides] Il caso Ryanair
- Microonde
- La differenziazione geografica della regolamentazione nei mercati d’accesso alla rete fissa
- [slides] Microprocessor-Based Systems - 48/32-bit division algorithm - flow chart
- Characterization of Technological Processes
- [slides] I Mercati Geografici
- Metodi Numerici per Sistemi Differenziali
- Tornato eSaver
- Elettronica Applicata
- Certificazione e Standard nei Sistemi di Telecomunicazioni
- Parallel and Distributed Programming on Low Latency Clusters
- Sistemi Elettronici Digitali
- Esempi di Relazione di Laboratorio per il Corso di "Elettronica Applicata"
- Controlli Automatici
- Introduzione all'Analisi in Tempo-Frequenza
- Real-Time Operating Systems Homework Report
- GLE-MiPS Compiler Requisites
- Video Multiple Description Coding (MDC)
- Porting serial Fortran 77 numerical computation code for OpenMP applications
- Fault Tolerant Processor Using Hybrid Hardware Redundancy
- Elettronica Analogica
- Real-Time Operating Systems Laboratory Report
- Radio Frequency Devices - Homework Reports
- Designing a custom DLX processor with Very Long Instruction Word support
- Custom Instruction on FPGA for Viterbi Algorithm
- Progetto di un Filtro Passa-Alto

Read Free for 30 Days

Cancel anytime.

Close Dialog## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

Loading