gpt4 book ai didi

c++ - long long 初始化和 8 字节平台

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:11:50 27 4
gpt4 key购买 nike

我惊讶地发现,在关闭优化的 Debug模式下,在以 x64 平台为目标的 MSVS2012 下,无法在一条指令中完成 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

Slam dunk,您实际上并不是在查看程序的 x64 版本。使用 Build + Configuration Manager 来解决这个问题。

关于c++ - long long 初始化和 8 字节平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474843/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com