0
movdqa xmm0, ptr fs:[eax]
和movdqu (Array[ebx]), xmm0
是2個指令沒有在我的編譯器中執行。請告訴我這些指令的確切操作碼嗎?x86指令到操作碼轉換
movdqa xmm0, ptr fs:[eax]
和movdqu (Array[ebx]), xmm0
是2個指令沒有在我的編譯器中執行。請告訴我這些指令的確切操作碼嗎?x86指令到操作碼轉換
movdqa xmm0, ptr fs:[eax]
使用段覆蓋前綴FS
(三字節)操作碼和ModR/M字節。它應該看起來像這樣:
0x64 ;<-- segment override prefix FS
0x66 0x0F 0x6F ;<-- opcode
0x00 ;<-- ModR/M is 000 for Reg (xmm0), 00 for Mod
;(single member addressing) and 000 for Memory ([EAX])
第二條指令不使用段覆蓋前綴。
movdqu (Array[ebx]), xmm0
我想我不明白,第一個括號在這裏。 如果他們的意思是設定Array[ebx]
值,則代碼應該是這樣的:
0xF3 0x0F 0x7F ;<-- opcode
0x80 ;ModR/M is 00 for Reg (xmm0), 10 for Mod
;(register+disp32) and 000 for memory ([EAX+disp32])
0xdeadbeef ;little-endian encoded address displacement for Array
如果他們的意思是先進的計算,還有的需要SIB字節。