是否可以对存储在寄存器(例如eax)中的数字进行平方而不进行任何乘法(通过使用移位等)?我将在32位汇编中设置一个16位数字,因此溢出应该不是问题.我正在使用NASM x86程序集来创建程序.在此先感谢您的帮助.
在C:
int square(int n) {
int i, r = 0;
for (i = n; i; i >>= 1, n <<= 1)
if (i & 1)
r += n;
return r;
}
Run Code Online (Sandbox Code Playgroud)
我会把NASM留给你.
归档时间: |
|
查看次数: |
2562 次 |
最近记录: |