Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 从ASCII到常用数字_Assembly - Fatal编程技术网

Assembly 从ASCII到常用数字

Assembly 从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 从存储在相应

我有一些关于汇编的问题,是否可以转换数字的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

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

对于汇编问题,您需要指定CPU系列。我原以为x86处理器有处理此问题的指令,但经过进一步研究,似乎“ASCII加法后调整”(AAA)指令和相关指令的名称很糟糕,它们实际上使用BCD而不是ASCII。愚蠢的英特尔。当然,我还假设其他汇编程序也有减法;PHey,如果你没有减法,你总是可以只乘以-1,然后再加。:P
sub     ebx, 48