Assembly Lang. – Intel 8086 Ch. 9 & 10 MUL
Description: Assembly Lang. Intel 8086 Ch. 9 10 MUL unsigned multiplication IMUL integer multiply for signed multiplication If 2 bytes r multiplied product is Word 16 bits If 2 words double-word 32 bits Byte form MUL source
Related Topics
Download Presentation
"Assembly Lang. – Intel 8086 Ch. 9 & 10 MUL" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Presentation Transcript
slide1. Assembly Lang. – Intel 8086Ch. 9 & 10 MUL – unsigned multiplication
IMUL – integer multiply – for signed multiplication
If 2 bytes r multiplied product is Word [16 bits]
If 2 words … double-word [32 bits]<br>
slide2. Byte form –
MUL source ;source= register, mem; not const.
One no. is in ‘source’
Another no. is in AL
Product is in AX<br>
slide3. Word form
Source ; 16-bit reg/mem – not const.
AX
MSB in DX, LSB in AX [DX:AX]<br>
slide4. Q. A = 5xA – 12xB
A, B = word variables.
No overflow.
MOV AX, 5
IMUL A ;AX=5xA
MOV A,AX ;A=5A
MOV AX,12 ;AX=12
IMUL B ;AX=12B
SUB A,AX ;A=5A – 12B<br>
slide5. Q. Factorial that will compute N!<br>
slide6. DIV, IDIV DIV – divide – unsigned division
IDIV – integer divide
DIV divisor
Byte form:
Divisor 8-bt reg/mem
Dividend 16-bit in AX
After division, Quotient 8-bit in AL
…, Remainder 8-bit in AH 15 ÷ 3 = 5, 3 is the divisor<br>
slide7. Word form:
Divisor 16-bit reg/mem
Dividend 32-bit in DX:AX
After division, Quotient 16-bit in AX
…, Remainder 16-bit in DX<br>
slide8. Divide overflow<br>
slide9. Ch. 10 1-D array
DUP – to define arrays whose elements share a common initial value
E.g.,
GAMMA DW 100 DUP (0)
Sets up an array of 100 words, with each entry – initialized to 0.
GAMMA DW 100 DUP (?)
Sets up an array of 100 words, with each entry – UN-initialized.<br>
slide10. DUPs may be nested…<br>
IMUL – integer multiply – for signed multiplication
If 2 bytes r multiplied product is Word [16 bits]
If 2 words … double-word [32 bits]<br>
slide2. Byte form –
MUL source ;source= register, mem; not const.
One no. is in ‘source’
Another no. is in AL
Product is in AX<br>
slide3. Word form
Source ; 16-bit reg/mem – not const.
AX
MSB in DX, LSB in AX [DX:AX]<br>
slide4. Q. A = 5xA – 12xB
A, B = word variables.
No overflow.
MOV AX, 5
IMUL A ;AX=5xA
MOV A,AX ;A=5A
MOV AX,12 ;AX=12
IMUL B ;AX=12B
SUB A,AX ;A=5A – 12B<br>
slide5. Q. Factorial that will compute N!<br>
slide6. DIV, IDIV DIV – divide – unsigned division
IDIV – integer divide
DIV divisor
Byte form:
Divisor 8-bt reg/mem
Dividend 16-bit in AX
After division, Quotient 8-bit in AL
…, Remainder 8-bit in AH 15 ÷ 3 = 5, 3 is the divisor<br>
slide7. Word form:
Divisor 16-bit reg/mem
Dividend 32-bit in DX:AX
After division, Quotient 16-bit in AX
…, Remainder 16-bit in DX<br>
slide8. Divide overflow<br>
slide9. Ch. 10 1-D array
DUP – to define arrays whose elements share a common initial value
E.g.,
GAMMA DW 100 DUP (0)
Sets up an array of 100 words, with each entry – initialized to 0.
GAMMA DW 100 DUP (?)
Sets up an array of 100 words, with each entry – UN-initialized.<br>
slide10. DUPs may be nested…<br>