Escolar Documentos
Profissional Documentos
Cultura Documentos
EXPERIMENT 4
PROCEDURES, STACKS AND ARRAYS IN ASSEMBLY LANGUAGE
SECTION: B-2
GROUP: 06
DEPARTMENT: EEE
L3 / T2
MOV AX, 1H
MOV BX, 2H
MOV CX, 3H
MOV DX, 4H
MOV [1500H], AX
CALL LCM
MOV BX, CX
XCHG AX, BX
MOV [1500H], AX
CALL LCM
MOV BX, DX
XCHG AX, BX
MOV [1500H], AX
CALL LCM
HLT
LCM PROC
PUSH CX
PUSH DX
MOV CX, AX
LCM ENDP
CODE ENDS
END
Result of emulation:
AX=000C BX=0006 CX=0003 DX=0004 SP=FFFE BP=0000 SI=0000 DI=0000 DS=0100
ES=0100 SS=0100 CS=0100 IP=0024 NV UP EI PL ZR NA PE NC 0100:0024 F4 HLT
b) Program 2: Division by shifting
CODE SEGMENT
ASSUME CS:CODE, DS:CODE
SHL DX, 1
AND DX, 0FFFEH
JMP LAST
CHANGE: SUB BX, [1500H]
SHL DX, 1
ADD DX, 1 ; DX contains result
JMP LAST
LAST: LOOP LEV
MOV AX, DX
HLT
CODE ENDS
END
Result of emulation:
AX=0064 BX=0000 CX=0000 DX=0064 SP=FFFE BP=0000 SI=0000 DI=0000 DS=0100
ES=0100 SS=0100 CS=0100 IP=0032 NV UP EI PL NZ AC PO NC 0100:0032 F4 HLT
POP CX ; CX = 7
DIV CX
HLT
CODE ENDS
END
Result of emulation:
AX=0005 BX=0007 CX=0000 DX=0003 SP=FFFC BP=0000 SI=000E DI=0000 DS=0100
ES=0100 SS=0100 CS=0100 IP=0028 NV UP EI PL NZ NA PO NC 0100:0028 F4 HLT
Comments:
This code gives mean of an array in integer form. Actual result = AX + ( DX / BX )