TITLE PROBLEM 5 STSEG SEGMENT STACK DB 32 DUP(?) STSEG ENDS DTSEG SEGMENT Data1 DB '3546882164' Data2 DB '2345611245' Result DB 10 DUP (?) DTSEG ENDS CDSEG SEGMENT MAIN PROC FAR ASSUME CS:CDSEG, DS:DTSEG, SS:STSEG MOV AX, DTSEG MOV DS, AX CALL SUB_ASICII CALL CONVERT_TO_ASICII MOV AH,4CH INT 21H MAIN ENDP SUB_ASICII PROC CLC MOV CX, 10H ;add ten ASICII Numbers MOV BX, 9H ;Start Subtracting LEAST SIGNIFICANT ASICII SUBTRACT: MOV AL,Data1[BX] SBB AL,Data2[BX] AAS ;Result is AL in Unpacked BCD MOV Result[BX],AL ;Move Result to memory location "Result" DEC BX LOOP SUBTRACT ;Continue Untill full Subtraction Completed RET SUB_ASICII ENDP CONVERT_TO_ASICII PROC mov CX,10H ;Push ten Unpacked BCD Numbers onto Stack MOV BX, OFFSET Result PUSH_STACK: ADD [BX], 3030H ;Convert unpacked BCD to ASICII PUSH BX ADD BX,1H LOOP PUSH_STACK ;Continue untill all 10 numbers on stack MOV CX, 10H MOV BX, OFFSET Result POP_STACK: POP AX MOV [BX], AX ADD BX, 1H LOOP POP_STACK RET CONVERT_TO_ASICII ENP END MAIN CDSEG ENDS END MAIN