2017-07-14 142 views
2

ADD指令文檔從this page具有下表與各種編碼:在指令編碼表中使用「r/m8」是什麼意思?

相信imm8意味着立即值的大小是8個比特(例如:BYTE 123)。

而且我相信,r32意味着寄存器,其長度爲32位(如:EAX

但什麼是r/m8是什麼意思?這是否意味着我可以使用大小爲8位的寄存器(例如:AL])或大小爲8位的存儲器位置(例如:BYTE [myvar])?

+0

你一直在圍繞同樣的問題跳舞,你真的在​​追求什麼?如果您的立即數必須簽名,那麼您不能使用8位立即編碼添加9位值,您必須使用16位。 –

+1

請只問你想問的問題...... –

+0

@old_timer這個問題與我問的任何其他問題完全沒有關係,我只想知道縮寫的含義。 – user247763

回答

6

該網頁是官方intel文檔的html轉換。你應該閱讀代替,特別是因爲它在操作碼彙總表它說的一段3.1.1.3指令列:

R/M8 - 字節操作數,字節 的任意內容通用寄存器(AL,CL,DL,BL,AH,CH,DH,BH,BPL,SPL, DIL和SIL)或內存中的字節。字節寄存器R8L-R15L爲 ,可通過使用REX.R在64位模式下使用。

所以是的,這意味着你說什麼。

+2

在英特爾手冊中看到的所有縮寫中,這是更直觀的縮寫之一。 「r」表示寄存器,「m」表示內存,一個數字表示操作數大小。比[「mod-reg-r/m byte」](http://www.c-jump.com/CIS77/CPU/x86/X77_0270_modrm_byte.htm)更清楚。 –

相關問題