从ASCII到普通数字

时间:2010-06-22 21:01:42

标签: assembly

我对汇编有一些疑问,是否可以转换数字的ASCII码 没有10 compares and branches之类的(0,1,2,3,4,5,6,7,8,9)

if(input == 48) return 0;
...

(我正在谈论关于汇编的代码!) 提前谢谢

3 个答案:

答案 0 :(得分:6)

return input-'0';

当然,这是因为输入是一个数字。 您可以在C:

中按如下方式查看

if(输入> ='0'&& input< ='9')....

答案 1 :(得分:2)

只需减去48(字符0的ASCII值)。

SUB EAX, 48

确切的语法取决于您使用的特定处理器和汇编程序。

答案 2 :(得分:1)

我根本不是集会成员,this建议你可以使用

sub     ebx, 48

从存储在相应寄存器中的ascii代码中减去48。当然这假设了英特尔组装,但我想其他人也有类似的功能。