我有一些关于汇编的问题,有没有可能在没有10 compares and branches的情况下转换数字(0,1,2,3,4,5,6,7,8,9)的ASCII码
if(input == 48) return 0;
...(我说的是汇编上的代码!)提前感谢
发布于 2010-06-23 05:04:09
return input-'0';
当然,考虑到输入是一个数字,这一点是肯定的。你可以用C语言检查它,如下所示:
if(input >= '0‘& input <= '9')....
发布于 2010-06-23 05:06:27
只需减去48 (字符0的ASCII值)。
SUB EAX, 48确切的语法取决于您使用的特定处理器和汇编程序。
发布于 2010-06-23 05:07:41
我不是一个组装的人,但是this建议你可以使用
sub ebx, 48从存储在相应寄存器中的ascii代码中减去48。当然,这是以英特尔组装为前提的,但我可以想象其他公司也有类似的功能。
https://stackoverflow.com/questions/3097116
复制相似问题