![](/img/trans.png)
[英]Is it possible to use 64-bit instruction in a 32-bit application on intel/64-bit win7
[英]Using AND instruction with 32-bit operand in 64-bit
我對64位模式下的AND指令有疑問。 我有本手冊告訴我,AND 32位立即數將被符號擴展為64位。 但是我做不到
和rax,0x80000000
我認為這很荒謬,因為0x800000是完美的DWORD操作數。 我可以接受的最高
和rax,0x7fffffff
那么這是怎么回事? 我不能使用MSb = 1對操作數進行符號擴展嗎? 如果是這樣,那么符號擴展應該如何針對操作數工作而又不能像在0x80000000中那樣使用它呢?
感謝您的答復。
“通過阻止人們做一些愚蠢的事情,您可能會阻止他們做一些聰明的事情”:一種由尊重和謙卑產生的態度; 您不知道所有的答案,所以請不要像傑斯特在評論中指出的那樣強加隨機性的愚蠢。
fwiw,gcc / gnu理解為:
and $0x80000000, %rax
宗教灌輸的lang聲堅持:
and $0xffffffff80000000, %rax
現在,很快,那里有足夠的f嗎? 這有助於提高可讀性嗎? 如果您不了解符號擴展名,那么您將要了解多少組裝?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.