X86 汇编指令大全
1 数据传输字令
1.1 通用数据传送指令.
1 | MOV 传送字或字节. |
1.2 输入输出端口传送指令.
1 | IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) |
1.3 目的地址传送指令.
1 | LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到DX. |
1.4 标志传送指令.
1 | LAHF 标志寄存器传送,把标志装入AH. |
2 算术运算指令
1 | ADD 加法. |
3 逻辑运算指令
1 | AND 与运算. |
4 串指令
1 | DS:SI 源串段寄存器 :源串变址. |
5 程序转移指令
5.1 无条件转移指令 (长转移)
1 | JMP 无条件转移指令 |
5.2 条件转移指令 (短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )
1 | JA/JNBE 不小于或不等于时转移. |
5.3 循环控制指令(短转移)
1 | LOOP CX不为零时循环. |
5.4 中断指令
1 | INT 中断指令 |
5.5 处理器控制指令
1 | HLT 处理器暂停, 直到出现中断或复位信号才继续. |
6 伪指令
1 | DW 定义字(2字节). |
7 处理机控制指令:标志处理指令
1 | CLC 进位位置0指令 |
8 浮点运算指令集
8.1 控制指令(带9B的控制指令前缀F变为FN时浮点不检查,机器码去掉9B)
1 | FINIT 初始化浮点部件 机器码 9B DB E3 |
8.2 数据传送指令
1 | FLDZ 将0.0装入ST(0) 机器码 D9 EE |
8.3 比较指令
1 | FCOM ST(0)-ST(1) 机器码 D8 D1 |
8.4 运算指令
1 | FADD 把目的操作数 (直接接在指令后的变量或堆栈缓存器) 与来源操作数 (接在目的操作数后的变量或堆栈缓存器) 相加,并将结果存入目的操作数 |