X86-64 Instruction Encoding: Difference between revisions

Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
→‎32/64-bit addressing: Added info and link
Fixed square brackets. An expression surrounded by square brackets means: take the value at the memory address of the value of the expression
Line 363: Line 363:
|-
|-
! 00
! 00
| style="background-color: white" |[BX]+[SI]
| style="background-color: white" |[BX + SI]
| style="background-color: white" |[BX]+[DI]
| style="background-color: white" |[BX + DI]
| style="background-color: white" |[BP]+[SI]
| style="background-color: white" |[BP + SI]
| style="background-color: white" |[BP]+[DI]
| style="background-color: white" |[BP + DI]
| style="background-color: white" |[SI]
| style="background-color: white" |[SI]
| style="background-color: white" |[DI]
| style="background-color: white" |[DI]
| style="background-color: white" |disp16
| style="background-color: white" |[disp16]
| style="background-color: white" |[BX]
| style="background-color: white" |[BX]
|-
|-
! 01
! 01
| style="background-color: white" |[BX]+[SI]+disp8
| style="background-color: white" |[BX + SI + disp8]
| style="background-color: white" |[BX]+[DI]+disp8
| style="background-color: white" |[BX + DI + disp8]
| style="background-color: white" |[BP]+[SI]+disp8
| style="background-color: white" |[BP + SI + disp8]
| style="background-color: white" |[BP]+[DI]+disp8
| style="background-color: white" |[BP + DI + disp8]
| style="background-color: white" |[SI]+disp8
| style="background-color: white" |[SI + disp8]
| style="background-color: white" |[DI]+disp8
| style="background-color: white" |[DI + disp8]
| style="background-color: white" |[BP]+disp8
| style="background-color: white" |[BP + disp8]
| style="background-color: white" |[BX]+disp8
| style="background-color: white" |[BX + disp8]
|-
|-
! 10
! 10
| style="background-color: white" |[BX]+[SI]+disp16
| style="background-color: white" |[BX + SI + disp16]
| style="background-color: white" |[BX]+[DI]+disp16
| style="background-color: white" |[BX + DI + disp16]
| style="background-color: white" |[BP]+[SI]+disp16
| style="background-color: white" |[BP + SI + disp16]
| style="background-color: white" |[BP]+[DI]+disp16
| style="background-color: white" |[BP + DI + disp16]
| style="background-color: white" |[SI]+disp16
| style="background-color: white" |[SI + disp16]
| style="background-color: white" |[DI]+disp16
| style="background-color: white" |[DI + disp16]
| style="background-color: white" |[BP]+disp16
| style="background-color: white" |[BP + disp16]
| style="background-color: white" |[BX]+disp16
| style="background-color: white" |[BX + disp16]
|-
|-
! 11
! 11
Line 423: Line 423:
! 00
! 00
| style="background-color: white" colspan="4"|[r/m]
| style="background-color: white" colspan="4"|[r/m]
| style="background-color: white" |[[#SIB|SIB]]
| style="background-color: white" |[[[#SIB|SIB]]]
| style="background-color: white" |[&nbsp;[[#RIP.2FEIP-relative_addressing|RIP/EIP]]]<span style="vertical-align: super">[[#Table8Note1|1]],[[#Table8Note2|2]]</span>+disp32
| style="background-color: white" |&#91;[[#RIP.2FEIP-relative_addressing|RIP/EIP]]<span style="vertical-align: super">[[#Table8Note1|1]],[[#Table8Note2|2]]</span> + disp32]
| style="background-color: white" colspan="6"|[r/m]
| style="background-color: white" colspan="6"|[r/m]
| style="background-color: white" |[[#SIB|SIB]]
| style="background-color: white" |&#91;[[#SIB|SIB]]]
| style="background-color: white" |[&nbsp;[[#RIP.2FEIP-relative_addressing|RIP/EIP]]]<span style="vertical-align: super">[[#Table8Note1|1]],[[#Table8Note2|2]]</span>+disp32
| style="background-color: white" |&#91;[[#RIP.2FEIP-relative_addressing|RIP/EIP]]<span style="vertical-align: super">[[#Table8Note1|1]],[[#Table8Note2|2]]</span> + disp32]
| style="background-color: white" colspan="2"|[r/m]
| style="background-color: white" colspan="2"|[r/m]
|-
|-
! 01
! 01
| style="background-color: white" colspan="4"|[r/m]+disp8
| style="background-color: white" colspan="4"|[r/m + disp8]
| style="background-color: white" |[[#SIB|SIB]]+disp8
| style="background-color: white" |&#91;[[#SIB|SIB]] + disp8]
| style="background-color: white" colspan="7"|[r/m]+disp8
| style="background-color: white" colspan="7"|[r/m + disp8]
| style="background-color: white" |[[#SIB|SIB]]+disp8
| style="background-color: white" |&#91;[[#SIB|SIB]] + disp8]
| style="background-color: white" colspan="3"|[r/m]+disp8
| style="background-color: white" colspan="3"|[r/m + disp8]
|-
|-
! 10
! 10
| style="background-color: white" colspan="4"|[r/m]+disp32
| style="background-color: white" colspan="4"|[r/m + disp32]
| style="background-color: white" |[[#SIB|SIB]]+disp32
| style="background-color: white" |&#91;[[#SIB|SIB]] + disp32]
| style="background-color: white" colspan="7"|[r/m]+disp32
| style="background-color: white" colspan="7"|[r/m + disp32]
| style="background-color: white" |[[#SIB|SIB]]+disp32
| style="background-color: white" |&#91;[[#SIB|SIB]] + disp32]
| style="background-color: white" colspan="3"|[r/m]+disp32
| style="background-color: white" colspan="3"|[r/m + disp32]
|-
|-
! 11
! 11
Line 512: Line 512:
|-
|-
! rowspan="16" | 00 !! style="text-align: left;" | 0.000 AX
! rowspan="16" | 00 !! style="text-align: left;" | 0.000 AX
| style="background-color: white" rowspan="4" colspan="5"|[base] + ([index] * s)
| style="background-color: white" rowspan="4" colspan="5"|[base + (index * s)]
| style="background-color: white" rowspan="4"|([index] * s)<br />+ disp32
| style="background-color: white" rowspan="4"|[(index * s) + disp32]
| style="background-color: white" rowspan="4" colspan="7" |[base] + ([index] * s)
| style="background-color: white" rowspan="4" colspan="7" |[base + (index * s)]
| style="background-color: white" rowspan="4"|([index] * s)<br />+ disp32
| style="background-color: white" rowspan="4"|[(index * s) + disp32]
| style="background-color: white" rowspan="4" colspan="2"|[base] + ([index] * s)
| style="background-color: white" rowspan="4" colspan="2"|[base + (index * s)]
|-
|-
! style="text-align: left;" | 0.001 CX
! style="text-align: left;" | 0.001 CX
Line 526: Line 526:
! style="text-align: left;" | 0.100<span style="vertical-align: super">[[#Table10Note2|2]]</span> SP
! style="text-align: left;" | 0.100<span style="vertical-align: super">[[#Table10Note2|2]]</span> SP
| style="background-color: white" colspan="5"|[base]
| style="background-color: white" colspan="5"|[base]
| style="background-color: white"| disp32
| style="background-color: white"| [disp32]
| style="background-color: white" colspan="7"|[base]
| style="background-color: white" colspan="7"|[base]
| style="background-color: white"| disp32
| style="background-color: white"| [disp32]
| style="background-color: white" colspan="2"|[base]
| style="background-color: white" colspan="2"|[base]
|-
|-
! style="text-align: left;" | 0.101 BP
! style="text-align: left;" | 0.101 BP
| style="background-color: white" rowspan="11" colspan="5"|[base] + ([index] * s)
| style="background-color: white" rowspan="11" colspan="5"|[base + (index * s)]
| style="background-color: white" rowspan="11"|([index] * s)<br />+ disp32
| style="background-color: white" rowspan="11"|[(index * s) + disp32]
| style="background-color: white" rowspan="11" colspan="7"|[base] + ([index] * s)
| style="background-color: white" rowspan="11" colspan="7"|[base + (index * s)]
| style="background-color: white" rowspan="11"|([index] * s)<br />+ disp32
| style="background-color: white" rowspan="11"|[(index * s) + disp32]
| style="background-color: white" rowspan="11" colspan="2"|[base] + ([index] * s)
| style="background-color: white" rowspan="11" colspan="2"|[base + (index * s)]
|-
|-
! style="text-align: left;" | 0.110 SI
! style="text-align: left;" | 0.110 SI
Line 582: Line 582:
|-
|-
! rowspan="16" | 01 !! style="text-align: left;" | 0.000 AX
! rowspan="16" | 01 !! style="text-align: left;" | 0.000 AX
| style="background-color: white" rowspan="4" colspan="16"|[base] + ([index] * s) + disp8
| style="background-color: white" rowspan="4" colspan="16"|[base + (index * s) + disp8]
|-
|-
! style="text-align: left;" | 0.001 CX
! style="text-align: left;" | 0.001 CX
Line 591: Line 591:
|-
|-
! style="text-align: left;" | 0.100<span style="vertical-align: super">[[#Table10Note2|2]]</span> SP
! style="text-align: left;" | 0.100<span style="vertical-align: super">[[#Table10Note2|2]]</span> SP
| style="background-color: white" colspan="16"|[base] + disp8
| style="background-color: white" colspan="16"|[base + disp8]
|-
|-
! style="text-align: left;" | 0.101 BP
! style="text-align: left;" | 0.101 BP
| style="background-color: white" rowspan="11" colspan="16"|[base] + ([index] * s) + disp8
| style="background-color: white" rowspan="11" colspan="16"|[base + (index * s) + disp8]
|-
|-
! style="text-align: left;" | 0.110 SI
! style="text-align: left;" | 0.110 SI
Line 640: Line 640:
|-
|-
! rowspan="16" | 10 !! style="text-align: left;" | 0.000 AX
! rowspan="16" | 10 !! style="text-align: left;" | 0.000 AX
| style="background-color: white" rowspan="4" colspan="16"|[base] + ([index] * s) + disp32
| style="background-color: white" rowspan="4" colspan="16"|[base + (index * s) + disp32]
|-
|-
! style="text-align: left;" | 0.001 CX
! style="text-align: left;" | 0.001 CX
Line 649: Line 649:
|-
|-
! style="text-align: left;" | 0.100<span style="vertical-align: super">[[#Table10Note2|2]]</span> SP
! style="text-align: left;" | 0.100<span style="vertical-align: super">[[#Table10Note2|2]]</span> SP
| style="background-color: white" colspan="16"|[base] + disp32
| style="background-color: white" colspan="16"|[base + disp32]
|-
|-
! style="text-align: left;" | 0.101 BP
! style="text-align: left;" | 0.101 BP
| style="background-color: white" rowspan="11" colspan="16"|[base] + ([index] * s) + disp32
| style="background-color: white" rowspan="11" colspan="16"|[base + (index * s) + disp32]
|-
|-
! style="text-align: left;" | 0.110 SI
! style="text-align: left;" | 0.110 SI