我需要用户输入ASCII字符,然后将其转换为十进制字符。 这是我想到的算法,但不知道如何在代码中显示它。想法?它只需要0-9个字符,并将对此进行验证。我没有写任何与ASCII有关的内容,也不确定使用什么语法。这是我的伪代码算法
Give it a counter variable:
counter = 0
getCharacters( next character ) ; next ASCII character from left
while ( next character != CR(enter key)
validate next character
digit = next character - 30hex
counter = (counter * 10) + digit
end loop
return counter in AX
我如何将其置于直接masm中?我是一个noobie。
答案 0 :(得分:0)
我使用类似的东西来存储AX
中的输入数字。您可以在gist.github.com上找到程序here
INDEC PROC
PUSH BX
PUSH DX
XOR BX, BX
XOR AX, AX
READ:
MOV AH, 1
INT 21H
CMP AL, CR
JE END_READ
CMP AL, LF
JE END_READ
CMP AL, '0'
JNGE NON_INTEGER
CMP AL, '9'
JNLE NON_INTEGER
MY_LOOP:
AND AX, 000FH
PUSH AX
MOV AX, 10
MUL BX
POP BX
ADD BX, AX
JMP READ
END_READ:
MOV AX, BX
POP DX
POP BX
RET
NON_INTEGER:
LEA DX, NON_NUM ;; The NON_NUM is a `$` terminated string to display error
MOV AH, 9
INT 21H
JMP READ
INDEC ENDP