c – 长时间初始化和8字节平台
发布时间:2020-12-16 07:33:37 所属栏目:百科 来源:网络整理
导读:令我惊讶的是,在MSVS2012下,在调试模式下将x64平台作为目标并且优化关闭,在一条指令中无法进行长时间的初始化: ; long long l1 = 1; mov DWORD PTR _l1$[ebp],1 mov DWORD PTR _l1$[ebp+4],0 由于寄存器是8个字节,我期望一个能够做到这一点的指令……有一个
令我惊讶的是,在MSVS2012下,在调试模式下将x64平台作为目标并且优化关闭,在一条指令中无法进行长时间的初始化:
; 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来解决此问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |