Assembly Lang Intel 8086 Ch 9 10 MUL
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 ; source= register, mem; not const. – One no. is in ‘source’ – Another no. is in AL – Product is in AX
• Word form – Source ; 16 -bit reg/mem – not const. – AX – MSB in DX, LSB in AX [DX: AX]
Q. A = 5 x. A – 12 x. B A, B = word variables. No overflow. MOV IMUL SUB AX, 5 A A, AX AX, 12 B A, AX ; AX=5 x. A ; A=5 A ; AX=12 B ; A=5 A – 12 B
Q. Factorial that will compute N!
DIV, IDIV • DIV – divide – unsigned division • IDIV – integer divide – DIV divisor 15 ÷ 3 = 5, 3 is the 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
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
Divide overflow
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.
• DUPs may be nested…
- Slides: 10