|
指令名称 |
指令形式 |
机器码 |
标志位(设置/测试) |
说 明 |
应用举例 |
|
ES: |
ES: |
26 |
|
ES段跨越前缀 |
|
|
CS: |
CS: |
2E |
|
CS段跨越前缀 |
|
|
SS: |
SS: |
36 |
|
SS段跨越前缀 |
|
|
DS: |
DS: |
3E |
|
DS段跨越前缀 |
|
|
FS: |
FS: |
64 |
|
FS段跨越前缀 |
|
|
GS: |
GS: |
65 |
|
GS段跨越前缀 |
|
|
Opsize: |
Opsize: |
66 |
|
操作数类型跨越前缀 |
|
|
Address: |
Address: |
67 |
|
地址类型跨越前缀 |
|
下表中所使用符号的说明
/digit -- 0到7之间的数字,用于只使用寄存器/内存操作数的指令的 ModR/M字节,作为指令扩展码
/r -- 表明指令的ModR/M字节既包含寄存器操作数,又包含内存操作数
cb -- 相对于下一条指令的字节偏移值
cw -- 相对于下一条指令的字偏移值
cd -- 相对于下一条指令的双字偏移值
cp -- 绝对远指针
ib, iw, id -- ib:1字节立即数;iw:2字节立即数;id:4字节立即数
+rb, +rw, +rd -- 寄存器代码,从0到7,被加到操作数字节:
rb rw rd ---------------------- AL = 0 AX = 0 EAX = 0 CL = 1 CX = 1 ECX = 1 DL = 2 DX = 2 EDX = 2 BL = 3 BX = 3 EBX = 3 AH = 4 SP = 4 ESP = 4 CH = 5 BP = 5 EBP = 5 DH = 6 SI = 6 ESI = 6 BH = 7 DI = 7 EDI = 7
+i -- 用于浮点指令的数字,表示ST(i)之一
rel8 -- 8位相对地址,范围:-128 ~ 127
rel16, rel32 -- 同一段内的相对地址
ptr16:16,ptr16:32 -- 远指针,典型应用于跨段指令
r8 -- 8位通用寄存器
r16 -- 16位通用寄存器
r32 -- 32位通用寄存器
imm8 -- 8位立即数
imm16 -- 16位立即数
imm32 -- 32位立即数
r/m8 -- 8位通用寄存器或内存字节
r/m16 -- 16位通用寄存器或内存字节
r/m32 -- 32位通用寄存器或内存字节
m -- 16位或32位内存操作数
m8 -- 由DS:(E)SI或ES:(E)DI指向的内存字节
m16 -- 由DS:(E)SI或ES:(E)DI指向的内存字
m32 -- 由DS:(E)SI或ES:(E)DI指向的内存双字
m64 -- 内存四字,仅用于CMPXCHG8B指令
m16:16, m16:32 -- 包含两个数据的内存指针操作数,引号前面的是段地址,引号后面的是偏移地址
m16&32, m16&16, m32&32 -- 包含数据对的内存操作数
moffs8, moffs16, moffs32 -- 分别表示类型为字节、字、双字的内存变量
Sreg -- 段寄存器,ES=0, CS=1, SS=2, DS=3,
FS=4, GS=5
m32real, m64real, m80real -- 单精度、双精度、扩展双精度内存浮点操作数
m16int, m32int, m64int -- 字型、双字型、四字型内存整数操作数
ST or ST(0) -- FPU寄存器堆栈栈顶元素
ST(i) -- 从FPU寄存器堆栈栈顶数起的第i个元素,i = 0,1,2,3,4,5,6,7
mm -- MMX寄存器,从MM0到MM7
mm/m32 -- MMX寄存器的低32位或32位内存操作数
mm/m64 -- MMX寄存器或64位内存操作数
xmm -- 128位XMM寄存器,从XMM0到XMM7
xmm/m32 -- XMM寄存器或32位内存操作数
xmm/m64 -- XMM寄存器或64位内存操作数
xmm/m128 -- XMM寄存器或128位内存操作数
|
|
|
F2XM1 |
D9 F0 |
设置C1 (C0, C2, C3未定义) |
ST(0)←(2**ST(0) - 1) |
F2XM1 | |
|
FABS |
FABS |
D9 E1 |
设置C1 (C0, C2, C3未定义) |
求绝对值:ST(0)←ABS(ST(0)) |
FABS |
|
FADD |
FADD m32real |
D8 /0 |
设置C1 (C0, C2, C3未定义) |
实数加法:ST(0)←ST(0)+m32real |
FADD REAL4 PTR [00459AF0] |
|
FADD m64real |
DC /0 |
实数加法:ST(0)←ST(0)+m64real |
FADD REAL8 PTR [00459AF0] | ||
|
FADD ST(0), ST(i) |
D8 C0+i |
实数加法:ST(0)←ST(0)+ST(i) |
FADD ST(0), ST(1) | ||
|
FADD ST(i), ST(0) |
DC C0+i |
实数加法:ST(i)←ST(i)+ST(0) |
FADD ST(1), ST(0) | ||
|
FADDP |
FADDP ST(i), ST(0) |
DE C0+i |
设置C1 (C0, C2, C3未定义) |
先进行实数加法:ST(i)←ST(i)+ST(0),然后进行一次出栈操作 |
FADDP ST(1), ST(0) |
|
FADDP |
DE C1 |
先进行实数加法:ST(0)←ST(0)+ST(1),然后进行一次出栈操作 |
FADDP | ||
|
FIADD |
FIADD m32int |
DA /0 |
设置C1 (C0, C2, C3未定义) |
加整数:ST(0)←ST(0)+m32int |
FIADD DWORD PTR [00812CD0] |
|
FIADD m16int |
DE /0 |
加整数:ST(0)←ST(0)+m16int |
FIADD WORD PTR [00812CD0] | ||
|
FBLD |
FBLD m80bcd |
DF /4 |
设置C1 (C0, C2, C3未定义) |
将BCD数装入ST(0),然后压栈push ST(0) |
|
|
FBSTP |
FBSTP m80bcd |
DF /6 |
设置C1 (C0, C2, C3未定义) |
将ST(0)以BCD数保存在m80bcd,然后出栈pop ST(0) |
|
|
FCHS |
FCHS |
D9 E0 |
设置C1 (C0, C2, C3未定义) |
改变ST(0)的符号位,即求负数 |
FCHS |
|
FCLEX |
FCLEX |
9B DB E2 |
PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义) |
清除浮点异常标志(检查非屏蔽浮点异常) |
FCLEX |
|
FNCLEX |
FNCLEX |
DB E2 |
PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义) |
清除浮点异常标志(不检查非屏蔽浮点异常) |
FNCLEX |
|
FCMOVcc |
FCMOVB ST(0), ST(i) |
DA C0+i |
小于(CF=1),设置C1 (C0, C2, C3未定义) |
条件浮点传送指令 |
FCMOVB ST(0), ST(1) |
|
FCMOVE ST(0), ST(i) |
DA C8+i |
等于(ZF=1),设置C1 (C0, C2, C3未定义) |
FCMOVE ST(0), ST(1) | ||
|
FCMOVBE ST(0), ST(i) |
DA D0+i |
小于等于(CF=1 or ZF=1),设置C1 (C0, C2, C3未定义) |
FCMOVBE ST(0), ST(1) | ||
|
FCMOVU ST(0), ST(i) |
DA D8+i |
unordered(PF=1),设置C1 (C0, C2, C3未定义) |
FCMOVU ST(0), ST(1) | ||
|
FCMOVNB ST(0), ST(i) |
DB C0+i |
不小于(CF=0),设置C1 (C0, C2, C3未定义) |
FCMOVNB ST(0), ST(1) | ||
|
FCMOVNE ST(0), ST(i) |
DB C8+i |
不等于(ZF=0),设置C1 (C0, C2, C3未定义) |
FCMOVNE ST(0), ST(1) | ||
|
FCMOVNBE ST(0), ST(i) |
DB D0+i |
不小于等于(CF=0 and ZF=0),设置C1 (C0, C2, C3未定义) |
FCMOVNBE ST(0), ST(1) | ||
|
FCMOVNU ST(0), ST(i) |
DB D8+i |
not unordered(PF=1),设置C1 (C0, C2, C3未定义) |
FCMOVNBE ST(0), ST(1) | ||
|
FCOM |
FCOM m32real |
D8 /2 |
设置C1,C0, C2, C3 |
实数比较:ST(0)-m32real,设置标志位 |
FCOM REAL4 PTR [00812CD0] |
|
FCOM m64real |
DC /2 |
实数比较:ST(0)-m64real,设置标志位 |
FCOM REAL8 PTR [00812CD0] | ||
|
FCOM ST(i) |
D8 D0+i |
实数比较:ST(0)-ST(i),设置标志位 |
FCOM ST(2) | ||
|
FCOM |
D8 D1 |
实数比较:ST(0)-ST(1),设置标志位 |
FCOM | ||
|
FCOMP |
FCOMP m32real |
D8 /3 |
设置C1,C0, C2, C3 |
实数比较:ST(0)-m32real,设置标志位,执行一次出栈操作 |
FCOMP REAL4 PTR [00812CD0] |
|
FCOMP m64real |
DC /3 |
实数比较:ST(0)-m64real,设置标志位,执行一次出栈操作 |
FCOMP REAL8 PTR [00812CD0] | ||
|
FCOMP ST(i) |
D8 D8+i |
实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作 |
FCOMP ST(2) | ||
|
FCOMP |
D8 D9 |
实数比较:ST(0)-ST(1),设置标志位,执行一次出栈操作 |
FCOMP | ||
|
FCOMI |
FCOMI ST, ST(i) |
DB F0+i |
设置ZF,PF,CF,C1 |
实数比较:ST(0)-ST(i),设置标志位 |
FCOMI ST, ST(1) |
|
FCOMIP |
FCOMIP ST, ST(i) |
DF F0+i |
设置ZF,PF,CF,C1 |
实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作 |
FCOMIP ST, ST(1) |
|
FUCOMI |
FUCOMI ST, ST(i) |
DB E8+i |
设置ZF,PF,CF,C1 |
实数比较:ST(0)-ST(i),检查ordered值,设置标志位 |
FCOMIP ST, ST(1) |
|
FUCOMIP |
FUCOMIP ST, ST(i) |
DF E8+i |
设置ZF,PF,CF,C1 |
实数比较:ST(0)-ST(i),检查ordered值,设置标志位,执行一次出栈操作 |
FUCOMIP ST, ST(1) |
|
FCOS |
FCOS |
D9 FF |
设置C1,C2 |
余弦函数COS,ST(0)←cosine(ST(0)) |
FCOS |
|
FDECSTP |
FDECSTP |
D9 F6 |
设置C1 (C0, C2, C3未定义) |
将FPU的栈顶指针值减小1 |
FDECSTP |
|
FDIV |
FDIV m32real |
D8 /6 |
设置C1 (C0, C2, C3未定义) |
实数除法:ST(0)←ST(0)/m32real |
FDIV REAL4 PTR [00459AF0] |
|
FDIV m64real |
DC /6 |
实数除法:ST(0)←ST(0)/m64real |
FDIV REAL8 PTR [00459AF0] | ||
|
FDIV ST(0), ST(i) |
D8 F0+i |
实数除法:ST(0)←ST(0)/ST(i) |
FDIV ST(0), ST(1) | ||
|
FDIV ST(i), ST(0) |
DC F8+i |
实数除法:ST(i)←ST(i)/ST(0) |
FDIV ST(1), ST(0) | ||
|
FDIVP |
FDIVP ST(i), ST(0) |
DE F8+i |
设置C1 (C0, C2, C3未定义) |
实数除法:ST(i)←ST(i)/ST(0),执行一次出栈操作 |
FDIVP ST(1), ST(0) |
|
FDIVP |
DE F9 |
实数除法:ST(1)←ST(1)/ST(0),执行一次出栈操作 |
FDIVP | ||
|
FIDIV |
FIDIV m32int |
DA /6 |
设置C1 (C0, C2, C3未定义) |
除以整数:ST(0)←ST(0)/m32int |
FIDIV DWORD PTR [00459AF0] |
|
FIDIV m16int |
DE /6 |
除以整数:ST(0)←ST(0)/m16int |
FIDIV WORD PTR [00459AF0] | ||
|
FDIVR |
FDIVR m32real |
D8 /7 |
设置C1 (C0, C2, C3未定义) |
实数除法:ST(0)←m32real/ST(0) |
FDIVR REAL4 PTR [00459AF0] |
|
FDIVR m64real |
DC /7 |
实数除法:ST(0)←m64real/ST(0) |
FDIVR REAL8 PTR [00459AF0] | ||
|
FDIVR ST(0), ST(i) |
D8 F8+i |
实数除法:ST(0)←ST(i)/ST(0) |
FDIVR ST(0), ST(1) | ||
|
FDIVR ST(i), ST(0) |
DC F0+i |
实数除法:ST(i)←ST(0)/ST(i) |
FDIVR ST(1), ST(0) | ||
|
FDIVRP |
FDIVRP ST(i), ST(0) |
DE F0+i |
设置C1 (C0, C2, C3未定义) |
实数除法:ST(i)←ST(0)/ST(i),执行一次出栈操作 |
FDIVRP ST(1), ST(0) |
|
FDIVRP |
DE F1 |
实数除法:ST(1)←ST(0)/ST(1),执行一次出栈操作 |
FDIVRP | ||
|
FIDIVR |
FIDIVR m32int |
DA /7 |
设置C1 (C0, C2, C3未定义) |
被整数除:ST(0)←m32int/ST(0) |
FIDIVR DWORD PTR [00459AF0] |
|
FIDIVR m16int |
DE /7 |
被整数除:ST(0)←m16int/ST(0) |
FIDIVR WORD PTR [00459AF0] | ||
|
FFREE |
FFREE ST(i) |
DD C0+i |
(C0, C1,C2, C3未定义) |
将与ST(i)相对应的标志位设置为空,即TAG(i)←11B |
FFREE ST(1) |
|
FICOM |
FICOM m16int |
DE /2 |
设置 C1,C0, C2, C3 |
和整数比较:ST(0)- m16int,设置标志 |
FICOM WORD PTR [00459AF0] |
|
FICOM m32int |
DA /2 |
和整数比较:ST(0)- m32int,设置标志 |
FICOM DWORD PTR [00459AF0] | ||
|
FICOMP |
FICOMP m16int |
DE /3 |
设置C1,C0, C2, C3 |
和整数比较:ST(0)- m16int,设置标志,执行一次出栈操作 |
FICOMP WORD PTR [00459AF0] |
|
FICOMP m32int |
DA /3 |
和整数比较:ST(0)- m32int,设置标志,执行一次出栈操作 |
FICOMP DWORD PTR [00459AF0] | ||
|
FILD |
FILD m16int |
DF /0 |
设置C1 (C0, C2, C3未定义) |
将16位整数压栈,即装入ST(0) |
FILD WORD PTR [00459AF0] |
|
FILD m32int |
DB /0 |
将32位整数压栈,即装入ST(0) |
FILD DWORD PTR [00459AF0] | ||
|
FILD m64int |
DF /5 |
将64位整数压栈,即装入ST(0) |
| ||
|
FINCSTP |
FINCSTP |
D9 F7 |
设置C1 (C0, C2, C3未定义) |
将FPU的栈顶指针值增大1 |
FINCSTP |
|
FINIT |
FINIT |
9B DB E3 |
设置C1 (C0, C2, C3未定义) |
初始化FPU,检查非屏蔽浮点异常 |
FINIT |
|
FNINIT |
FNINIT |
DB E3 |
设置C1 (C0, C2, C3未定义) |
初始化FPU,不检查非屏蔽浮点异常 |
FNINIT |
|
FIST |
FIST m16int |
DF /2 |
设置C1 (C0, C2, C3未定义) |
将ST(0)以16位整数保存到m16int |
FIST WORD PTR [00459AF0] |
|
FIST m32int |
DB /2 |
将ST(0)以32位整数保存到m32int |
FIST DWORD PTR [00459AF0] | ||
|
FISTP |
FISTP m16int |
DF /3 |
设置C1 (C0, C2, C3未定义) |
将ST(0)以16位整数保存到m16int,执行一次出栈操作 |
FISTP WORD PTR [00459AF0] |
|
FISTP m32int |
DB /3 |
将ST(0)以32位整数保存到m32int,执行一次出栈操作 |
FISTP DWORD PTR [00459AF0] | ||
|
FISTP m64int |
DF /7 |
将ST(0)以64位整数保存到m64int,执行一次出栈操作 |
| ||
|
FLD |
FLD m32real |
D9 /0 |
设置C1 (C0, C2, C3未定义) |
将32位实数压栈,即装入ST(0) |
FLD REAL4 PTR [00459AF0] |
|
FLD m64real |
DD /0 |
将64位实数压栈,即装入ST(0) |
FLD REAL8 PTR [00459AF0] | ||
|
FLD m80real |
DB /5 |
将80位实数压栈,即装入ST(0) |
| ||
|
FLD ST(i) |
D9 C0+i |
将ST(i)压栈,即装入ST(0) |
FLD ST(7) | ||
|
FLD1 |
FLD1 |
D9 E8 |
设置C1 (C0, C2, C3未定义) |
将+1.0压栈,即装入ST(0) |
FLD1 |
|
FLDL2T |
FLDL2T |
D9 E9 |
设置C1 (C0, C2, C3未定义) |
将log2(10)压栈,即装入ST(0) |
FLDL2T |
|
FLDL2E |
FLDL2E |
D9 EA |
设置C1 (C0, C2, C3未定义) |
将log2(e)压栈,即装入ST(0) |
FLDL2E |
|
FLDPI |
FLDPI |
D9 EB |
设置C1 (C0, C2, C3未定义) |
将pi压栈,即装入ST(0) |
FLDPI |
|
FLDLG2 |
FLDLG2 |
D9 EC |
设置C1 (C0, C2, C3未定义) |
将log10(2)压栈,即装入ST(0) |
FLDLG2 |
|
FLDLN2 |
FLDLN2 |
D9 ED |
设置C1 (C0, C2, C3未定义) |
将loge(2)压栈,即装入ST(0) |
FLDLN2 |
|
FLDZ |
FLDZ |
D9 EE |
设置C1 (C0, C2, C3未定义) |
将+0.0压栈,即装入ST(0) |
FLDZ |
|
FLDCW |
FLDCW m2byte |
D9 /5 |
C1, C0, C2, C3 未定义 |
从m2byte装入FPU控制字 |
FLDCW BYTE PTR [00459AF0] |
|
FLDENV |
FLDENV m14/28byte |
D9 /4 |
C1, C0, C2, C3 未定义 |
从m14/28byte装入FPU环境 |
FLDENV BYTE PTR [00459AF0] |
|
FMUL |
FMUL m32real |
D8 /1 |
设置C1 (C0, C2, C3未定义) |
实数乘法:ST(0)←ST(0)*m32real |
FMUL REAL4 PTR [00459AF0] |
|
FMUL m64real |
DC /1 |
实数乘法:ST(0)←ST(0)*m64real |
FMUL REAL8 PTR [00459AF0] | ||
|
FMUL ST(0), ST(i) |
D8 C8+i |
实数乘法:ST(0)←ST(0)*ST(i) |
FMUL ST(0), ST(1) | ||
|
FMUL ST(i), ST(0) |
DC C8+i |
实数乘法:ST(i)←ST(i)*ST(0) |
FMUL ST(1), ST(0) | ||
|
FMULP |
FMULP ST(i), ST(0) |
DE C8+i |
设置C1 (C0, C2, C3未定义) |
实数乘法:ST(i)←ST(i)*ST(0),执行一次出栈操作 |
FMULP ST(1), ST(0) |
|
FMULP |
DE C9 |
实数乘法:ST(1)←ST(1)*ST(0),执行一次出栈操作 |
FMULP | ||
|
FIMUL |
FIMUL m32int |
DA /1 |
设置C1 (C0, C2, C3未定义) |
乘以整数:ST(0)←m32int*ST(0) |
FIMUL DWORD PTR [00459AF0] |
|
FIMUL m16int |
DE /1 |
乘以整数:ST(0)←m16int*ST(0) |
FIMUL WORD PTR [00459AF0] | ||
|
FNOP |
FNOP |
D9 D0 |
C1, C0, C2, C3 未定义 |
空操作(等同于NOP) |
FNOP |
|
FPATAN |
FPATAN |
D9 F3 |
设置C1 (C0, C2, C3未定义) |
反正切函数arctan,ST(1)←arctan(ST(1)/ST(0)),执行一次出栈操作 |
FPATAN |
|
FPREM |
FPREM |
D9 F8 |
设置C1,C0, C2, C3 |
取余数,ST(0)←ST(0) MOD ST(1) |
FPREM |
|
FPREM1 |
FPREM1 |
D9 F5 |
设置C1,C0, C2, C3 |
取余数(使用IEEE标准),ST(0)←ST(0) MOD ST(1) |
FPREM1 |
|
FATAN |
FATAN |
D9 F2 |
设置C1,C2 (C0, C3未定义) |
正切函数Tan,ST(0)←tangent(ST(0)),执行一次压栈1.0的操作 |
FATAN |
|
FRNDINT |
FRNDINT |
D9 FC |
设置C1 (C0,C2,C3未定义) |
取整(四舍五入,当小数部分刚好等于0.5时:如果整数部分为偶数,则“舍”;如果整数部分为奇数,则“入”),ST(0)←Round(ST(0)) |
FRNDINT |
|
FRSTOR |
FRSTOR m94/108byte |
DD /4 |
设置C0,C1,C2,C3 |
从m94/108byte装入FPU状态 |
FRSTOR BYTE PTR [00459AF0] |
|
FSAVE |
FSAVE m94/108byte |
9B DD /6 |
设置C0,C1,C2,C3 |
将FPU状态保存在m94/108byte中,检查非屏蔽浮点异常,然后初始化FPU |
FSAVE BYTE PTR [00459AF0] |
|
FNSAVE |
FNSAVE m94/108byte |
9B DD /6 |
设置C0,C1,C2,C3 |
将FPU状态保存在m94/108byte中,不检查非屏蔽浮点异常,然后初始化FPU |
FNSAVE BYTE PTR [00459AF0] |
|
FSCALE |
FSCALE |
D9 FD |
设置C1 (C0,C2,C3 未定义) |
ST(0)←ST(0)* 2^ST(1) |
FSCALE |
|
FSIN |
FSIN |
D9 FE |
设置C1,C2 (C0,C3 未定义) |
正弦函数Sin,ST(0)←sine(ST(0)) |
FSIN |
|
FSINCOS |
FSINCOS |
D9 FB |
设置C1,C2 (C0,C3 未定义) |
SinCos函数: ST(0)←sine(ST(0)),PUSH cosine(ST(0)) |
FSINCOS |
|
FSQRT |
FSQRT |
D9 FA |
设置C1 (C0,C2, C3 未定义) |
平方根函数: ST(0)←SQRT(ST(0)) |
FSQRT |
|
FST |
FST m32real |
D9 /2 |
设置C1 (C0, C2, C3未定义) |
将ST(0)复制到m32real |
FST REAL4 PTR [00459AF0] |
|
FST m64real |
DD /2 |
将ST(0)复制到m64real |
FST REAL8 PTR [00459AF0] | ||
|
FST ST(i) |
DD D0+i |
将ST(0)复制到ST(i) |
FST ST(3) | ||
|
FSTP |
FSTP m32real |
D9 /3 |
设置C1 (C0, C2, C3未定义) |
将ST(0)复制到m32real,执行一次出栈操作 |
FSTP REAL4 PTR [00459AF0] |
|
FSTP m64real |
DD /3 |
将ST(0)复制到m64real,执行一次出栈操作 |
FSTP REAL8 PTR [00459AF0] | ||
|
FSTP m80real |
DB /7 |
将ST(0)复制到m80real,执行一次出栈操作 |
| ||
|
FSTP ST(i) |
DD D8+i |
将ST(0)复制到ST(i),执行一次出栈操作 |
FSTP ST(3) | ||
|
FSTCW |
FSTCW m2byte |
9B D9 /7 |
C0,C1,C2,C3 未定义 |
将FPU控制字保存到m2byte,检查非屏蔽浮点异常 |
FSTCW BYTE PTR [00459AF0] |
|
FNSTCW |
FNSTCW m2byte |
9B D9 /7 |
C0,C1,C2,C3 未定义 |
将FPU控制字保存到m2byte,不检查非屏蔽浮点异常 |
FNSTCW BYTE PTR [00459AF0] |
|
FSTENV |
FSTENV m14/28byte |
9B D9 /6 |
C0,C1,C2,C3 未定义 |
将FPU环境保存到m14/28byte,检查非屏蔽浮点异常,然后屏蔽所有浮点异常 |
FSTENV BYTE PTR [00459AF0] |
|
FNSTENV |
FNSTENV m14/28byte |
D9 /6 |
C0,C1,C2,C3 未定义 |
将FPU环境字保存到m14/28byte,不检查非屏蔽浮点异常,然后屏蔽所有浮点异常 |
FNSTENV BYTE PTR [00459AF0] |
|
FSTSW |
FSTSW m2byte |
9B DD /7 |
C0,C1,C2,C3 未定义 |
将FPU状态字保存到m2byte,检查非屏蔽浮点异常 |
FSTSW BYTE PTR [00459AF0] |
|
FSTSW AX |
9B DF E0 |
将FPU状态字保存到AX,检查非屏蔽浮点异常 |
FSTSW AX | ||
|
FNSTSW |
FNSTSW m2byte |
DD /7 |
C0,C1,C2,C3 未定义 |
将FPU状态字保存到m2byte,不检查非屏蔽浮点异常 |
FNSTSW BYTE PTR [00459AF0] |
|
FNSTSW AX |
DF E0 |
将FPU状态字保存到AX,不检查非屏蔽浮点异常 |
FNSTSW AX | ||
|
FSUB |
FSUB m32real |
D8 /4 |
设置C1 (C0, C2, C3未定义) |
实数减法:ST(0)←ST(0)-m32real |
FSUB REAL4 PTR [00459AF0] |
|
FSUB m64real |
DC /4 |
实数减法:ST(0)←ST(0)-m64real |
FSUB REAL8 PTR [00459AF0] | ||
|
FSUB ST(0), ST(i) |
D8 E0-i |
实数减法:ST(0)←ST(0)-ST(i) |
FSUB ST(0), ST(1) | ||
|
FSUB ST(i), ST(0) |
DC E8-i |
实数减法:ST(i)←ST(i)-ST(0) |
FSUB ST(1), ST(0) | ||
|
FSUBP |
FSUBP ST(i), ST(0) |
DE E8-i |
设置C1 (C0, C2, C3未定义) |
先进行实数减法:ST(i)←ST(i)-ST(0),然后进行一次出栈操作 |
FSUBP ST(1), ST(0) |
|
FSUBP |
DE E9 |
先进行实数减法:ST(1)←ST(1)-ST(0),然后进行一次出栈操作 |
FSUBP | ||
|
FISUB |
FISUB m32int |
DA /4 |
设置C1 (C0, C2, C3未定义) |
减整数:ST(0)←ST(0)-m32int |
FISUB DWORD PTR [00812CD0] |
|
FISUB m16int |
DE /4 |
减整数:ST(0)←ST(0)-m16int |
FISUB WORD PTR [00812CD0] | ||
|
FSUBR |
FSUBR m32real |
D8 /5 |
设置C1 (C0, C2, C3未定义) |
实数减法:ST(0)←m32real-ST(0) |
FSUBR REAL4 PTR [00459AF0] |
|
FSUBR m64real |
DC /5 |
实数减法:ST(0)←m64real-ST(0) |
FSUBR REAL8 PTR [00459AF0] | ||
|
FSUBR ST(0), ST(i) |
D8 E8+i |
实数减法:ST(0)←ST(i)-ST(0) |
FSUBR ST(0), ST(1) | ||
|
FSUBR ST(i), ST(0) |
DC E0+i |
实数减法:ST(i)←ST(0)-ST(i) |
FSUBR ST(1), ST(0) | ||
|
FSUBRP |
FSUBRP ST(i), ST(0) |
DE E0+i |
设置C1 (C0, C2, C3未定义) |
实数减法:ST(i)←ST(0)-ST(i),执行一次出栈操作 |
FSUBRP ST(1), ST(0) |
|
FSUBRP |
DE E1 |
实数减法:ST(1)←ST(0)-ST(1),执行一次出栈操作 |
FSUBRP | ||
|
FISUBR |
FISUBR m32int |
DA /5 |
设置C1 (C0, C2, C3未定义) |
被整数减:ST(0)←m32int-ST(0) |
FISUBR DWORD PTR [00459AF0] |
|
FISUBR m16int |
DE /5 |
被整数减:ST(0)←m16int-ST(0) |
FISUBR WORD PTR [00459AF0] | ||
|
FTST |
FTST |
D9 E4 |
设置C0,C1, C2, C3 |
零检测,将ST(0)和0.0相比较 |
FTST |
|
FUCOM |
FUCOM ST(i) |
DD E0+i |
设置C0,C1, C2, C3 |
比较ST(0)和ST(i) |
FUCOM ST(4) |
|
FUCOM |
DD E1 |
比较ST(0)和ST(1) |
FUCOM | ||
|
FUCOMP |
FUCOMP ST(i) |
DD E8+i |
设置C0,C1, C2, C3 |
比较ST(0)和ST(i),执行一次出栈操作 |
FUCOMP ST(4) |
|
FUCOMP |
DD E9 |
比较ST(0)和ST(1),执行一次出栈操作 |
FUCOMP | ||
|
FUCOMPP |
FUCOMPP |
DD E8+i |
设置C0,C1, C2, C3 |
比较ST(0)和ST(1),执行两次出栈操作 |
FUCOMPP |
|
FWAIT |
FWAIT |
9B |
C0,C1, C2, C3 未定义 |
等待,检查非屏蔽浮点异常 |
FWAIT |
|
FXAM |
FXAM |
D9 E5 |
设置C0,C1, C2, C3 |
检查ST(0)中的数值类型 |
FXAM |
|
FXCH |
FXCH ST(i) |
D9 C8+i |
设置C1 (C0, C2, C3未定义) |
交换ST(0)和ST(i)的内容 |
FXCH ST(4) |
|
FXCH |
D9 C9 |
交换ST(0)和ST(1)的内容 |
FXCH | ||
|
FXRSTOR |
FXRSTOR m512byte |
0F AE /1 |
恢复所有标志位 |
由m512byte恢复寄存器x87 FPU, MMX, XMM, 和MXCSR的状态 |
FXRSTOR BYTE PTR [00459AF0] |
|
FXSAVE |
FXSAVE m512byte |
0F AE /0 |
不影响标志位 |
将寄存器x87 FPU, MMX, XMM, 和MXCSR的状态保存到m512byte |
FXSAVE BYTE PTR [00459AF0] |
|
FXTRACT |
FXTRACT |
D9 F4 |
设置C1 (C0, C2, C3未定义) |
将ST(0)中的数分成exponent和significand两部分,ST(0)←Exponent(ST(0)),PUSH Significand(ST(0)) |
FXTRACT |
|
FYL2X |
FYL2X |
D9 F1 |
设置C1 (C0, C2, C3未定义) |
计算:ST(1)←ST(1)*log2(ST(0)),执行一次出栈操作 |
FYL2X |
|
FYL2XP1 |
FYL2XP1 |
D9 F9 |
设置C1 (C0, C2, C3未定义) |
计算:ST(1) ←ST(1)*log2(ST(0) + 1.0),执行一次出栈操作 |
|
|
HLT |
F4 |
不影响标志位 |
系统进入暂停状态 |
HLT | |
|
IDIV r/m8 |
F6 /7 |
AF CF OF PF SF ZF 未定义 |
有符号除法 |
IDIV BL ;AX除以BL,商在AL中,余数在AH中 | |
|
IDIV r/m16 |
F7 /7 |
IDIV BX ;DX:AX除以BX,商在AX中,余数在DX中 | |||
|
IDIV r/m32 |
F7 /7 |
IDIV EBX;EDX:EAX除以BX,商在EAX中,余数在EDX中 | |||
|
IMUL |
IMUL r/m8 |
F6 /5 |
设置CF OF |
有符号乘法:AX←AL*r/m8 |
IMUL CL |
|
IMUL r/m16 |
F7 /5 |
有符号乘法:DX:AX←AX*r/m16 |
IMUL CX | ||
|
IMUL r/m32 |
F7 /5 |
有符号乘法:EDX:EAX←EAX*r/m32 |
IMUL ECX | ||
|
IMUL r16, r/m16 |
0F AF /r |
有符号乘法:r16←r16*r/m16 |
IMUL AX, BX | ||
|
IMUL r32, r/m32 |
0F AF /r |
有符号乘法:r32←r32*r/m32 |
IMUL EAX, EBX | ||
|
IMUL r16,r/m16,imm8 |
6B /r ib |
有符号乘法:r16←r/m16*imm8 |
IMUL AX, BX, 39 | ||
|
IMUL r32,r/m32,imm8 |
6B /r ib |
有符号乘法:r32←r/m32*imm8 |
IMUL EAX, EBX, 39 | ||
|
IMUL r16, imm8 |
6B /r ib |
有符号乘法:r16←r16*imm8 |
IMUL AX, 37 | ||
|
IMUL r32, imm8 |
6B /r ib |
有符号乘法:r32←r32*imm8 |
IMUL EAX, 37 | ||
|
IMUL r16,r/m16,imm16 |
69 /r iw |
有符号乘法:r16←r/m16*imm16 |
IMUL AX, BX, 387E | ||
|
IMUL r32,r/m32,imm32 |
69 /r id |
有符号乘法:r32←r/m32*imm32 |
IMUL EAX, EBX, 006387EA | ||
|
IMUL r16, imm16 |
69 /r iw |
有符号乘法:r16←r16*imm16 |
IMUL AX, 387E | ||
|
IMUL r32, imm32 |
69 /r id |
有符号乘法:r32←r32*imm32 |
IMUL EAX, 006387EA | ||
|
IN |
IN AL,imm8 |
E4 ib |
不影响标志位 |
从imm8指定的端口读字节(BYTE)到AL |
IN AL,E0 |
|
IN AX,imm8 |
E5 ib |
从imm8指定的端口读字节(BYTE)到AX |
IN AX,E0 | ||
|
IN EAX,imm8 |
E5 ib |
从imm8指定的端口读字节(BYTE)到EAX |
IN EAX,E0 | ||
|
IN AL,DX |
EC |
从DX指定的端口读字节(BYTE)到AL |
IN AL,DX | ||
|
IN AX,DX |
ED |
从DX指定的端口读字(WORD)到AX |
IN AX,DX | ||
|
IN EAX,DX |
ED |
从DX指定的端口读双字(DWORD)到EAX |
IN EAX,DX | ||
|
INC |
INC r/m8 |
FE /0 |
设置 OF SF ZF AF PF |
目标加1 |
INC BYTE PTR [00459AF0] |
|
INC r/m16 |
FF /0 |
INC WORD PTR [00459AF0] | |||
|
INC r/m32 |
FF /0 |
INC DWORD PTR [00459AF0] | |||
|
INC r16 |
40+rw |
INC DX | |||
|
INC r32 |
40+rd |
INC EDX | |||
|
INS |
INS m8, DX |
6C |
不影响标志位 |
从DX指定的端口读字节(BYTE)到ES:(E)DI |
|
|
INS m16, DX |
6D |
从DX指定的端口读字(WORD)到ES:(E)DI |
| ||
|
INS m32, DX |
6D |
从DX指定的端口读双字(DWORD)到ES:(E)DI |
| ||
|
INSB |
INSB |
6C |
不影响标志位 |
从DX指定的端口读字节(BYTE)到ES:(E)DI |
INSB |
|
INSW |
INSW |
6D |
不影响标志位 |
从DX指定的端口读字(WORD)到ES:(E)DI |
INSW |
|
INSD |
INSD |
6D |
不影响标志位 |
从DX指定的端口读双字(DWORD)到ES:(E)DI |
INSD |
|
INT 3 |
INT 3 |
CC |
标志位被保存压栈 |
调试陷阱中断 |
INT 3 |
|
INT imm8 |
INT imm8 |
CD ib |
标志位被保存压栈 |
中断功能调用,imm8是中断向量号 |
INT 21 |
|
INTO |
INTO |
CE |
标志位被保存压栈 |
溢出中断,条件:OV=1,4号中断功能调用 |
INTO |
|
INVD |
INVD |
0F 08 |
不影响标志位 |
使内部CACHES无效,初始化外部CACHES |
INVD |
|
INVLPG |
INVLPG |
0F 01/7 |
不影响标志位 |
使TLB项无效 |
INVLPG [EBX] |
|
IRET |
IRET |
CF |
恢复被压栈的标志位 |
中断返回(16位) |
IRET |
|
IRETD |
IRETD |
CF |
恢复被压栈的标志位 |
中断返回(32位) |
IRETD |
|
JA rel8 |
77 cb |
高于(CF=0 and ZF=0) |
条件转移指令 |
| |
|
JAE rel8 |
73 cb |
高于等于(CF=0) |
| ||
|
JB rel8 |
72 cb |
低于(CF=1) |
| ||
|
JBE rel8 |
76 cb |
低于等于(CF=1 or ZF=1) |
| ||
|
JC rel8 |
72 cb |
有进位(CF=1) |
| ||
|
JCXZ rel8 |
E3 cb |
CX=0则跳 |
| ||
|
JECXZ rel8 |
E3 cb |
ECX=0则跳 |
| ||
|
JE rel8 |
74 cb |
等于(ZF=1) |
| ||
|
JG rel8 |
7F cb |
大于(ZF=0 and SF=OF) |
| ||
|
JGE rel8 |
7D cb |
大于等于(SF=OF) |
| ||
|
JL rel8 |
7C cb |
小于(SF<>OF) |
| ||
|
JLE rel8 |
7E cb |
小于等于(ZF=1 or SF<>OF) |
| ||
|
JNA rel8 |
76 cb |
不高于(CF=1 or ZF=1) |
| ||
|
JNAE rel8 |
72 cb |
不高等于(CF=1) |
| ||
|
JNB rel8 |
73 cb |
不低于(CF=0) |
| ||
|
JNBE rel8 |
77 cb |
不低等于(CF=0 and ZF=0) |
| ||
|
JNC rel8 |
73 cb |
无进位(CF=0) |
| ||
|
JNE rel8 |
75 cb |
不等于(ZF=0) |
| ||
|
JNG rel8 |
7E cb |
不大于(ZF=1 or SF<>OF) |
| ||
|
JNGE rel8 |
7C cb |
不大等于(SF<>OF) |
| ||
|
JNL rel8 |
7D cb |
不小于(SF=OF) |
| ||
|
JNLE rel8 |
7F cb |
不小等于(ZF=0 and SF=OF) |
| ||
|
JNO rel8 |
71 cb |
无溢出(OF=0) |
| ||
|
JNP rel8 |
7B cb |
非偶数(PF=0) |
| ||
|
JNS rel8 |
79 cb |
非负数(SF=0) |
| ||
|
JNZ rel8 |
75 cb |
非零(ZF=0) |
| ||
|
JO rel8 |
70 cb |
溢出(OF=1) |
| ||
|
JP rel8 |
7A cb |
偶数(PF=1) |
| ||
|
JPE rel8 |
7A cb |
偶数(PF=1) |
| ||
|
JPO rel8 |
7B cb |
奇数(PF=0) |
| ||
|
JS rel8 |
78 cb |
负数(SF=1) |
| ||
|
JZ rel8 |
74 cb |
为零(ZF=1) |
| ||
|
JA rel16/32 |
0F 87 cw/cd |
高于(CF=0 and ZF=0) |
| ||
|
JAE rel16/32 |
0F 83 cw/cd |
高于等于(CF=0) |
| ||
|
JB rel16/32 |
0F 82 cw/cd |
低于(CF=1) |
| ||
|
JBE rel16/32 |
0F 86 cw/cd |
低于等于(CF=1 or ZF=1) |
| ||
|
JC rel16/32 |
0F 82 cw/cd |
有进位(CF=1) |
| ||
|
JE rel16/32 |
0F 84 cw/cd |
等于(ZF=1) |
| ||
|
JZ rel16/32 |
0F 84 cw/cd |
为零(ZF=1) |
| ||
|
JG rel16/32 |
0F 8F cw/cd |
大于(ZF=0 and SF=OF) |
| ||
|
JMP |
JMP rel8 |
EB cb |
不影响标志位 |
无条件转移指令 |
|
|
JMP rel16 |
E9 cw |
| |||
|
JMP rel32 |
E9 cd |
| |||
|
JMP r/m16 |
FF /4 |
| |||
|
JMP r/m32 |
FF /4 |
| |||
|
JMP ptr16:16 |
EA cd |
| |||
|
JMP ptr16:32 |
EA cp |
| |||
|
JMP m16:16 |
FF /5 |
| |||
|
JMP m16:32 |
FF /5 |
| |||
|
LAHF |
9F |
不影响标志位 |
将标志寄存器的低字节送入AH,格式为:AH=(SF:ZF:0:AF:0:PF:1:CF) |
LAHF | |
|
LAR |
LAR r16,r/m16 |
0F 02 /r |
设置ZF |
将源操作数指定的选择子访问权送目标寄存器 |
LAR AX,BX |
|
LAR r32,r/m32 |
LAR EAX,EBX | ||||
|
LDS |
LDS r16,m16:16 |
C5 /r |
不影响标志位 |
从内存位置m16:16装入地址值DS:r16 |
|
|
LDS r32,m16:32 |
从内存位置m16:32装入地址值DS:r32 |
| |||
|
LSS |
LSS r16,m16:16 |
0F B2 /r |
不影响标志位 |
从内存位置m16:16装入地址值SS:r16 |
|
|
LSS r32,m16:32 |
从内存位置m16:32装入地址值SS:r32 |
| |||
|
LES |
LES r16,m16:16 |
C4 /r |
不影响标志位 |
从内存位置m16:16装入地址值ES:r16 |
|
|
LES r32,m16:32 |
从内存位置m16:32装入地址值ES:r32 |
| |||
|
LFS |
LFS r16,m16:16 |
0F B4 /r |
不影响标志位 |
从内存位置m16:16装入地址值FS:r16 |
|
|
LFS r32,m16:32 |
从内存位置m16:32装入地址值FS:r32 |
| |||
|
LGS |
LGS r16,m16:16 |
0F B5 /r |
不影响标志位 |
从内存位置m16:16装入地址值GS:r16 |
|
|
LGS r32,m16:32 |
从内存位置m16:32装入地址值GS:r32 |
| |||
|
LEA |
LEA r16,m |
8D /r |
不影响标志位 |
将源操作数的有效地址送r16 |
|
|
LEA r32,m |
将源操作数的有效地址送r32 |
| |||
|
LEAVE |
LEAVE |
C9 |
不影响标志位 |
子过程返回释放堆栈框架 |
LEAVE |
|
LGDT |
LGDT m16&32 |
0F 01 /2 |
不影响标志位 |
将内存m16&32处的值装入全局描述符表寄存器 |
LGDT [EBP] |
|
LIDT |
LIDT m16&32 |
0F 01 /3 |
不影响标志位 |
将内存m16&32处的值装入中断描述符表寄存器 |
LIDT [SI] |
|
LLDT |
LLDT r/m16 |
0F 00 /2 |
不影响标志位 |
将r/m16处的值装入局部描述符表寄存器 |
LLDT BX |
|
LMSW |
LMSW r/m16 |
0F 01 /6 |
不影响标志位 |
将r/m16处的值装入机器状态字 |
LMSW [BP] |
|
LOCK |
LOCK |
F0 |
不影响标志位 |
总线锁定 |
LOCK |
|
LODS |
LODS m8 |
AC |
不影响标志位 |
将地址DS:(E)SI的值装入AL |
|
|
LODS m16 |
AD |
将地址DS:(E)SI的值装入AX |
| ||
|
LODS m32 |
AD |
将地址DS:(E)SI的值装入EAX |
| ||
|
LODSB |
LODSB |
AC |
不影响标志位 |
将地址DS:(E)SI的值装入AL |
LODSB |
|
LODSW |
LODSW |
AD |
不影响标志位 |
将地址DS:(E)SI的值装入AX |
LODSW |
|
LODSD |
LODSD |
AD |
不影响标志位 |
将地址DS:(E)SI的值装入EAX |
LODSD |
|
LOOP |
LOOP rel8 |
E2 cb |
不影响标志位 |
条件循环指令,循环条件:CX/ECX != 0 |
|
|
LOOPE |
LOOPE rel8 |
E1 cb |
不影响标志位 |
条件循环指令,循环条件:CX/ECX != 0 且 ZF=1 |
|
|
LOOPZ |
LOOPZ rel8 |
E1 cb |
不影响标志位 |
条件循环指令,循环条件:CX/ECX != 0 且 ZF=1 |
|
|
LOOPNE |
LOOPNE rel8 |
E1 cb |
不影响标志位 |
条件循环指令,循环条件:CX/ECX != 0 且 ZF=0 |
|
|
LOOPNZ |
LOOPNZ rel8 |
E1 cb |
不影响标志位 |
条件循环指令,循环条件:CX/ECX != 0 且 ZF=0 |
|
|
LSL |
LSL r16,r/m16 |
0F 03 /r |
设置ZF |
装入选择子对应的描述符的段界限 |
LSL AX,BX |
|
LSL r32,r/m32 |
LSL EAX,EBX | ||||
|
LTR |
LTR r/m16 |
0F 00 /3 |
不影响标志位 |
装入任务寄存器 |
|
|
MOV r/m8,r8 |
88 /r |
不影响标志位 |
传送指令 |
MOV [00459AF0],AL | |
|
MOV r/m16,r16 |
89 /r |
MOV [00459AF0],AX | |||
|
MOV r/m32,r32 |
89 /r |
MOV [00459AF0],EAX | |||
|
MOV r8,r/m8 |
8A /r |
MOV AL,[00459AF0] | |||
|
MOV r16,r/m16 |
8B /r |
MOV AX,[00459AF0] | |||
|
MOV r32,r/m32 |
8B /r |
MOV EAX,[00459AF0] | |||
|
MOV r/m16,Sreg |
8C /r |
MOV AX,ES | |||
|
MOV Sreg,r/m16 |
8E /r |
MOV ES,AX | |||
|
MOV AL,moffs8 |
A0 |
MOV AL,ES:[459A] | |||
|
MOV AX,moffs16 |
A1 |
MOV AX,ES:[459A] | |||
|
MOV EAX,moffs32 |
A1 |
MOV EAX,ES:[00459AF0] | |||
|
MOV moffs8,AL |
A2 |
MOV ES:[459A],AL | |||
|
MOV moffs16,AX |
A3 |
MOV ES:[459A],AX | |||
|
MOV moffs32,EAX |
A3 |
MOV ES:[00459AF0],EAX | |||
|
MOV r8,imm8 |
B0+rb |
MOV AL,F0 | |||
|
MOV r16,imm16 |
B8+rw |
MOV AX,9AF0 | |||
|
MOV r32,imm32 |
B8+rd |
MOV EAX,00459AF0 | |||
|
MOV r/m8,imm8 |
C6 /0 |
MOV BYTE PTR [00459AF0],F0 | |||
|
MOV r/m16,imm16 |
C7 /0 |
MOV WORD PTR [00459AF0],9AF0 | |||
|
MOV r/m32,imm32 |
C7 /0 |
MOV DWORD PTR [00459AF0],00459AF0 | |||
|
MOV |
MOV CR0,r32 |
0F 22 /r |
不影响标志位 |
控制寄存器传送指令 |
MOV CR0,EAX |
|
MOV CR2,r32 |
0F 22 /r |
MOV CR2,EAX | |||
|
MOV CR3,r32 |
0F 22 /r |
MOV CR3,EAX | |||
|
MOV CR4,r32 |
0F 22 /r |
MOV CR4,EAX | |||
|
MOV r32,CR0 |
0F 20 /r |
MOV EAX,CR0 | |||
|
MOV r32,CR2 |
0F 20 /r |
MOV EAX,CR2 | |||
|
MOV r32,CR3 |
0F 20 /r |
MOV EAX,CR3 | |||
|
MOV r32,CR4 |
0F 20 /r |
MOV EAX,CR4 | |||
|
MOV |
MOV r32, DR0-DR7 |
0F 21 /r |
不影响标志位 |
调试寄存器传送指令 |
MOV EAX,DR0 |
|
MOV DR0-DR7,r32 |
0F 23 /r |
MOV DR0,EAX | |||
|
MOVD |
MOVD mm, r/m32 |
0F 6E /r |
不影响标志位 |
双字传送指令 |
|
|
MOVD r/m32, mm |
0F 7E /r |
| |||
|
MOVD xmm, r/m32 |
66 0F 6E /r |
| |||
|
MOVD r/m32, xmm |
66 0F 7E /r |
| |||
|
MOVQ |
MOVQ mm, r/m64 |
0F 6F /r |
不影响标志位 |
八字节传送指令 |
|
|
MOVQ mm/m64, mm |
0F 7F /r |
| |||
|
MOVQ xmm1, xmm2/m64 |
F3 0F 7E |
| |||
|
MOVQ xmm2/m64, xmm1 |
66 0F D6 |
| |||
|
MOVS |
MOVS m8, m8 |
A4 |
不影响标志位 |
字符串传送,每次传送1个字节 |
MOVS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI |
|
MOVS m16, m16 |
A5 |
字符串传送,每次传送1个字 |
MOVS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI | ||
|
MOVS m32, m32 |
A5 |
字符串传送,每次传送1个双字 |
MOVS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI (386+) | ||
|
MOVSB |
A4 |
字符串传送,每次传送1个字节 |
MOVSB ;源串DS:(E)SI,目的串:ES:(E)DI | ||
|
MOVSW |
A5 |
字符串传送,每次传送1个字 |
MOVSW ;源串DS:(E)SI,目的串:ES:(E)DI | ||
|
MOVSD |
A5 |
字符串传送,每次传送1个双字 |
MOVSD ;源串DS:(E)SI,目的串:ES:(E)DI (386+) | ||
|
MOVSX |
MOVSX r16,r/m8 |
0F BE /r |
不影响标志位 |
带符号扩展传送指令 |
MOVSX AX, BL |
|
MOVSX r32,r/m8 |
0F BE /r |
MOVSX EAX,BL | |||
|
MOVSX r32,r/m16 |
0F BF /r |
MOVSX EAX,BX | |||
|
MOVZX |
MOVZX r16,r/m8 |
0F B6 /r |
不影响标志位 |
零扩展传送指令 |
MOVZX AX, BL |
|
MOVZX r32,r/m8 |
0F B6 /r |
MOVZX EAX,BL | |||
|
MOVZX r32,r/m16 |
0F B7 /r |
MOVZX EAX,BX | |||
|
MUL |
MUL r/m8 |
F6 /4 |
设置CF OF |
无符号乘法:AX←AL*r/m8 |
MUL CL |
|
MUL r/m16 |
F7 /4 |
无符号乘法:DX:AX←AX*r/m16 |
MUL CX | ||
|
MUL r/m32 |
F7 /4 |
无符号乘法:EDX:EAX←EAX*r/m32 |
MUL ECX | ||
|
NEG r/m8 |
F6 /3 |
设置CF OF SF ZF AF PF |
取负:r/m8=-r/m8 |
NEG CL | |
|
NEG r/m16 |
F7 /3 |
取负:r/m16=-r/m16 |
NEG CX | ||
|
NEG r/m32 |
F7 /3 |
取负:r/m32=-r/m32 |
NEG ECX | ||
|
NOP |
NOP |
90 |
不影响标志位 |
空操作 |
NOP |
|
NOT |
NOT r/m8 |
F6 /2 |
设置CF OF SF ZF AF PF |
按位取反:r/m8=NOT r/m8 |
NOT CL |
|
NOT r/m16 |
F7 /2 |
按位取反:r/m16=NOT r/m16 |
NOT CX | ||
|
NOT r/m32 |
F7 /2 |
按位取反:r/m32=NOT r/m32 |
NOT ECX | ||
|
OR AL, imm8 |
0C ib |
设置 CF OF PF SF ZF |
逻辑或 |
OR AL, 1F | |
|
OR AX, imm16 |
0D iw |
OR AX, 4F80 | |||
|
OR EAX, imm32 |
0D id |
OR EAX, 00004F80 | |||
|
OR r/m8, imm8 |
80 /1 ib |
OR BYTE PTR [006387EA], 39 | |||
|
OR r/m16,imm16 |
81 /1 iw |
OR WORD PTR [006387EA], 1039 | |||
|
OR r/m32,imm32 |
81 /1 id |
OR DWORD PTR [006387EA], 00001039 | |||
|
OR r/m16,imm8 |
83 /1 ib |
OR WORD PTR [006387EA], 39 | |||
|
OR r/m32,imm8 |
83 /1 ib |
OR DWORD PTR [006387EA], 39 | |||
|
OR r/m8,r8 |
08 /r |
OR [006387EA], AL | |||
|
OR r/m16,r16 |
09 /r |
OR [006387EA], AX | |||
|
OR r/m32,r32 |
09 /r |
OR [006387EA], EAX | |||
|
OR r8,r/m8 |
0A /r |
OR AL, [006387EA] | |||
|
OR r16,r/m16 |
0B /r |
OR AX, [006387EA] | |||
|
OR r32,r/m32 |
0B /r |
OR EAX, [006387EA] | |||
|
OUT |
OUT imm8,AL |
E6 ib |
不影响标志位 |
将AL输出到imm8指定的端口 |
OUT E0,AL |
|
OUT imm8,AX |
E7 ib |
将AX输出到imm8指定的端口 |
OUT E0,AX | ||
|
OUT imm8,EAX |
E7 ib |
将EAX输出到imm8指定的端口 |
OUT E0,EAX | ||
|
OUT AL,DX |
EE |
将AL输出到DX指定的端口 |
OUT DX,AL | ||
|
OUT AX,DX |
EF |
将AX输出到DX指定的端口 |
OUT DX,AX | ||
|
OUT EAX,DX |
EF |
将EAX输出到DX指定的端口 |
OUT DX,EAX | ||
|
OUTS |
OUTS DX,m8 |
6E |
不影响标志位 |
将DS:(E)SI处的字节输出到DX指定的端口 |
|
|
OUTS DX,m16 |
6F |
将DS:(E)SI处的字输出到DX指定的端口 |
| ||
|
OUTS DX,m32 |
6F |
将DS:(E)SI处的双字输出到DX指定的端口 |
| ||
|
OUTSB |
OUTSB |
6E |
不影响标志位 |
将DS:(E)SI处的字节输出到DX指定的端口 |
OUTSB |
|
OUTSW |
OUTSW |
6F |
不影响标志位 |
将DS:(E)SI处的字输出到DX指定的端口 |
OUTSW |
|
OUTSD |
OUTSD |
6F |
不影响标志位 |
将DS:(E)SI处的双字输出到DX指定的端口 |
OUTSD |
|
PACKSSWB mm1, mm2/m64 |
0F 63 /r |
不影响标志位 |
紧缩带符号字到字节,溢出取饱和值 |
| |
|
PACKSSWB xmm1,xmm2/m128 |
66 0F 63 /r |
PACKSSWB XMM0,XMM1 | |||
|
PACKSSDW |
PACKSSDW mm1, mm2/m64 |
0F 6B /r |
不影响标志位 |
紧缩带符号双字到字,溢出取饱和值 |
|
|
PACKSSDW xmm1,xmm2/m128 |
66 0F 6B /r |
PACKSSDW XMM0,XMM1 | |||
|
PACKUSWB |
PACKUSWB mm1, mm2/m64 |
0F 67 /r |
不影响标志位 |
紧缩无符号字到字节,溢出取饱和值 |
|
|
PACKUSWB xmm1,xmm2/m128 |
66 0F 67 /r |
PACKUSWB XMM0,XMM1 | |||
|
PADDB |
PADDB mm, mm/m64 |
0F FC /r |
不影响标志位 |
紧缩字节相加,溢出则回绕 |
|
|
PADDB xmm1,xmm2/m128 |
66 0F FC /r |
PADDB XMM6,XMM7 | |||
|
PADDW |
PADDW mm, mm/m64 |
0F FD /r |
不影响标志位 |
紧缩字相加,溢出则回绕 |
|
|
PADDW xmm1,xmm2/m128 |
66 0F FD /r |
PADDW XMM6,XMM7 | |||
|
PADDD |
PADDD mm, mm/m64 |
0F FE /r |
不影响标志位 |
紧缩双字相加,溢出则回绕 |
|
|
PADDD xmm1,xmm2/m128 |
66 0F FE /r |
PADDD XMM6,XMM7 | |||
|
PADDQ |
PADDQ mm1, mm2/m64 |
0F D4 /r |
不影响标志位 |
紧缩四字相加,溢出则回绕 |
|
|
PADDQ xmm1,xmm2/m128 |
66 0F D4 /r |
PADDQ XMM6,XMM7 | |||
|
PADDSB |
PADDSB mm, mm/m64 |
0F EC /r |
不影响标志位 |
带符号紧缩字节相加,溢出取饱和值 |
|
|
PADDSB xmm1,xmm2/m128 |
66 0F EC /r |
PADDSB XMM6,XMM7 | |||
|
PADDSW |
PADDSW mm, mm/m64 |
0F ED /r |
不影响标志位 |
带符号紧缩字相加,溢出取饱和值 |
|
|
PADDSW xmm1,xmm2/m128 |
66 0F ED /r |
PADDSW XMM6,XMM7 | |||
|
PADDUSB |
PADDUSB mm, mm/m64 |
0F DC /r |
不影响标志位 |
无符号紧缩字节相加,溢出取饱和值 |
|
|
PADDUSB xmm1,xmm2/m128 |
66 0F DC /r |
PADDUSB XMM0,XMM1 | |||
|
PADDUSW |
PADDUSW mm, mm/m64 |
0F DD /r |
不影响标志位 |
无符号紧缩字相加,溢出取饱和值 |
|
|
PADDUSW xmm1,xmm2/m128 |
66 0F DD /r |
PADDUSW XMM1,XMM2 | |||
|
PAND |
PAND mm, mm/m64 |
0F DB /r |
不影响标志位 |
逻辑与操作 |
|
|
PAND xmm1,xmm2/m128 |
66 0F DB /r |
PAND XMM4,XMM1 | |||
|
PANDN |
PANDN mm, mm/m64 |
0F DF /r |
不影响标志位 |
求反后与操作:DEST ←(NOT DEST) AND SRC |
|
|
PANDN xmm1,xmm2/m128 |
66 0F DF /r |
PANDN XMM4,XMM1 | |||
|
PAUSE |
PAUSE |
F3 90 |
不影响标志位 |
改善处理器的“spin-wait loop”性能 |
PAUSE |
|
PAVGB |
PAVGB mm, mm/m64 |
0F E0 /r |
不影响标志位 |
取紧缩无符号字节的平均值(四舍五入) |
|
|
PAVGB xmm1,xmm2/m128 |
0F E0 /r |
PAVGB XMM4,XMM1 | |||
|
PAVGW |
PAVGW mm, mm/m64 |
0F E0 /r |
不影响标志位 |
取紧缩无符号字的平均值(四舍五入) |
|
|
PAVGW xmm1,xmm2/m128 |
0F E0 /r |
PAVGW XMM4,XMM1 | |||
|
PCMPEQB |
PCMPEQB mm, mm/m64 |
0F 74 /r |
不影响标志位 |
紧缩字节相等比较 |
|
|
PCMPEQB xmm1,xmm2/m128 |
66 0F 74 /r |
PCMPEQB XMM4,XMM1 | |||
|
PCMPEQW |
PCMPEQW mm, mm/m64 |
0F 75 /r |
不影响标志位 |
紧缩字相等比较 |
|
|
PCMPEQW xmm1,xmm2/m128 |
66 0F 75 /r |
PCMPEQW XMM4,XMM1 | |||
|
PCMPEQD |
PCMPEQD mm, mm/m64 |
0F 76 /r |
不影响标志位 |
紧缩双字相等比较 |
|
|
PCMPEQD xmm1,xmm2/m128 |
66 0F 76 /r |
PCMPEQD XMM4,XMM1 | |||
|
PCMPGTB |
PCMPGTB mm, mm/m64 |
0F 64 /r |
不影响标志位 |
带符号紧缩字节大于比较 |
|
|
PCMPGTB xmm1,xmm2/m128 |
66 0F 64 /r |
PCMPGTB XMM4,XMM1 | |||
|
PCMPGTW |
PCMPGTW mm, mm/m64 |
0F 65 /r |
不影响标志位 |
带符号紧缩字大于比较 |
|
|
PCMPGTW xmm1,xmm2/m128 |
66 0F 65 /r |
PCMPGTW XMM4,XMM1 | |||
|
PCMPGTD |
PCMPGTD mm, mm/m64 |
0F 66 /r |
不影响标志位 |
带符号紧缩双字大于比较 |
|
|
PCMPGTD xmm1,xmm2/m128 |
66 0F 66 /r |
PCMPGTD XMM4,XMM1 | |||
|
PMADDWD |
PMADDWD mm, mm/m64 |
0F F5 /r |
不影响标志位 |
紧缩乘和加操作 |
|
|
PMADDWD xmm1,xmm2/m128 |
66 0F F5 /r |
PMADDWD XMM4,XMM1 | |||
|
PMAXSW |
PMAXSW mm1, mm2/m64 |
0F EE /r |
不影响标志位 |
有符号字比较,返回最大值 |
|
|
PMAXSW xmm1,xmm2/m128 |
66 0F EE /r |
PMAXSW XMM4,XMM1 | |||
|
PMAXUB |
PMAXUB mm1, mm2/m64 |
0F DE /r |
不影响标志位 |
无符号字比较,返回最大值 |
|
|
PMAXUB xmm1,xmm2/m128 |
66 0F DE /r |
PMAXUB XMM4,XMM1 | |||
|
PMINSW |
PMINSW mm1, mm2/m64 |
0F EA /r |
不影响标志位 |
有符号字比较,返回最小值 |
|
|
PMINSW xmm1,xmm2/m128 |
66 0F EA /r |
PMINSW XMM4,XMM1 | |||
|
PMINUB |
PMINUB mm1, mm2/m64 |
0F DA /r |
不影响标志位 |
无符号字比较,返回最小值 |
|
|
PMINUB xmm1,xmm2/m128 |
66 0F DA /r |
PMINUB XMM4,XMM1 | |||
|
PMULHUW |
PMULHUW mm1, mm2/m64 |
0F E4 /r |
不影响标志位 |
紧缩无符号字相乘,存高位 |
|
|
PMULHUW xmm1,xmm2/m128 |
66 0F E4 /r |
PMULHUW XMM4,XMM1 | |||
|
PMULHW |
PMULHW mm1, mm2/m64 |
0F E5 /r |
不影响标志位 |
紧缩有符号字相乘,存高位 |
|
|
PMULHW xmm1,xmm2/m128 |
66 0F E5 /r |
PMULHW XMM4,XMM1 | |||
|
PMULLW |
PMULLW mm1, mm2/m64 |
0F D5 /r |
不影响标志位 |
紧缩有符号字相乘,存低位 |
|
|
PMULLW xmm1,xmm2/m128 |
66 0F D5 /r |
PMULLW XMM4,XMM1 | |||
|
PMULUDQ |
PMULUDQ mm1, mm2/m64 |
0F F4 /r |
不影响标志位 |
无符号双字相乘,存四字 |
|
|
PMULUDQ xmm1,xmm2/m128 |
66 OF F4 /r |
PMULUDQ XMM4,XMM1 | |||
|
POP |
POP r/m16 |
8F /0 |
不影响标志位 |
16位数据出栈 |
POP WORD PTR [006387EA] |
|
POP r/m32 |
8F /0 |
32位数据出栈 |
POP DWORD PTR [006387EA] | ||
|
POP r16 |
58+rw |
16位数据出栈到寄存器 |
POP AX | ||
|
POP r32 |
58+rd |
32位数据出栈到寄存器 |
POP EAX | ||
|
POP DS |
1F |
数据出栈到寄存器DS |
POP DS | ||
|
POP ES |
07 |
数据出栈到寄存器ES |
POP ES | ||
|
POP SS |
17 |
数据出栈到寄存器SS |
POP SS | ||
|
POP FS |
0F A1 |
数据出栈到寄存器FS |
POP FS | ||
|
POP GS |
0F A9 |
32位数据出栈到寄存器GS |
POP GS | ||
|
POPA |
POPA |
61 |
不影响标志位 |
从堆栈中弹出全部16位通用寄存器:DI, SI, BP, BX, DX, CX, AX |
POPA |
|
POPAD |
POPAD |
61 |
不影响标志位 |
从堆栈中弹出全部32位通用寄存器:EDI, ESI, EBP, EBX, EDX, ECX, EAX |
POPAD |
|
POPF |
POPF |
9D |
设置所有标志位 |
从堆栈中弹出16位标志寄存器 |
POPF |
|
POPFD |
POPFD |
9D |
设置所有标志位 |
从堆栈中弹出32位标志寄存器 |
POPFD |
|
POR |
POR mm, mm/m64 |
0F EB /r |
不影响标志位 |
逻辑或操作 |
|
|
POR xmm1,xmm2/m128 |
66 0F EB /r |
POR XMM4,XMM1 | |||
|
PSLLD |
PSLLD mm, mm/m64 |
0F F2 /r |
不影响标志位 |
紧缩双字逻辑左移 |
|
|
PSLLD xmm1,xmm2/m128 |
66 0F F2 /r |
PSLLD XMM4,XMM1 | |||
|
PSLLD mm, imm8 |
0F 72 /6 ib |
| |||
|
PSLLD xmm1, imm8 |
66 0F 72 /6 ib |
| |||
|
PSLLQ |
PSLLQ mm, mm/m64 |
0F F3 /r |
不影响标志位 |
紧缩四字逻辑左移 |
|
|
PSLLQ xmm1,xmm2/m128 |
66 0F F3 /r |
PSLLQ XMM4,XMM1 | |||
|
PSLLQ mm, imm8 |
0F 73 /6 ib |
| |||
|
PSLLQ xmm1, imm8 |
66 0F 73 /6 ib |
| |||
|
PSLLW |
PSLLW mm, mm/m64 |
0F F1 /r |
不影响标志位 |
紧缩字逻辑左移 |
|
|
PSLLW xmm1,xmm2/m128 |
66 0F F1 /r |
PSLLW XMM4,XMM1 | |||
|
PSLLW mm, imm8 |
0F 71 /6 ib |
| |||
|
PSLLW xmm1, imm8 |
66 0F 71 /6 ib |
| |||
|
PSRAD |
PSRAD mm, mm/m64 |
0F E2 /r |
不影响标志位 |
紧缩双字算术右移 |
|
|
PSRAD xmm1,xmm2/m128 |
66 0F E2 /r |
PSRAD XMM4,XMM1 | |||
|
PSRAD mm, imm8 |
0F 72 /4 ib |
| |||
|
PSRAD xmm1, imm8 |
66 0F 72 /4 ib |
| |||
|
PSRAW |
PSRAW mm, mm/m64 |
0F E1 /r |
不影响标志位 |
紧缩字算术右移 |
|
|
PSRAW xmm1,xmm2/m128 |
66 0F E1 /r |
PSRAW XMM4,XMM1 | |||
|
PSRAW mm, imm8 |
0F 71 /4 ib |
| |||
|
PSRAW xmm1, imm8 |
66 0F 71 /4 ib |
| |||
|
PSRLD |
PSRLD mm, mm/m64 |
0F D2 /r |
不影响标志位 |
紧缩双字逻辑右移 |
|
|
PSRLD xmm1,xmm2/m128 |
66 0F D2 /r |
PSRLD XMM4,XMM1 | |||
|
PSRLD mm, imm8 |
0F 72 /2 ib |
| |||
|
PSRLD xmm1, imm8 |
66 0F 72 /2 ib |
| |||
|
PSRLQ |
PSRLQ mm, mm/m64 |
0F D3 /r |
不影响标志位 |
紧缩四字逻辑右移 |
|
|
PSRLQ xmm1,xmm2/m128 |
66 0F D3 /r |
PSRLQ XMM4,XMM1 | |||
|
PSRLQ mm, imm8 |
0F 73 /2 ib |
| |||
|
PSRLQ xmm1, imm8 |
66 0F 73 /2 ib |
| |||
|
PSRLW |
PSRLW mm, mm/m64 |
0F D1 /r |
不影响标志位 |
紧缩字逻辑右移 |
|
|
PSRLW xmm1,xmm2/m128 |
66 0F D1 /r |
PSRLW XMM4,XMM1 | |||
|
PSRLW mm, imm8 |
0F 71 /2 ib |
| |||
|
PSRLW xmm1, imm8 |
66 0F 71 /2 ib |
| |||
|
PSUBB |
PSUBB mm, mm/m64 |
0F F8 /r |
不影响标志位 |
紧缩字节减法,溢出则回绕 |
|
|
PSUBB xmm1,xmm2/m128 |
66 0F F8 /r |
PSUBB XMM6,XMM7 | |||
|
PSUBW |
PSUBW mm, mm/m64 |
0F F9 /r |
不影响标志位 |
紧缩字减法,溢出则回绕 |
|
|
PSUBW xmm1,xmm2/m128 |
66 0F F9 /r |
PSUBW XMM6,XMM7 | |||
|
PSUBD |
PSUBD mm, mm/m64 |
0F FA /r |
不影响标志位 |
紧缩双字减法,溢出则回绕 |
|
|
PSUBD xmm1,xmm2/m128 |
66 0F FA /r |
PSUBD XMM6,XMM7 | |||
|
PSUBQ |
PSUBQ mm1, mm2/m64 |
0F FB /r |
不影响标志位 |
紧缩四字减法,溢出则回绕 |
|
|
PSUBQ xmm1,xmm2/m128 |
66 0F FB /r |
PSUBQ XMM6,XMM7 | |||
|
PSUBSB |
PSUBSB mm, mm/m64 |
0F E8 /r |
不影响标志位 |
带符号紧缩字节减法,溢出取饱和值 |
|
|
PSUBSB xmm1,xmm2/m128 |
66 0F E8 /r |
PSUBSB XMM6,XMM7 | |||
|
PSUBSW |
PSUBSW mm, mm/m64 |
0F E9 /r |
不影响标志位 |
带符号紧缩字减法,溢出取饱和值 |
|
|
PSUBSW xmm1,xmm2/m128 |
66 0F E9 /r |
PSUBSW XMM6,XMM7 | |||
|
PSUBUSB |
PSUBUSB mm, mm/m64 |
0F D8 /r |
不影响标志位 |
无符号紧缩字节减法,溢出取饱和值 |
|
|
PSUBUSB xmm1,xmm2/m128 |
66 0F D8 /r |
PSUBUSB XMM6,XMM7 | |||
|
PSUBUSW |
PSUBUSW mm, mm/m64 |
0F D9 /r |
不影响标志位 |
无符号紧缩字减法,溢出取饱和值 |
|
|
PSUBUSW xmm1,xmm2/m128 |
66 0F D9 /r |
PSUBUSW XMM6,XMM7 | |||
|
PUNPCKHBW |
PUNPCKHBW mm, mm/m64 |
0F 68 /r |
不影响标志位 |
反紧缩高位,字节到字 |
|
|
PUNPCKHBW xmm1,xmm2/m128 |
66 0F 68 /r |
PUNPCKHBW XMM6,XMM7 | |||
|
PUNPCKHWD |
PUNPCKHWD mm, mm/m64 |
0F 69 /r |
不影响标志位 |
反紧缩高位,字到双字 |
|
|
PUNPCKHWD xmm1,xmm2/m128 |
66 0F 69 /r |
PUNPCKHWD XMM6,XMM7 | |||
|
PUNPCKHDQ |
PUNPCKHDQ mm1, mm2/m64 |
0F 6A /r |
不影响标志位 |
反紧缩高位,双字到四字 |
|
|
PUNPCKHDQ xmm1,xmm2/m128 |
66 0F 6A /r |
PUNPCKHDQ XMM6,XMM7 | |||
|
PUNPCKHQDQ |
PUNPCKHQDQ xmm1,xmm2/m128 |
66 0F 6D /r |
不影响标志位 |
反紧缩高位,四字到八字 |
|
|
PUNPCKLBW |
PUNPCKLBW mm, mm/m64 |
0F 60 /r |
不影响标志位 |
反紧缩低位,字节到字 |
|
|
PUNPCKLBW xmm1,xmm2/m128 |
66 0F 60 /r |
PUNPCKLBW XMM6,XMM7 | |||
|
PUNPCKLWD |
PUNPCKLWD mm, mm/m64 |
0F 61 /r |
不影响标志位 |
反紧缩低位,字到双字 |
|
|
PUNPCKLWD xmm1,xmm2/m128 |
66 0F 61 /r |
PUNPCKLWD XMM6,XMM7 | |||
|
PUNPCKLDQ |
PUNPCKLDQ mm1, mm2/m64 |
0F 62 /r |
不影响标志位 |
反紧缩低位,双字到四字 |
|
|
PUNPCKLDQ xmm1,xmm2/m128 |
66 0F 62 /r |
PUNPCKLDQ XMM6,XMM7 | |||
|
PUNPCKLQDQ |
PUNPCKLQDQ xmm1, xmm2/m128 |
66 0F 6C /r |
不影响标志位 |
反紧缩低位,四字到八字 |
|
|
PUSH |
PUSH r/m16 |
FF /6 |
不影响标志位 |
16位数据压栈 |
PUSH WORD PTR [006387EA] |
|
PUSH r/m32 |
FF /6 |
32位数据压栈 |
PUSH DWORD PTR [006387EA] | ||
|
PUSH r16 |
50+rw |
16位寄存器数据压栈 |
PUSH AX | ||
|
PUSH r32 |
50+rd |
32位寄存器数据压栈 |
PUSH EAX | ||
|
PUSH imm8 |
6A |
8位立即数据压栈 |
PUSH EA | ||
|
PUSH imm16 |
68 |
16位立即数据压栈 |
PUSH 87EA | ||
|
PUSH imm32 |
58 |
32位立即数据压栈 |
PUSH 006387EA | ||
|
PUSH CS |
0E |
寄存器CS数据压栈 |
PUSH CS | ||
|
PUSH SS |
16 |
寄存器SS数据压栈 |
PUSH SS | ||
|
PUSH DS |
1E |
寄存器DS数据压栈 |
PUSH DS | ||
|
PUSH ES |
06 |
寄存器ES数据压栈 |
PUSH ES | ||
|
PUSH FS |
0F A0 |
寄存器FS数据压栈 |
PUSH FS | ||
|
PUSH GS |
0F A8 |
寄存器GS数据压栈 |
PUSH GS | ||
|
PUSHA |
PUSHA |
60 |
不影响标志位 |
压栈全部16位通用寄存器:AX, CX, DX, BX, SP, BP, SI, DI |
PUSHA |
|
PUSHAD |
PUSHAD |
60 |
不影响标志位 |
压栈全部32位通用寄存器:EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI |
PUSHAD |
|
PUSHF |
PUSHF |
9C |
设置所有标志位 |
压栈16位标志寄存器 |
PUSHF |
|
PUSHFD |
PUSHFD |
9C |
设置所有标志位 |
压栈32位标志寄存器 |
PUSHFD |
|
PXOR |
PXOR mm, mm/m64 |
0F EF /r |
不影响标志位 |
逻辑异或操作 |
|
|
PXOR xmm1,xmm2/m128 |
66 0F EF /r |
PXOR XMM6,XMM7 |
|
|
1万+

被折叠的 条评论
为什么被折叠?



