X86-64 Instruction Encoding: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Line 267:
=== 32-bit addressing ===
These are the meanings of the ''Mod'' (vertically) and ''R/M'' (horizontally) bits for [[#Operand-size and address-size override prefix|32-bit addressing]]:
{| {{tablewikitable}}
! Mod
| align="center" style="background:#f0f0f0;"|'''Mod, R/M='''
! R/M=b000
| align="center" style="background:#f0f0f0;"|'''b000'''
! b001
| align="center" style="background:#f0f0f0;"|'''b001'''
! b010
| align="center" style="background:#f0f0f0;"|'''b010'''
! b011
| align="center" style="background:#f0f0f0;"|'''b011'''
! b100
| align="center" style="background:#f0f0f0;"|'''b100'''
! b101
| align="center" style="background:#f0f0f0;"|'''b101'''
! b110
| align="center" style="background:#f0f0f0;"|'''b110'''
! b111
| align="center" style="background:#f0f0f0;"|'''b111'''
|-
| b00||[EAX]||[ECX]||[EDX]||[EBX]||[[#32-bit SIB byte|SIB]]||disp32||[ESI]||[EDI]
Line 285:
|-
| b11||EAX, MM0, XMM0||ECX, MM1, XMM1||EDX, MM2, XMM2||EBX, MM3, XMM3||ESP, MM4, XMM4||EBP, MM5, XMM5||ESI, MM6, XMM6||EDI, MM7, XMM7
|-
|
|}
 
Line 293 ⟶ 291:
 
<div style="font-size: 70%">
{| {{tablewikitable}}
! Mod
| align="center" style="background:#f0f0f0;"|'''Mod'''
! Index
| align="center" style="background:#f0f0f0;"|'''Index, Base='''
! Base=b000
| align="center" style="background:#f0f0f0;"|'''b000'''
! b001
| align="center" style="background:#f0f0f0;"|'''b001'''
! b010
| align="center" style="background:#f0f0f0;"|'''b010'''
! b011
| align="center" style="background:#f0f0f0;"|'''b011'''
! b100
| align="center" style="background:#f0f0f0;"|'''b100'''
! b101
| align="center" style="background:#f0f0f0;"|'''b101'''
! b110
| align="center" style="background:#f0f0f0;"|'''b110'''
! b111
| align="center" style="background:#f0f0f0;"|'''b111'''
|-
| b00||b000||[EAX] + ([EAX] * s)||[ECX] + ([EAX] * s)||[EDX] + ([EAX] * s)||[EBX] + ([EAX] * s)||[ESP] + ([EAX] * s)||([EAX] * s) + disp32||[ESI] + ([EAX] * s)||[EDI] + ([EAX] * s)
|-
| rowspan="8" | b00|b001|b000||[EAX] + ([ECXEAX] * s)||[ECX] + ([ECXEAX] * s)||[EDX] + ([ECXEAX] * s)||[EBX] + ([ECXEAX] * s)||[ESP] + ([ECXEAX] * s)||([ECXEAX] * s) + disp32||[ESI] + ([ECXEAX] * s)||[EDI] + ([ECXEAX] * s)
|-
| ||b010b001||[EAX] + ([EDXECX] * s)||[ECX] + ([EDXECX] * s)||[EDX] + ([EDXECX] * s)||[EBX] + ([EDXECX] * s)||[ESP] + ([EDXECX] * s)||([EDXECX] * s) + disp32||[ESI] + ([EDXECX] * s)||[EDI] + ([EDXECX] * s)
|-
| ||b011b010||[EAX] + ([EBXEDX] * s)||[ECX] + ([EBXEDX] * s)||[EDX] + ([EBXEDX] * s)||[EBX] + ([EBXEDX] * s)||[ESP] + ([EBXEDX] * s)||([EBXEDX] * s) + disp32||[ESI] + ([EBXEDX] * s)||[EDI] + ([EBXEDX] * s)
|-
| ||b100b011||[EAX] + ([EBX] * s)||[ECX] + ([EBX] * s)||[EDX] + ([EBX] * s)||[EBX] + ([EBX] * s)||[ESP] + ([EBX] * s)||([EBX] * s) + disp32||[ESI] + ([EBX] * s)||[EDI] + ([EBX] * s)
|-
| ||b101b100||[EAX] + ([EBP] * s)||[ECX] + ([EBP] * s)||[EDX] + ([EBP] * s)||[EBX] + ([EBP] * s)||[ESP] + ([EBP] * s)||([EBP] * s) + disp32||[ESI] + ([EBP] * s)||[EDI] + ([EBP] * s)
|-
| ||b110b101||[EAX] + ([ESIEBP] * s)||[ECX] + ([ESIEBP] * s)||[EDX] + ([ESIEBP] * s)||[EBX] + ([ESIEBP] * s)||[ESP] + ([ESIEBP] * s)||([ESIEBP] * s) + disp32||[ESI] + ([ESIEBP] * s)||[EDI] + ([ESIEBP] * s)
|-
| ||b111b110||[EAX] + ([EDIESI] * s)||[ECX] + ([EDIESI] * s)||[EDX] + ([EDIESI] * s)||[EBX] + ([EDIESI] * s)||[ESP] + ([EDIESI] * s)||([EDIESI] * s) + disp32||[ESI] + ([EDIESI] * s)||[EDI] + ([EDIESI] * s)
|-
| b00||b000b111||[EAX] + ([EAXEDI] * s)||[ECX] + ([EAXEDI] * s)||[EDX] + ([EAXEDI] * s)||[EBX] + ([EAXEDI] * s)||[ESP] + ([EAXEDI] * s)||([EAXEDI] * s) + disp32||[ESI] + ([EAXEDI] * s)||[EDI] + ([EAXEDI] * s)
|
|-
| colspan="10" |
| b01||b000||[EAX] + ([EAX] * s) + disp8||[ECX] + ([EAX] * s) + disp8||[EDX] + ([EAX] * s) + disp8||[EBX] + ([EAX] * s) + disp8||[ESP] + ([EAX] * s) + disp8||[EBP] + ([EAX] * s) + disp8||[ESI] + ([EAX] * s) + disp8||[EDI] + ([EAX] * s) + disp8
|-
| rowspan="8" | b01|b001|b000||[EAX] + ([ECXEAX] * s) + disp8||[ECX] + ([ECXEAX] * s) + disp8||[EDX] + ([ECXEAX] * s) + disp8||[EBX] + ([ECXEAX] * s) + disp8||[ESP] + ([ECXEAX] * s) + disp8||[EBP] + ([ECXEAX] * s) + disp8||[ESI] + ([ECXEAX] * s) + disp8||[EDI] + ([ECXEAX] * s) + disp8
|-
| ||b010b001||[EAX] + ([EDXECX] * s) + disp8||[ECX] + ([EDXECX] * s) + disp8||[EDX] + ([EDXECX] * s) + disp8||[EBX] + ([EDXECX] * s) + disp8||[ESP] + ([EDXECX] * s) + disp8||[EBP] + ([EDXECX] * s) + disp8||[ESI] + ([EDXECX] * s) + disp8||[EDI] + ([EDXECX] * s) + disp8
|-
| ||b011b010||[EAX] + ([EBXEDX] * s) + disp8||[ECX] + ([EBXEDX] * s) + disp8||[EDX] + ([EBXEDX] * s) + disp8||[EBX] + ([EBXEDX] * s) + disp8||[ESP] + ([EBXEDX] * s) + disp8||[EBP] + ([EBXEDX] * s) + disp8||[ESI] + ([EBXEDX] * s) + disp8||[EDI] + ([EBXEDX] * s) + disp8
|-
| ||b100b011||[EAX] + ([EBX] * s) + disp8||[ECX] + ([EBX] * s) + disp8||[EDX] + ([EBX] * s) + disp8||[EBX] + ([EBX] * s) + disp8||[ESP] + ([EBX] * s) + disp8||[EBP] + ([EBX] * s) + disp8||[ESI] + ([EBX] * s) + disp8||[EDI] + ([EBX] * s) + disp8
|-
| ||b101b100||[EAX] + ([EBP] * s) + disp8||[ECX] + ([EBP] * s) + disp8||[EDX] + ([EBP] * s) + disp8||[EBX] + ([EBP] * s) + disp8||[ESP] + ([EBP] * s) + disp8||[EBP] + ([EBP] * s) + disp8||[ESI] + ([EBP] * s) + disp8||[EDI] + ([EBP] * s) + disp8
|-
| ||b110b101||[EAX] + ([ESIEBP] * s) + disp8||[ECX] + ([ESIEBP] * s) + disp8||[EDX] + ([ESIEBP] * s) + disp8||[EBX] + ([ESIEBP] * s) + disp8||[ESP] + ([ESIEBP] * s) + disp8||[EBP] + ([ESIEBP] * s) + disp8||[ESI] + ([ESIEBP] * s) + disp8||[EDI] + ([ESIEBP] * s) + disp8
|-
| ||b111b110||[EAX] + ([EDIESI] * s) + disp8||[ECX] + ([EDIESI] * s) + disp8||[EDX] + ([EDIESI] * s) + disp8||[EBX] + ([EDIESI] * s) + disp8||[ESP] + ([EDIESI] * s) + disp8||[EBP] + ([EDIESI] * s) + disp8||[ESI] + ([EDIESI] * s) + disp8||[EDI] + ([EDIESI] * s) + disp8
|-
| b01||b000b111||[EAX] + ([EAXEDI] * s) + disp8||[ECX] + ([EAXEDI] * s) + disp8||[EDX] + ([EAXEDI] * s) + disp8||[EBX] + ([EAXEDI] * s) + disp8||[ESP] + ([EAXEDI] * s) + disp8||[EBP] + ([EAXEDI] * s) + disp8||[ESI] + ([EAXEDI] * s) + disp8||[EDI] + ([EAXEDI] * s) + disp8
|
|-
| colspan="10" |
| b10||b000||[EAX] + ([EAX] * s) + disp32||[ECX] + ([EAX] * s) + disp32||[EDX] + ([EAX] * s) + disp32||[EBX] + ([EAX] * s) + disp32||[ESP] + ([EAX] * s) + disp32||[EBP] + ([EAX] * s) + disp32||[ESI] + ([EAX] * s) + disp32||[EDI] + ([EAX] * s) + disp32
|-
| rowspan="8" | b10|b001|b000||[EAX] + ([ECXEAX] * s) + disp32||[ECX] + ([ECXEAX] * s) + disp32||[EDX] + ([ECXEAX] * s) + disp32||[EBX] + ([ECXEAX] * s) + disp32||[ESP] + ([ECXEAX] * s) + disp32||[EBP] + ([ECXEAX] * s) + disp32||[ESI] + ([ECXEAX] * s) + disp32||[EDI] + ([ECXEAX] * s) + disp32
|-
| ||b010b001||[EAX] + ([EDXECX] * s) + disp32||[ECX] + ([EDXECX] * s) + disp32||[EDX] + ([EDXECX] * s) + disp32||[EBX] + ([EDXECX] * s) + disp32||[ESP] + ([EDXECX] * s) + disp32||[EBP] + ([EDXECX] * s) + disp32||[ESI] + ([EDXECX] * s) + disp32||[EDI] + ([EDXECX] * s) + disp32
|-
| ||b011b010||[EAX] + ([EBXEDX] * s) + disp32||[ECX] + ([EBXEDX] * s) + disp32||[EDX] + ([EBXEDX] * s) + disp32||[EBX] + ([EBXEDX] * s) + disp32||[ESP] + ([EBXEDX] * s) + disp32||[EBP] + ([EBXEDX] * s) + disp32||[ESI] + ([EBXEDX] * s) + disp32||[EDI] + ([EBXEDX] * s) + disp32
|-
| ||b100b011||[EAX] + ([EBX] * s) + disp32||[ECX] + ([EBX] * s) + disp32||[EDX] + ([EBX] * s) + disp32||[EBX] + ([EBX] * s) + disp32||[ESP] + ([EBX] * s) + disp32||[EBP] + ([EBX] * s) + disp32||[ESI] + ([EBX] * s) + disp32||[EDI] + ([EBX] * s) + disp32
|-
| ||b101b100||[EAX] + ([EBP] * s) + disp32||[ECX] + ([EBP] * s) + disp32||[EDX] + ([EBP] * s) + disp32||[EBX] + ([EBP] * s) + disp32||[ESP] + ([EBP] * s) + disp32||[EBP] + ([EBP] * s) + disp32||[ESI] + ([EBP] * s) + disp32||[EDI] + ([EBP] * s) + disp32
|-
| ||b110b101||[EAX] + ([ESIEBP] * s) + disp32||[ECX] + ([ESIEBP] * s) + disp32||[EDX] + ([ESIEBP] * s) + disp32||[EBX] + ([ESIEBP] * s) + disp32||[ESP] + ([ESIEBP] * s) + disp32||[EBP] + ([ESIEBP] * s) + disp32||[ESI] + ([ESIEBP] * s) + disp32||[EDI] + ([ESIEBP] * s) + disp32
|-
| ||b111b110||[EAX] + ([EDIESI] * s) + disp32||[ECX] + ([EDIESI] * s) + disp32||[EDX] + ([EDIESI] * s) + disp32||[EBX] + ([EDIESI] * s) + disp32||[ESP] + ([EDIESI] * s) + disp32||[EBP] + ([EDIESI] * s) + disp32||[ESI] + ([EDIESI] * s) + disp32||[EDI] + ([EDIESI] * s) + disp32
|-
| b10||b000b111||[EAX] + ([EAXEDI] * s) + disp32||[ECX] + ([EAXEDI] * s) + disp32||[EDX] + ([EAXEDI] * s) + disp32||[EBX] + ([EAXEDI] * s) + disp32||[ESP] + ([EAXEDI] * s) + disp32||[EBP] + ([EAXEDI] * s) + disp32||[ESI] + ([EAXEDI] * s) + disp32||[EDI] + ([EAXEDI] * s) + disp32
|
|}
</div>