簡體   English   中英

long long初始化和8字節平台

[英]long long initialization and 8 bytes plateform

我很驚訝地發現,在調試模式下關閉優化的調試模式下,以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  

灌籃高手,您實際上並不是在看程序的x64構建。 使用Build + Configuration Manager修復此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM