程序集x86逐个字符地读取字符串

时间:2014-04-13 22:03:02

标签: assembly nasm x86-16

我得到一串数字作为输入,我想逐个字符地读取它以便以整数转换每个数字。

示例输入:54321

我需要将其转换为数值54321才能进行一些操作。

这是我用来阅读的功能

STRING                      DB      20,0 
                            RESB    20

   ;;;;;;;;;   Code here   ;;;;;;;;;

    MOV                     DX,STRING
    MOV                     AH,0Ah
    INT                                     21h

至少如果你能告诉我8086的逻辑或功能对你有用。 感谢

1 个答案:

答案 0 :(得分:1)

字符串只是一个数组。所以第一个字母就是例如" edx" " edx + 1"中的第二个字母; " edx + 2"中的第三个字母;等等..

您可以使用此计算将字符转换回整数:

' chardigit' - 48 = integerdigit

这是可能的,因为ascii' 0'这是一个例子:

"123"

'1' (or 49 in dec) - 48 = 1
'2' (or 50 in dec) - 48 = 2
'3' (or 51 in dec) - 48 = 3

我希望这是可以理解的。