Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我惊讶地发现,在以 x64 平台为目标的 MSVS2012 下,在关闭优化的调试模式下,long long无法在一条指令中完成初始化:
long long
; long long l1 = 1; mov DWORD PTR _l1$[ebp], 1 mov DWORD PTR _l1$[ebp+4], 0
由于寄存器是 8 个字节,我希望有一条能够做到这一点的指令……有吗?
在以 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 来解决这个问题。