亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當我沒有指定操作數大小時,push指令壓入堆棧的字節數是多少?

當我沒有指定操作數大小時,push指令壓入堆棧的字節數是多少?

嚕嚕噠 2019-09-06 16:12:16
我可以通過這樣做將4個字節壓入堆棧:push DWORD 123但我發現我可以在push不指定操作數大小的情況下使用:push 123在這種情況下,push指令將多少字節壓入堆棧?推送的字節數是否取決于操作數大?。ㄒ虼嗽谖业氖纠兴鼘⑼扑?個字節)?
查看完整描述

3 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

計算機中的“堆棧寬度”是可以推入堆棧的最小數據量,被定義為處理器的寄存器大小。這意味著如果您正在處理具有16位寄存器的處理器,則堆棧寬度將為2個字節。如果處理器有32位寄存器,則堆棧寬度為4個字節。如果處理器有64位寄存器,則堆棧寬度為8個字節。

使用現代x86 / x86_64系統時不要混淆; 如果系統以32位模式運行,則堆棧寬度和寄存器大小為32位或4個字節。如果切換到64位模式,那么只有那時寄存器和堆棧大小才會改變。


查看完整回答
反對 回復 2019-09-06
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

在64位長模式下,無法將32位值壓入堆棧。該表非常清楚,不是有效的編碼。我懷疑這只是其中一個案例,即使英特爾很難在他們的手冊中清楚地記錄,特別是因為他們嘗試這種一刀切的方法,其中一本手冊必須記錄數十年的微處理器和多個指令集。這事情很清楚的有:“在64位模式,堆棧指針的大小始終是64位?!?/em>

查看完整回答
反對 回復 2019-09-06
  • 3 回答
  • 0 關注
  • 2088 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號