1:
Prefixes前缀:
最多四个前缀,每个前缀只有1个字节,前缀间先后顺序无关,可以没有任何前缀
— Lock and repeat prefixes:
• F0H—LOCK.
• F2H—REPNE/REPNZ (used only with string instructions).
• F3H—REP (use only with string instructions).
• F3H—REPE/REPZ (use only with string instructions).
F0H—LOCK:
The LOCK prefix forces an atomic operation to insure exclusive use of shared memory in a multiprocessor environment. 在多处理器环境中,保证在当前指令执行期间,对内存进行独占式访问,尽对部分指令有效.
The repeat prefixes cause an instruction to be repeated for each element of a string. They can be
used only with the string instructions: MOVS, CMPS, SCAS, LODS, and STOS.
OPcode:
可以有1,2,3个字节
1字节:00-FF,2个字节:0F开头,3字节:0F38开头,0F3A开头
ModR/M 1个字节,
Mod模式,2bit不同的值代表不同的寻址方式
Reg/Opcode:3bit,可以是register的编码,也可以是副操作码
R/M:3bit 可以是register编码,也可以是内存寻址方式
SIB
index和Base,均是32位通用register的编码
给出了新的寻址方式:[Index*2^scale+Base]
Index不能是esp,若是,将忽略Scale和index