An Assembly Language program to convert a packed BCD into ASCII digits – IGNOU MCA Assignment 2014 – 15

By | July 18, 2014

 MASTER OF COMPUTER APPLICATIONS
Course Code : MCS-012
Course Title : Computer Organisation and Assembly Language Programming
Assignment Number : MCA(1)/012/Assign/2014-15
Maximum Marks : 100
Weightage : 25%

 

Write a program in 8086 assembly language to convert a four digit packed BCD number into equivalent ASCII digits. The packed BCD number may be assumed to be stored in memory. Your program should print the four ASCII digits.

 

DATA SEGMENT
BCD DW 1234H
ASCII DB 5 DUP (‘$’)
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX

MOV AX,BCD
MOV BH,AH
MOV BL,AL

AND AH,0F0H
AND BH,0FH
AND AL,0F0H
AND BL,0FH

MOV CL,04H
ROL AH,CL

MOV CL,04H
ROL AL,CL

ADD AX,3030H
ADD BX,3030H

LEA SI,ASCII

MOV [SI],AH
INC SI

MOV [SI],BH
INC SI

MOV [SI],AL
INC SI

MOV [SI],BL
INC SI

LEA DX,ASCII
MOV AH,9
INT 21H

MOV AH,4CH
INT 21H
CODE ENDS

END START

program code :

[codesyntax lang=”asm” lines=”normal”]

DATA SEGMENT
BCD DW 1234H
ASCII DB 5 DUP (‘$’)
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX

MOV AX,BCD
MOV BH,AH
MOV BL,AL

AND AH,0F0H
AND BH,0FH
AND AL,0F0H
AND BL,0FH

MOV CL,04H
ROL AH,CL

MOV CL,04H
ROL AL,CL

ADD AX,3030H
ADD BX,3030H

LEA SI,ASCII

MOV [SI],AH
INC SI

MOV [SI],BH
INC SI

MOV [SI],AL
INC SI

MOV [SI],BL
INC SI

LEA DX,ASCII
MOV AH,9
INT 21H

MOV AH,4CH
INT 21H
CODE ENDS

END START

[/codesyntax]

Screen shots :-

Asm_program_4digitBCD_2_ASCII

Before Execution :-

Asm_program_4digitBCD_2_ASCII_V1

After Execution :-

Asm_program_4digitBCD_2_ASCII_V2

Asm_program_4digitBCD_2_ASCII_Out

Leave a Reply