1 / 15

Assembly Language – Lab 5

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.

patch
Download Presentation

Assembly Language – Lab 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assembly Language – Lab5 MUL, DIV, Stack, INDEC, OUTDEC

  2. 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

  3. Example 1 • Program to multiply two 8 bit numbers.

  4. 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.

  5. 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

  6. 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.

  7. Example 2 • Divide 16 bit numbers by an 8 bit numbers.

  8. 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

  9. Example 3 • Program to swap the content of AX and BX.

  10. 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. • To invoke a procedure, the CALL instruction is used. • name PROC • . • . • RET • name ENDP

  11. 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

  12. OUTDEC Procedure PGM9_1.ASM

  13. INDEC Procedure PGM9_3.ASM

  14. INDEC Procedure PGM9_3.ASM

  15. INDEC / OUTDEC ProceduresMAIN PROGRAM

More Related