这里要分清楚,你ascii码 是10进制的数字序列 还是
16进制的数字序列?
如果是16进制的数字序列,只需要每一位减30h或37h得到对应的16进制数位,再通过左移4位 与转换下一位相或即可。如此循环。
如果是10进制的数字序列,则需要每一位减30h得到对应的10进制数位,通过乘10再相加转换的下一位即可。如此循环。
追问哦哦哦忘写了不好意思,是10进制的数字序列
追答 CODE SEGMENT
ASSUME CS:CODE
STR1 DB '255' ; 不超过65535
N EQU $-STR1
X DW 0
START: PUSH CS
POP DS
PUSH CS
POP ES
LEA SI,STR1
MOV CX,N
MOV DI,0
CLD
@1:
SHL DI,1
MOV BP,DI
SHL DI,1
SHL DI,1
ADD DI,BP
LODSB
AND AL,0FH
XOR AH,AH
ADD DI,AX
LOOP @1
MOV X,DI
MOV AH,4CH
INT 21H
CODE ENDS
END START