MASTER OF COMPUTER APPLICATIONS
Course Code : MCS-012
Course Title : Computer Organisation and Assembly Language Programming
Assignment Number : MCA(1)/012/Assign/2013 and BCA(II)/012/Assign/2013
Write a program in 8086 assembly language to convert a two digit unpacked BCD number into equivalent ASCII digits and a packed BCD number. The packed BCD number is to be stored in BH register. Your program should print the two ASCII digits. You may assume that the unpacked BCD numbers are in the AL and BL registers
DATA SEGMENT
UNPACKEDBCD1 DB 05H
UNPACKEDBCD2 DB 02H
ASCII1 DB ?
ASCII2 DB ?
PACKEDBCD DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AL,UNPACKEDBCD1
MOV BL,UNPACKEDBCD2
MOV AH,AL
MOV BH,BL
ADD AH,30H
ADD BH,30H
MOV ASCII1,AH
MOV ASCII2,BH
MOV CL,04H
ROL AL,CL
OR AL,BL
MOV BH,AL
MOV PACKEDBCD,BH
MOV DL,ASCII1
MOV AH,2
INT 21H
MOV DL,ASCII2
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
program code :
[codesyntax lang=”asm” lines=”normal”]
DATA SEGMENT
UNPACKEDBCD1 DB 05H
UNPACKEDBCD2 DB 02H
ASCII1 DB ?
ASCII2 DB ?
PACKEDBCD DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AL,UNPACKEDBCD1
MOV BL,UNPACKEDBCD2
MOV AH,AL
MOV BH,BL
ADD AH,30H
ADD BH,30H
MOV ASCII1,AH
MOV ASCII2,BH
MOV CL,04H
ROL AL,CL
OR AL,BL
MOV BH,AL
MOV PACKEDBCD,BH
MOV DL,ASCII1
MOV AH,2
INT 21H
MOV DL,ASCII2
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
[/codesyntax]
Screen shots :-
Output :-
Variables before Execution :-
Variables before Execution :-