我可以通过什么方法读取用户的输入,比如输入是“500”然后将这个数字存储在一个变量中?
我知道的唯一方法是逐个字符地存储它们,可能需要寄存器偏移量。
有没有其他方法,最好直接存储号码?
即类似的东西:
mov var1, inbuffer
环境详情:
32 bit Assembly w/ DGJPP
谢谢你。
啊……DJGPP,我猜是这样。查看 int 21h/0Ah (0Ah in ah
)。或者您可能会更好地使用标准输入上的 readfile 子功能(3Fh ???)。在 Ralf Brown 的中断列表中查找它。
在任何情况下,您将得到的是字符 '5'、'0' 和 '0' - 35h、30h、30h。需要一些处理才能从中获得数字 500。如果您从左到右读取数字,请将寄存器归零以用作“到目前为止的结果”。从输入缓冲区中读取一个字符。如果它是有效的十进制数字,减去“0”以将字符转换为数字,将“到目前为止的结果”乘以 10,然后添加新数字。重复直到你用完字符。