BACHELOR OF COMPUTER APPLICATIONS
Course Code : BCSL-022
Course Title : Assembly Language Programming Lab
Assignment Number : BCA(II)/BCSL022/Assign/14-15
Maximum Marks : 50
Weightage : 25%
Write and run (using appropriate calling program) a near procedure in assembly language that converts two unpacked BCD digits to a packed BCD digit. Both the unpacked BCD digits are passed as parameters on the stack. The packed BCD byte is returned back on the AL register itself.
DATA SEGMENT
BCD DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AX,DATA
MOV DS,AX
PUSH 04H
PUSH 05H
CALL PACKBCD
MOV BCD,AL
MOV AH,4CH
INT 21H
CODE ENDS
PACKBCD PROC NEAR
POP DX
POP AX
MOV AH,AL
POP BX
MOV AL,BL
MOV CL,4
ROL AH,CL
ADD AL,AH
PUSH DX
RET
PACKBCD ENDP
END START
Program Code :
[codesyntax lang=”asm” lines=”normal”]
DATA SEGMENT
BCD DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AX,DATA
MOV DS,AX
PUSH 04H
PUSH 05H
CALL PACKBCD
MOV BCD,AL
MOV AH,4CH
INT 21H
CODE ENDS
PACKBCD PROC NEAR
POP DX
POP AX
MOV AH,AL
POP BX
MOV AL,BL
MOV CL,4
ROL AH,CL
ADD AL,AH
PUSH DX
RET
PACKBCD ENDP
END START
[/codesyntax]
Screen shots :-
Before Execution :-
After Execution :-