
汇编指令速查手册(精排编目)
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
《汇编指令速查手册》是一本精心编排的参考书,提供详细的汇编语言指令集及用法说明,方便程序员快速查找和应用。
### 汇编指令大全(速查手册)
#### 数据传输指令
**数据传输指令**用于在内存、寄存器以及输入输出端口之间传递数据。这些指令是编程的基础,掌握它们对于编写高效的低级代码至关重要。
1. **通用数据传送指令**
- **MOV**: 最常用的指令之一,用于将一个字或字节从一个位置移动到另一个位置。
- **MOVSX**: 执行符号扩展后进行传送,通常用于扩展有符号数的高位。
- **MOVZX**: 执行零扩展后进行传送,适用于无符号数。
- **PUSH**: 将一个字压入堆栈。
- **POP**: 将一个字从堆栈中弹出。
- **PUSHA**、**POPA**: 分别用于将一组寄存器压入堆栈和从堆栈中弹出。
- **PUSHAD**、**POPAD**: 32位版本的PUSHA和POPA,用于处理32位寄存器组。
- **BSWAP**: 交换32位寄存器内的字节顺序,常用于网络编程等场景。
- **XCHG**: 交换两个操作数,至少其中一个操作数必须是寄存器。
- **CMPXCHG**: 比较并交换操作数,常用于原子操作。
- **XADD**: 先交换再累加的操作。
- **XLAT**: 字节查表转换,适用于查找表的快速访问。
2. **输入输出端口传送指令**
- **IN**: 从指定的IO端口读取数据。
- **OUT**: 向指定的IO端口写入数据。
当端口地址通过立即数给出时,其范围是0-255;如果通过寄存器DX给出,则范围扩大到0-65535。
3. **目的地址传送指令**
- **LEA**: 装入有效地址,用于计算偏移地址。
- **LDS**、**LES**、**LFS**、**LGS**、**LSS**: 这些指令用于将特定类型的指针装入不同的段寄存器中,例如DS:SI和ES:DI等。
4. **标志传送指令**
- **LAHF**、**SAHF**: 用于在AH寄存器和标志寄存器之间传送标志状态。
- **PUSHF**、**POPF**、**PUSHD**、**POPD**: 用于保存和恢复标志状态。
#### 算术运算指令
算术运算指令提供了基本的数学运算功能,包括加法、减法、乘法和除法等。
1. **加法**
- **ADD**: 执行简单的加法。
- **ADC**: 执行带进位加法。
- **INC**: 增加1。
- **AAA**、**DAA**: 执行加法后的ASCII码调整。
- **SUB**: 执行减法。
- **SBB**: 执行带借位减法。
- **DEC**: 减少1。
- **NEG**: 取反。
- **CMP**: 执行比较操作,只更新标志位而不改变操作数。
- **AAS**、**DAS**: 执行减法后的ASCII码调整。
- **MUL**、**IMUL**: 执行乘法操作。
- **DIV**、**IDIV**: 执行除法操作。
- **AAD**: 执行除法后的ASCII码调整。
- **CBW**、**CWD**、**CWDE**、**CDQ**: 将字节或字扩展成更大的数据类型。
#### 逻辑运算指令
逻辑运算指令用于执行位级别的逻辑操作,如与、或、异或等。
1. **逻辑运算**
- **AND**、**OR**、**XOR**、**NOT**: 执行位级的与、或、异或及取反操作。
- **TEST**: 执行位级的与操作,只更新标志位而不改变操作数。
- **SHL**、**SAL**: 执行逻辑或算术左移。
- **SHR**、**SAR**: 执行逻辑或算术右移。
- **ROL**、**ROR**、**RCL**、**RCR**: 执行循环左移、循环右移,通过进位的循环左移和通过进位的循环右移操作。
#### 串指令
串指令用于处理字符串数据,通常用于复制、比较字符串等。
1. **串操作**
- 使用DS:SI和ES:DI作为源串和目标串的段寄存器与变址寄存器。
- CX用作重复次数计数器。
- AL或AX作为扫描值。
-
全部评论 (0)


