2015-05-29 63 views
5

在不支持英特爾MPX的處理器上,文檔說所有MPX指令都是NOP。也就是說,正如我查看了所有這些說明,它們都顯示爲前綴0F 1A /r0F 1B /r前綴爲前綴F3,F266字節,具體取決於指令。此外,還有類似於BNDMK的說法:在英特爾MPX之前,「0F 1A/r」和「0F 1B/r」是如何得到NOP的?

此指令的reg-reg格式保留傳統行爲(NOP)。

我試圖在PDF搜索這些操作碼(即我的搜索字符串0F 1),但我發現,只有MPX的指示說明。查看2014年2月的指令集參考資料,我發現了很多這種形式的說明,但它們不是NOP,例如, F2 0F 12 /rMOVDDUP。並尋找專門爲0F 1A0F 1B我沒有找到任何東西。

尋找NOP我發現多字節NOP 0F 1F /0,但它不符合MPX指令的形式。

所以我的問題是,它在哪裏記錄0F 1A /r0F 1B /r的遺留行爲是NOP?對於這種形式的指令是否有一些通用規則,或者它們可能代表了NOP形式的非NOP指令(如90代表xchg eax,eax)?

回答

4

我周圍的英特爾pdfs確實沒有列出那些NOP0F 19-1E塊在操作碼錶A-3中爲空。雙字節操作碼映射:08H - 7FH(首字節爲0FH)。腳註說所有操作碼映射中的所有空白都是保留的,不得使用。不要依賴未定義或保留位置的操作。

我也有AMD pdf 24594 - 修訂版。 3.19 - 2012年9月,並且確實在操作碼錶A-4中列出上述塊爲NOP。次操作碼映射(雙字節操作碼),低半字節8-Fh。但是,實際的NOP指令的頁面僅列出了0F 1F

+2

所以我得出結論,這是一個未公開的公開功能,一直由Intel和AMD直到MPX實施,並且AMD剛剛發佈了它的文檔。知道了謝謝! – Ruslan

相關問題