1.数据传送指令
| 指令 |
参数 |
备注 |
| mov |
dest,source |
数据传送 |
| CBW |
|
字节转换成字 |
| CWD |
|
字转换成双字 |
| LAHF |
|
FLAGS低8位装入AH寄存器 |
| SAHF |
|
AH寄存器内容送到FLAGS低8位 |
| LDS |
dest,source |
设定数据段指针 |
| LES |
dest,source |
设定附加段指针 |
| LEA |
dest,source |
装入有效地址 |
| PUSH |
source |
将一个字压入栈顶 |
| POP |
dest |
将一个字从栈顶弹出 |
| PUSHF |
|
将标志寄存器FLAGS的内容压入栈顶 |
| POPF |
|
将栈顶内容弹出到标志寄存器FLAGS |
| XCHG |
dest,source |
交换 |
| XLAT |
source |
表转换 |
2.算数运算指令
| 指令 |
参数 |
备注 |
| 汇编格式 |
|
指令的操作 |
| AAA |
|
加法的ASCII调整 |
| AAD |
|
除法的ASCII调整 |
| AAM |
|
乘法的ASCII调整 |
| AAS |
|
减法的ASCII调整 |
| DAA |
|
加法的十进制调整 |
| DAS |
|
减法的十进制调整 |
| MUL |
source |
无符号乘法 |
| IMUL |
source |
整数乘法 |
| DIV |
source |
无符号除法 |
| IDIV |
|
整数除法 |
| ADD |
dest,source |
加法 |
| ADC |
dest,source |
带进位加 |
| SUB |
dest,source |
减法 |
| SBB |
dest,source |
带借位减 |
| CMP |
dest,source |
比较 |
| INC |
dest |
加1 |
| DEC |
dest |
减1 |
| NEG |
dest |
求补 |
3.逻辑运算指令
| 指令 |
参数 |
备注 |
| AND |
dest,source |
逻辑‘与’ |
| OR |
dest,source |
逻辑‘或’ |
| XOR |
dest,source |
逻辑‘或非’ |
| NOT |
dest |
逻辑‘非’ |
| TEST |
dest,source |
测试(非破坏性逻辑‘与’) |
4.移位指令
| 指令 |
参数 |
备注 |
| RCL |
dest,count |
通过进位循环左移 |
| RCR |
dest,count |
通过进位循环右移 |
| ROL |
dest,count |
循环左移 |
| ROR |
dest,count |
循环右移 |
| SHL/SAL |
dest,count |
逻辑左移/算数左移 |
| SHR |
dest,count |
逻辑右移 |
| SAR |
dest,count |
算术右移 |
5.串操作指令
| 指令 |
参数 |
备注 |
| MOVS/MOVSB/MOVSW |
dest,source |
字符串传送 |
| CMPS/CMPSB/CMPSW |
dest,source |
字符串比较 |
| LODS/LODSB/LODSW |
source |
装入字节串或字串到累加器 |
| STOS/STOSB/STOSW |
dest |
存储字节串或字串 |
| SCAS/SCASB/SCASW |
dest |
字符串扫描 |
6.程序控制指令
| 指令 |
参数 |
备注 |
| CALL |
dest |
调用一个过程(子程序) |
| RET |
|
[弹出字节数(必须为偶数)]从过程(子程序)返回 |
| INT |
int_type |
软件中断 |
| INTO |
|
溢出中断 |
| IRET |
|
从中断返回 |
| JMP |
dest |
无条件转移 |
| JG/JNLE |
short_label |
大于或不小于等于转移 |
| JGE/JNL |
short_label |
大于等于或不小于转移 |
| JL/JNGE |
short_label |
小于或不大于等于转移 |
| JLE/JNG |
short_label |
小于等于或不大于转移 |
| JA/JNBE |
short_label |
高于或不低于等于转移 |
| JAE/JNB |
short_label |
高于等于或不低于转移 |
| JB/JNAE |
short_label |
低于或不高于等于转移 |
| JBE/JNA |
short_label |
低于等于或不高于转移 |
| JO |
short_label |
溢出标志为1转移(溢出转移) |
| JNO |
short_label |
溢出标志为0转移(无溢出转移) |
| JS |
short_label |
符号标识为1转移(结果为负转移) |
| JNS |
short_label |
符号标识为1转移(结果为正转移) |
| JC |
short_label |
进位标志为1转移(有进位转移) |
| JNC |
short_label |
进位标志为0转移(无进位转移) |
| JZ/JE |
short_label |
零标志为1转移(等于或为0转移) |
| JNZ/JNE |
short_label |
零标志为0转移(不等于或不为0转移) |
| JP/JPE |
short_label |
奇偶标志为1转移(结果中有偶数个1转移) |
| JNP/JPO |
short_label |
奇偶标志为0转移(结果中有奇数个1转移) |
| JCXZ |
short_label |
若CX=0则转移 |
| LOOP |
short_label |
CX不等于0时循环 |
| LOOPE/LOOPZ |
short_label |
CX不等于0且ZF=1时循环 |
| LOOPNE/LOOPNZ |
short_label |
CX不等于0且ZF=0时循环 |
| STC |
|
进位标志置1 |
| CLC |
|
进位标识置0 |
| CMC |
|
进位标志取反 |
| STD |
|
方向标志置1 |
| CLD |
|
方向标志置0 |
| STI |
|
中断标志置1(允许可屏蔽中断) |
| CLI |
|
中断标志置0(禁止可屏蔽中断) |
| ESC |
|
CPU交权 |
| HLT |
|
停机 |
| LOCK |
|
总线封锁 |
| NOP |
|
无操作 |
| WAIT |
|
等待至TEST(上边有个横线)信号有效为止 |
7.输入/输出指令
| 指令 |
参数 |
备注 |
| IN |
acc,source |
从外设接口输入字节或字 |
| OUT |
dest,acc |
向外设接口输出字节或字 |
备注:
dest 目的操作数、目的串
source 源操作数、源串
acc 累加器
count 计数值
int_type 中断类型号
short_label 短距离标号
基于转载文章修改,原文链接:https://blog.csdn.net/hanqdi_/article/details/84785038