我很惊讶发现在MSVS2012下,在调试模式下将x64平台作为目标并关闭优化,在一条指令中无法进行long long
初始化:
; long long l1 = 1;
mov DWORD PTR _l1$[ebp], 1
mov DWORD PTR _l1$[ebp+4], 0
由于寄存器是8个字节,我期望能够执行它的指令......是否有一个?
答案 0 :(得分:2)
在面向x64的快速控制台模式项目中尝试此操作并查看“反汇编”窗口:
long long l1 = 1;
000000013F151035 mov qword ptr [rsp],1
定位x86时的代码相同:
long long l1 = 1;
010213EE mov dword ptr [l1],1
010213F5 mov dword ptr [ebp-8],0
扣篮,你实际上并没有看到你的程序的x64版本。使用Build + Configuration Manager来解决此问题。