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