我最近开始学习 masm 汇编,我一直在反汇编我的许多程序只是为了看看。我注意到,当您使用 __int16 (字)时,它的值首先复制到 eax 然后复制到变量本身,但是使用 int (dword/32) 它直接复制到变量中:这是两者的反汇编代码
int y = 5;
0040101E mov dword ptr [y],5
y += 7;
00401025 mov eax,dword ptr [y]
00401028 add eax,7
0040102B mov dword ptr [y],eax
__int16 x = 3;
0040102E mov eax,3
00401033 mov word ptr [x],ax
x += 6;
00401037 movsx eax,word ptr [x]
0040103B add eax,6
0040103E mov word ptr [x],ax
我注意到 __int16 的大小为 16 ......这是 eax 大小的一半,这就是为什么它先放入 eax 然后才将 ax 放入 x 的原因吗?
另外,哪个最快?
有什么好的masm网站可以推荐吗?
感谢您的输入