2A 2-1 指令格式 这一章详细描述所有Intel 64和IA-32处理器指令格式
保护模式指令,实地址模式以及虚拟8086模式指令格式将在2
IA-32e模式及其子模式指令格式将在2
1 实模式,保护模式,以及虚拟8086模式指令格式 Intel-64和IA-32架构指令编码是图2-1所示格式的子集
一条指令包括可选的指令前缀(顺序任意),主操作码(最多3字节),由ModR/M和SIB字节(可选) 组成的地址格式描述符(如果需要的话),偏移量(可选)以及立即数(可选)
前缀 主操作码 ModR/M SIB 偏移量 立即数 最多四个 1, 2, 3字节 1 字节 1 字节 1,2,4 1,2,4 前缀,每个 1字节 (可选) (可选) (可选) 字节 (可选) 字节 (可选) 7 6 5 3 2 0 7 6 5 3 2 0 Mod Reg/ Opcode R/M Scale Index Base 图 2-1
Intel 64 和 IA-32 架构指令格式 2
1 指令前缀 指令前缀分为四组,每一组包含一些允许的前缀码
对于任何指令,前缀可以从这四组(组1,2,3,4)里的挑选,并且它们不区分次序
• 组1 — 锁定和重复前缀: 2-2 Vo l
2A 指令格式 • F0H - LOCK • F2H - REPNE/REPNZ,仅用于串操作和I/O指令,也可被用作某些指令的强制性前缀 • F3H - REP或REPE/REPZ,仅用于串操作和I/O指令,也可被用作某些指令的强制性前缀 • 组2 — 段重载前缀: • 2EH—CS 段重载(用于任意分支指令时保留) • 36H—SS 段重载(用于任意分支指令时保留) • 3EH—DS 段重载(用于任意分支指令时保留) • 26H—ES 段重载(用于任意分支指令时保留) •