8086指令系统一共有96条指令,从功能上分为六大类
我们需要关注的店点:
1. 数据传送类指令
分为4类:
(1)通用数据传送类指令
分为5类:
对标志位不产生影响的指令意味着在它的后面不能跟基于某个标志位的状态来控制程序转移的指令(比如条件转移指令)
① 一般数据传送指令MOV
将源地址里的内容或源数据送到目标地址里
注意点:
应用举例:
应用举例:
左边第二列是指令助记符,它的旁边是操作数,最右边是注释
② 堆栈操作指令
- 原则
先进后出
以字(一个字=2字节)为单位
操作数可以是寄存器或存储器两单元,不能是立即数,如果是存储器操作数必须声明字长
不能从栈顶弹出一个字给CS - push指令
push指令执行过程
上图,底下是高地址,上面是低地址
例:
- pop指令
执行过程
pop相对于一个读操作,非破坏性的,最初sp指向值还是原来的值,并没有删掉,只不过sp+2了,下次入栈的时候就会覆盖掉,我们就认为不存在了
例:
③交换指令
- 格式
- 注意
因为交换是把你的给我,我的给你,所以两个操作数既是源操作数,又是目标操作数,所以他们都不能为立即数
例:
④查表指令
- 格式
说明:
- 操作
⑤字位扩展指令
它针对有符号数的扩展,扩展原则就是将符号位扩展到更高位
- 字节到字的扩展指令
- 字到双字的指令