加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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来解决此问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读