Assembly 如何使用汇编获取整数输入

Assembly 如何使用汇编获取整数输入,assembly,Assembly,Iam正在学习汇编,我发现了如何使用 mov al, 3 ; system call number (sys_read) xor bl, bl ; file descriptor 0 (stdin) mov rcx, buf ; buffer to store input mov dl, 4 ; Lenght of buffer int 0x80 ; interrupt 但这实际上得到了一个字符串,对吗? 我的问题是如何得到一个整数值。。。 那么如果我输入100,我如何

Iam正在学习汇编,我发现了如何使用

mov al, 3    ; system call number (sys_read)
xor bl, bl   ; file descriptor 0 (stdin)
mov rcx, buf ; buffer to store input
mov dl, 4    ; Lenght of buffer
int 0x80     ; interrupt
但这实际上得到了一个字符串,对吗? 我的问题是如何得到一个整数值。。。 那么如果我输入100,我如何得到64h的值,这样我就可以加,减,等等 而不是每个字节都是数字ascii表示形式的字符串 然后我如何向屏幕输出像64h这样的值,使其显示100? 我不需要代码,只需要一些指导


谢谢

一旦有了ASCII表示,就可以利用数字按顺序编码的事实,一个数字一个数字地构建结果。在伪码中,从左到右读取(即从最高有效位开始):

  • 结果
    初始化为0
  • 对于每个数字
    c
    结果*=10;结果+=(c-‘0’)
  • result
    保存字符串的数值

  • 查看二进制编码的小数BCD。它可以更有效地执行此操作

    它看起来像x86。这是真的吗?让我们希望rax、rbx和rdx的上半部分是0…反过来说:整数到字符串:+1同样的方法适用于其他基数(尽管
    c-'0'
    部分对于基数>10会变得更复杂)