数据类型
| 类型 |
用法 |
| BYTE |
8位无符号整数,B代表字节 |
| SBYTE |
8位有符号整数,S代表有符号 |
| WORD |
16位无符号整数 |
| SWORD |
16位有符号整数 |
| DWORD |
32位无符号整数,D代表双(字) |
| SDWORD |
32位有符号整数,SD代表有符号双(字) |
| FWORD |
48位整数(保护模式中的远指针) |
| QWORD |
64位整数,Q代表四(字) |
| TBYTE |
80位(10字节)整数,T代表10字节 |
| REAL4 |
32位(4字节)IEEE短实数 |
| REAL8 |
64位(8字节)IEEE长实数 |
| REAL10 |
80位(10字节)IEEE扩展实数 |
| 简写 |
|
| DB |
8位整数 |
| DW |
16位整数 |
| DD |
32位整数 |
| DQ |
64位整数 |
| DT |
80位整数 |
指令操作数符号
x86指令格式:[label : ] mnemonic [operands] [ ; comment]
| 操作数 |
说明 |
| reg8 |
8位通用寄存器:AH、AL、BH、BL、CH、CL、DH、DL |
| reg16 |
16位通用寄存器:AX、BX、CX、DX、SI、DI、SP、BP |
| reg32 |
32位通用寄存器:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP |
| reg |
通用寄存器 |
| sreg |
16位段寄存器:CS、DS、SS、ES、FS、GS |
| imm |
8位、16位或32位立即数 |
| imm8 |
8位立即数,字节型数值 |
| imm16 |
16位立即数,字类型数值 |
| imm32 |
32位立即数,双字型数值 |
| reg/mem8 |
8位操作数,可以是8位通用寄存器或内存字节 |
| reg/mem16 |
16位操作数,可以是16位通用寄存器或内存字 |
| reg/mem32 |
32位操作数,可以是32位通用寄存器或内存双字 |
| mem |
8位、16位或32位内存操作数 |
条件跳转助记符
| 助记符 |
含义 |
标志位/寄存器 |
| JA |
无符号大于则跳转 |
CF=0 and ZF=0 |
| JNA |
无符号不大于则跳转 |
CF=1 or ZF=1 |
| JAE |
无符号大于等于则跳转 |
CF=0 |
| JNAE |
无符号不大于等于则跳转 |
CF=1 |
| JB |
无符号小于则跳转 |
CF=1 |
| JNB |
无符号不小于则跳转 |
CF=0 |
| JBE |
无符号小于等于则跳转 |
CF=1 or ZF=1 |
| JNBE |
无符号不小于等于则跳转 |
CF=0 and ZF=0 |
| JG |
有符号大于则跳转 |
SF=OF and ZF=0 |
| JNG |
有符号不大于则跳转 |
SF != OF or ZF=1 |
| JGE |
有符号大于或等于则跳转 |
SF=OF |
| JNGE |
有符号不大于或等于则跳转 |
SF != OF |
| JL |
有符号小于则跳转 |
SF != OF |
| JNL |
有符号不小于则跳转 |
SF=OF |
| JLE |
有符号小于或等于则跳转 |
SF != OF or ZF=1 |
| JNLE |
有符号不小于或等于则跳转 |
SF=OF and ZF=0 |
| JE |
等于则跳转 |
ZF=1/cmp 目的,源操作数相等 |
| JNE |
不等于则跳转 |
ZF=0/cmp 目的,源操作数不相等 |
| JZ |
为零则跳转 |
ZF=1 |
| JNZ |
不为零则跳转 |
ZF=0 |
| JS |
负数则跳转 |
SF=1 |
| JNS |
非负数则跳转 |
SF=0 |
| JC |
有进位则跳转 |
CF=1 |
| JNC |
无进位则跳转 |
CF=0 |
| JO |
溢出则跳转 |
OF=1 |
| JNO |
无溢出则跳转 |
OF=0 |
| JP |
奇偶位为1则跳转 |
PF=1 |
| JNP |
奇偶位为0则跳转 |
PF=0 |
| JPO |
奇校验则跳转 |
|
| JPE |
偶校验则跳转 |
|
| JCXZ |
|
CX=0 |
| JECXZ |
|
ECX=0 |
| JRCXZ |
|
RCX=0 |