【发布时间】:2017-03-19 19:05:38
【问题描述】:
我正在尝试将用户输入的数字字符串转换为整数。
例如,用户输入“1234”作为字符串,我希望将 1234 存储在 DWORD 变量中。
我正在使用lodsb 和stosb 来获取各个字节。我的问题是我无法得到适合它的算法。我的代码如下:
mov ecx, (SIZEOF num)-1
mov esi, OFFSET num
mov edi, OFFSET ints
cld
counter:
lodsb
sub al,48
stosb
loop counter
我知道ECX 计数器会有点偏,因为它读取整个字符串而不仅仅是 4 个字节,所以它实际上是 9,因为字符串是 10 个字节。
我试图使用 10 的幂来乘以单个字节,但我对 Assembly 还很陌生,无法获得正确的语法。如果有人可以帮助算法,那就太好了。谢谢!
【问题讨论】:
-
使用 C 库
标签: string assembly x86 type-conversion int