Assembly 从ASCII到常用数字
我有一些关于汇编的问题,是否可以转换数字的ASCII码 (0,1,2,3,4,5,6,7,8,9)没有10Assembly 从ASCII到常用数字,assembly,Assembly,我有一些关于汇编的问题,是否可以转换数字的ASCII码 (0,1,2,3,4,5,6,7,8,9)没有10比较和分支 if(input == 48) return 0; ... (我说的是汇编代码!) 提前感谢返回输入-'0' 当然,这是因为输入是一个数字。 您可以按如下方式在C中进行检查: 如果(输入>='0'&&input,只需减去48(字符0的ASCII值) 确切的语法取决于您使用的特定处理器和汇编程序。我根本不是汇编专家,但建议您可以使用 sub ebx, 48 从存储在相应
比较和分支
if(input == 48) return 0;
...
(我说的是汇编代码!)
提前感谢返回输入-'0'代码>
当然,这是因为输入是一个数字。
您可以按如下方式在C中进行检查:
如果(输入>='0'&&input,只需减去48(字符0的ASCII值)
确切的语法取决于您使用的特定处理器和汇编程序。我根本不是汇编专家,但建议您可以使用
sub ebx, 48
从存储在相应寄存器中的ascii码中减去48。当然,这是假设“英特尔汇编”,但我想其他人也有类似的功能。对于汇编问题,您需要指定CPU系列。我原以为x86处理器有处理此问题的指令,但经过进一步研究,似乎“ASCII加法后调整”(AAA)指令和相关指令的名称很糟糕,它们实际上使用BCD而不是ASCII。愚蠢的英特尔。当然,我还假设其他汇编程序也有减法;PHey,如果你没有减法,你总是可以只乘以-1,然后再加。:P
sub ebx, 48