Assembly Language Lab 5 MUL DIV Stack INDEC
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 * 10 h): MOV AL, 5 H MOV BL, 10 H 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 8003 h by 100 h, using 16 -bit operands: MOV MOV DIV DX, 0 ; clear dividend, high AX, 8003 H ; dividend, low CX, 100 H ; divisor CX ; AX = 0080 h, 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 stack segment ESP 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 PGM 9_3. ASM • OUTDEC Code of OUTDEC exist in file PGM 9_1. ASM • Include the two files using INCLUDE directive. • Syntax: INCLUDE C: emu 8086My. Source/PGM 9_3. ASM INCLUDE C: emu 8086My. Source/PGM 9_1. ASM
OUTDEC Procedure PGM 9_1. ASM
INDEC Procedure PGM 9_3. ASM
INDEC Procedure PGM 9_3. ASM
INDEC / OUTDEC Procedures MAIN PROGRAM
- Slides: 15