MOV DX 10 MUL DX ;*10 INCBⅩ 指向下一个字符 JMP SHORT LPI NEXT2: MOV DL, [BXI 取个位数 AND DL, OFH 个位ASCI→未组合BCD ADD AX. DX 加个位数,(AX)=001AH CMP CH 是 JNZ NEXT3 该数非负,转NEXT3 NEG AX 若为负,求补 NEXT3: MOV [DI], AX 存二进制结果 RET CHANGE ENDP CODE ENDS END START
11 MOV DX,10 MUL DX ;*10 INC BX ;指向下一个字符 JMP SHORT LP1 NEXT2: MOV DL,[BX] ;取个位数 AND DL,0FH ;个位ASCII→未组合BCD ADD AX,DX ;加个位数,(AX)=001AH CMP CH,’-’ ;是’-’? JNZ NEXT3 ;该数非负,转NEXT3 NEG AX ;若为负,求补 NEXT3: MOV [DI],AX ;存二进制结果 RET CHANGE ENDP ; CODE ENDS END START
设键入第1个数为26,第2个数为33,则在内存各变量分配如下 STR1 OA 02 32 36 10个 OD 若键入“1234 STR2 OA STR1 OA 02 04 33 31 33 10个 32 OD 33 34 NUM 1A OD 00 21 00 SUM 3B 00 OVER
12 02 0A 32 36 0D … 02 0A 33 33 0D … 00 1A 21 00 3B 00 STR1 STR2 NUM SUM 10个 10个 ‘O’ … … OVER ? ? 04 0A 31 32 34 … STR1 若键入 ‘1234’ 33 0D ‘1’ ‘2’ ‘3’ ‘4’ … 设键入第1个数为26, 第2个数为33,则在内存各变量分配如下: