Published on 2023-07-29. Last updated on 2025-04-27
start here
|
v ╔══════════════════════════════════════════════════╗
╔═══════════════════════════════════════════════╤══╗ ║ 2-byte instructions (legacy map 1) ║
║ 1-byte instructions (legacy map 0) │0F————->║ ║
║ └──╢ ║ operand type specified ┌──┐ ┌──┐ ║
╟──────────────────────────────────────────────────╢ .——->║ via mandatory prefixes │38│ │3A————–.
║ 40-4F ║ | ║ – none (packed single) └─|┘ └──┘ ║ |
╟───────────────────────────|──────────────────────╢ | .—->║ – 66 (packed double) | ║ |
║ ┌──┐ ┌──┬──┐ | ║ | | ║ – F2 (scalar single) | ║ |
║ .–62│ │66│67│ | ║ | | +->║ – F3 (scalar double) | ║ |
║ | └──┘ └─|┴─|┘ | ║ | | | ╚═══════════════════════════════|══════════════════╝ |
║ | | | | ┌──┬──┐ ║ | | | v |
║ | | | | │C4│C5—–. ║ | | | ╔══════════════════════════════════════════════════╗ |
║ | | | | └|─┼──┤ | ║ | | | ║ 3-byte instructions (legacy map 2) ║ |
╟──┐ | ┌──┬──┐ | | | | │D5│ | ║ | +—->║ ║ |
║F0│ | │F2│F3│ | | | | └─|┘ | ║ | | | ║ operand type specified ║ |
╚══╧═|═╧═|╧═|╧══════|══|════|══════|═══|═════|═════╝ | | +->║ via mandatory prefixes ║ |
| | | ^ ^ | | | ^ ^ | | ^ | | | | ║ – none (packed single) ║ |
| | | | | | | | | | | | +—|———-+ | | ║ – 66 (packed double) ║ |
v ‘–+–+ +–+–‘ v | | v v | v m bit | | | ║ – F2 (scalar single) ║ |
┏━━━━┓ | ┏━━━|┓┏|━━━┓┏━━|━┓┏━━━━┓ | | | ║ – F3 (scalar double) ║ |
┃EVEX┃ | ┃REX1┃┃VEX3┃┃REX2┃┃VEX2┃——‘ | | ╚══════════════════════════════════════════════════╝ |
┗━━|━┛ | ┗━━━━┛┗━━|━┛┗━━━━┛┗━━━━┛ | | |
| ^ | | | ╔══════════════════════════════════════════════════╗ |
| | +——–>————–+—->║ 3-byte instructions (legacy map 3) ║
