You are on page 1of 15

Assembly Language – Lab 5

MUL, DIV, Stack, INDEC, OUTDEC


MUL/IMUL Instructions
• The MUL (Multiply) instruction handles unsigned data and the IMUL
(Integer Multiply) handles signed data.

• Example - 8-bit unsigned multiplication (5 * 10h):

MOV AL,5H
MOV BL,10H
MUL BL ; CF=0
Example 1
• Program to multiply two 8 bit numbers.
DIV/IDIV Instructions
• The division operation generates two elements - a quotient and a remainder.
• The DIV instruction is used or unsigned data and the IDIV is used or signed
data.
DIV/IDIV Instructions (Example)
• Divide 8003h by 100h, using 16-bit operands:

MOV DX,0 ; clear dividend, high


MOV AX,8003H ; dividend, low
MOV CX,100H ; divisor
DIV CX ; AX = 0080h, DX = 3
CBW, CWD Instructions
• CBW (convert byte to word) extends AL into AH
− If bit 7 of AL is a 1, the instruction will place FF in AH.
− If bit 7 of AL is a 0, the instruction will place 00 in AH.

• CWD (convert word to doubleword) extends AX into DX


− If bit 15 of AX is a 1, the instruction will place FFFF in DX.
− If bit 15 of AX is a 0, the instruction will place 0000 in DX.

• NOTE: Use this instruction only with signed arithmetic.


Example 2
• Divide 16 bit numbers by an 8 bit numbers.
PUSH/POP Instructions (Stack)
• LIFO (Last-In, First-Out) data structure, items are added and removed from
one end of the structure.
• To ‘push’ an item means to insert it, and to ‘pop’ an item means to remove it.
• Managed by the CPU, using two registers:
• SS (stack segment)
• ESP (stack pointer): point to the top of the stack.

SS

ESP stack
segment

memory
Example 3
• Program to swap the content of AX and BX.
Procedures
• The procedure start with the name of the procedure followed by PROC
(reserved word), at the end of procedure write RET, also the procedure
name followed with ENDP.

name PROC
.
.
RET
name ENDP

• To invoke a procedure, the CALL instruction is used.


INDEC / OUTDEC Procedures
• Procedures used to read and print decimal data.
• INDEC
Code of INDEC exist in file PGM9_3.ASM
• OUTDEC
Code of OUTDEC exist in file PGM9_1.ASM

• Include the two files using INCLUDE directive.


• Syntax:
INCLUDE C:\emu8086\MySource/PGM9_3.ASM
INCLUDE C:\emu8086\MySource/PGM9_1.ASM
OUTDEC Procedure
PGM9_1.ASM
INDEC Procedure
PGM9_3.ASM
INDEC Procedure
PGM9_3.ASM
INDEC / OUTDEC Procedures
MAIN PROGRAM

You might also like