汇编中的加法,是对寄存器做加法,需要先将变量存入寄存器。
例如i=i+1
1 |
mov eax, dword ptr[i] |
汇编中的赋值,需要先将变量值暂存到寄存器,从寄存器再赋值到另一个变量
例如int a = i
1 |
mov eax, dword ptr [i] |
例如int a = 1
1 |
mov dword ptr [a], 1 |
无赋值情况
无赋值情况,++i与i++实际上汇编代码没有什么不同
++i;
1 |
mov eax, dword ptr [i] |
i++;
1 |
mov eax, dword ptr [i] |
有赋值情况
有赋值的表现就会有所不同
int a = ++i;
1 |
mov eax, dword ptr[i] |
int a = i++;
1 |
mov eax, dword ptr[i] |
总结
无赋值情况的汇编语句表现是一样的,对于有赋值语句,则有所不同。
int a = ++i
是先完成加法再做赋值int a = i++
是先完成赋值再做加法
近期评论