TITLE PROG7-4 CONVERT ASCII TO BINARY PAGE 60,132 .MODEL SMALL .STACK 64 ;---------------------------- .DATA TEN DW 10 ASCNUM DB '09325' STRLEN DB 5 ORG 10H BINNUM DW 0 ;---------------------------- .CODE ASC2B_CON PROC FAR MOV AX,@DATA MOV DS,AX SUB DI,DI ;CLEAR DI FOR THE BINARY(HEX) RESULT MOV SI,OFFSET ASCNUM ;SI = BEGINNING OF ASCII STRING MOV BL,STRLEN ;BL = LENGTH OF ASCII STRING SUB BH,BH ;BH=0 USE BX IN BASED INDEX MODE DEC BX ;BX IS OFFSET TO LAST DIGIT MOV CX,1 ;CX = WEIGHT FACTOR AGAIN: MOV AL,[SI+BX] ;GET THE ASCII DIGIT AND AL,0FH ;STRIP OFF '3' SUB AH,AH ;CLEAR AH FOR WORD MULTIPLICATION MUL CX ;MULTIPLY BY THE WEIGHT ADD DI,AX ;ADD IT TO BINARY (HEX)RESULT MOV AX,CX ;MULTIPLY THE WEIGHT FACTOR MUL TEN ; BY TEN MOV CX,AX ; FOR NEXT ITERATION DEC BX ;DECREMENT DIGIT POINTER JNS AGAIN ;JUMP IF COUNTER >= 0 MOV BINNUM,DI ;SAVE THE BINARY(HEX)RESULT MOV AH,4CH INT 21H ;GO BACK TO DOS ASC2B_CON ENDP END ASC2B_CON