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 :
- 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
Screen shots :-
Before Execution :-
After Execution :-