如何使用程序集获取整数输入

时间:2011-07-31 22:39:13

标签: 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我怎么得到值64h所以我可以添加,减去等 而不是一个字符串,每个字节是数字的ascii表示 然后我如何输出像64h这样的值到屏幕,这样它显示100? 我不需要代码只是一些指导

谢谢!

2 个答案:

答案 0 :(得分:7)

一旦有了ASCII表示,就可以使用数字按顺序编码这一事实逐位建立结果。在伪代码中,从左到右阅读(即从最高位开始):

  • result初始化为0
  • 表示每个数字cresult *= 10; result += (c - '0');
  • result包含字符串
  • 的数值

答案 1 :(得分:1)

查看二进制编码的小数BCD。它可以更有效地做到这一点