int i=8*8;
对应的汇编代码(没有直接反汇编,可能有些地方不对)
MOV EAX, 8 ; 将8存储到EAX寄存器
MOV ECX, 8 ; 将8存储到ECX寄存器MUL ECX ; 用ECX寄存器中的值乘以EAX寄存器中的值,并将结果存储在EDX:EAX中(64位结果)
位运算汇编(常见)
1. 与运算
AND destination, source ; 将destination和source按位进行与运算,并将结果存储在destination中
2. 或运算
OR destination, source ; 将destination和source按位进行或运算,并将结果存储在destination中
3. 异或运算
XOR destination, source ; 将destination和source按位进行异或运算,并将结果存储在destination中
4. 取反运算
NOT destination ; 对destination寄存器中的值按位取反,并将结果存储在destination中
5. 左移运算
SHL destination, count ; 将destination寄存器中的值左移count位,并将结果存储在destination中
SHLD destination, source, count ; 将source寄存器中的值左移count位,并将结果存储在destination中,多余的位从source的右侧获取
6. 右移运算
SHR destination, count ; 将destination寄存器中的值右移count位,并将结果存储在destination中
SHRD destination, source, count ; 将source寄存器中的值右移count位,并将结果存储在destination中,多余的位从destination的左侧获取
位运算实现乘法代码
#include <stdio.h>
int multiply(int a, int b);
int main() {
int a = 5;
int b = 7;
int result = multiply(a, b);
printf("Result: %d\n", result);
return 0;
}
int multiply(int a, int b) {
int result = 0;
while (b != 0) {
if (b & 1) {
result += a;
}
a <<= 1; // 左移相当于乘以2
b >>= 1; // 右移相当于除以2
}
return result;
}
汇编指令机械周期(简略)
x86架构中每条指令的执行周期数会因为具体的处理器型号和实现方式而有所不同,一般来说,加减乘除和位运算指令的执行周期数会根据操作数的长度、操作数类型、指令的复杂性等因素而有所差异。以下是大致的执行周期数估计:
1. 加法指令(ADD): - 寄存器之间的加法指令大约需要1个周期。 - 内存和寄存器之间的加法指令可能需要2到3个周期。
2. 减法指令(SUB): - 寄存器之间的减法指令大约需要1个周期。 - 内存和寄存器之间的减法指令可能需要2到3个周期
3. 乘法指令
(MUL): - 8位乘法指令需要3到4个周期。 - 16位乘法指令需要9到12个周期。 - 32位乘法指令需要9到12个周期。 - 64位乘法指令需要15到20个周期。
4. 除法指令(DIV): - 8位除法指令需要15到90个周期。 - 16位除法指令需要22到120个周期。 - 32位除法指令需要30到180个周期。 - 64位除法指令需要60到360个周期。
5. 位运算指令: - 与运算(AND)、或运算(OR)、异或运算(XOR)等简单的位运算指令通常需要1个周期。 - 取反运算(NOT)指令也通常需要1个周期。 - 左移运算(SHL/SHLD)和右移运算(SHR/SHRD)指令通常需要1到2个周期。需要注意的是,这些周期数仅供参考,实际执行周期数会因为处理器的具体实现、操作数的类型和长度、相关的数据依赖等因素而有所不同。因此,在编写高性能的汇编代码时,应该尽量减少指令的数量和复杂度,避免不必要的数据依赖和内存访问,以提高程序的执行效率
相关链接
mul(乘法汇编)https://blog.csdn.net/wyyy2088511/article/details/126271047
加减乘除位运算https://blog.csdn.net/YPJMFC/article/details/78246971
乘法位运算https://blog.csdn.net/sxhlovehmm/article/details/46546283
位运算汇编指令https://blog.csdn.net/weixin_45437521/article/details/109174821