汇编语言指令大全
的有关信息介绍如下:
汇编语言指令种类繁多,按照功能大致可以分为以下几类:
一、数据传送指令
数据传送指令负责在寄存器、存储单元以及输入输出端口之间传送数据。常见的指令有:
- MOV:传送字或字节。
- PUSH:把字压入堆栈。
- POP:把字弹出堆栈。
- XCHG:交换两个操作数的值,至少有一个操作数为寄存器,段寄存器不可作为操作数。
- IN:从I/O端口输入数据到累加器。
- OUT:从累加器输出数据到I/O端口。
- LEA:装入有效地址到寄存器。
- LDS/LES/LFS/LGS/LSS:传送目标指针,把指针内容装入指定的段寄存器。
- LAHF/SAHF:标志寄存器与AH之间传送数据。
- PUSHF/POPF:标志寄存器进栈或出栈。
- PUSHD/POPD:32位标志寄存器进栈或出栈。
- MOVSX/MOVZX:先进行符号扩展或零扩展,再传送数据。
二、算术指令
算术指令用于执行各种算术运算,包括加、减、乘、除等基本运算。常见的指令有:
- ADD/ADC:加法/带进位加法。
- INC:加1。
- SUB/SBB:减法/带借位减法。
- DEC/NEG:减1/求补。
- CMP:比较两个操作数的大小,仅修改标志位,不回送结果。
- MUL/IMUL:无符号数/带符号数乘法。
- DIV/IDIV:无符号数/带符号数除法。
- DAA/DAS:加法的十进制调整/减法的十进制调整。
- AAA/AAS:加法的ASCII码调整/减法的ASCII码调整。
- CBW/CWD/CWDE/CDQ:字节/字/双字转换为更大的数据类型,并进行符号扩展。
三、逻辑指令
逻辑指令用于对字或字节执行逻辑运算,包括与、或、非、异或等运算。常见的指令有:
- AND/OR/XOR/NOT:逻辑与/或/异或/取反运算。
- TEST:测试两个操作数进行与运算的结果,仅修改标志位,不回送结果。
- SHL/SAL:逻辑左移/算术左移。
- SHR/SAR:逻辑右移/算术右移。
- ROL/ROR:循环左移/循环右移。
- RCL/RCR:通过进位的循环左移/循环右移。
四、串处理指令
串处理指令用于处理存放于存储器中的数据串。常见的指令有:
- MOVS:串传送。
- CMPS:串比较。
- SCAS:串扫描。
- LODS:从串中取数据。
- STOS:保存数据到串中。
- REP/REPE/REPZ/REPNE/REPNZ:重复执行前面的串处理指令,直到CX/ECX为0或满足特定条件。
五、控制转移指令
控制转移指令用于控制程序的执行流程,包括无条件转移、条件转移、循环控制以及中断处理等。常见的指令有:
- JMP:无条件转移。
- CALL/RET:过程调用与返回。
- 条件转移指令(如JA、JAE、JB、JBE、JG、JGE、JL、JLE、JE、JNE等):根据标志位的状态进行条件转移。
- LOOP/LOOPE/LOOPZ/LOOPNE/LOOPNZ/JCXZ/JECXZ:循环控制指令。
- INT/INTO/IRET:中断指令及中断返回。
六、其他指令
除了上述几类指令外,还有一些其他指令用于处理器控制、伪指令定义等。常见的指令有:
- HLT/WAIT/ESC/LOCK/NOP:处理器控制指令。
- STC/CLC/CMC:置/清/取反进位标志位。
- STD/CLD:置/清方向标志位。
- STI/CLI:置/清中断允许位。
- DW/PROC/ENDP/SEGMENT:伪指令,用于数据定义、过程定义及段定义等。
请注意,不同的CPU架构和汇编语言方言可能会有不同的指令集和语法规则。上述指令主要基于x86架构的汇编语言进行介绍,其他架构的汇编语言可能会有所不同。因此,在实际编程时,应参考具体CPU架构和汇编语言方言的文档。



