2013-04-13 47 views
1

我需要解釋/模擬x86指令的PUSH和POP系列。爲PUSH和POP指令覆蓋x86 SS段(SS:SP,SS:ESP,SS:RSP)

我現在的問題現在是:

可以push和pop指令接受段重載前綴,這樣我可以推或彈出來ES:SPCS:SPDS:SPFS:SPGS:SP代替SS:SP

+2

CPU文檔有什麼問題? –

+1

我認爲段覆蓋只適用於「內存操作數」,例如* push地址*,它只適用於*地址*部分,而不是地址內容的推送。我同意阿列克謝你應該諮詢CPU文檔;他們通常對於指導的內容非常清楚。 –

+1

@AlexeyFrunze我認爲英特爾/ AMD手冊沒有任何問題。這可能就是因爲我過去犯了很多痛苦的錯誤,要求完全重寫程序(花費幾周或更多的時間來編寫),這是由於微小/微妙的錯誤的積累,現在我對實現想法非常謹慎,並且我需要從整個社區的知識來驗證我的理解是否準確。由於手冊的高度技術性(不僅僅需要CPU手冊),我現在知道我會妄想我認爲在某些時候我不會有致命的錯誤。 –

回答

4

段覆蓋前綴會影響PUSH源的位置和POP目標位置。
您不能覆蓋堆棧段。