0

我可以通过什么方法读取用户的输入,比如输入是“500”然后将这个数字存储在一个变量中?

我知道的唯一方法是逐个字符地存储它们,可能需要寄存器偏移量。

有没有其他方法,最好直接存储号码?

即类似的东西:

mov var1, inbuffer

环境详情: 32 bit Assembly w/ DGJPP

谢谢你。

4

1 回答 1

0

啊……DJGPP,我猜是这样。查看 int 21h/0Ah (0Ah in ah)。或者您可能会更好地使用标准输入上的 readfile 子功能(3Fh ???)。在 Ralf Brown 的中断列表中查找它。

在任何情况下,您将得到的是字符 '5'、'0' 和 '0' - 35h、30h、30h。需要一些处理才能从中获得数字 500。如果您从左到右读取数字,请将寄存器归零以用作“到目前为止的结果”。从输入缓冲区中读取一个字符。如果它是有效的十进制数字,减去“0”以将字符转换为数字,将“到目前为止的结果”乘以 10,然后添加新数字。重复直到你用完字符。

于 2013-02-10T01:04:16.647 回答