指令系统
- 定义:是计算机能够执行的各种类型的指令的集合;
- 8086/8088CPU指令系统的指令可以分为六大类
1.传送类指令 | 2.算数运算类指令 | 3.位操作指令 |
---|---|---|
4.串操作指令 | 5.程序转移类指令 | 6.处理器控制指令 |
从格式上划分,可以分为三种
- 双操作数指令:
OPR DEST SRC
- 单操作数指令:
OPR DEST
- 无操作数指令:
OPR
- 双操作数指令:
对于无操作数指令,包含以下两种情况:
- 指令不需要操作数,如暂停指令
HLT
- 在指令格式中没有明显地指明操作数,但是隐含指明(隐式使用)了操作数的存在地方。如压栈指令
PUSHF
- 指令不需要操作数,如暂停指令
一、传送类指令
将数据信息或地址信息传送到一个寄存器或存储单元中。
通用数据传送指令
- 指令格式:
MOV DEST, SRC
- 指令功能:从源地址
SRC
转移到目标地址DEST
中(目标地址中的内容被覆盖);即DEST<=(SRC)
MOV
指令对标志寄存器的各位均无影响。MVO
指令可以传送字节数据也可以传送字数据,但源操作数和目的操作数的长度必须一致。MOV指令可以分为以下几种情况:
- 立即数传送到寄存器或储存单元。立即数只能作为源操作数,不能传送给段寄存器
例:MOV AH, 10H ; MOV AX, 2345H ; MOV M-BYTE, 64H ; MOV M-WORD, 264H ;
- 寄存器之间的传送,段寄存器CS只能作为源操作数,不能作目的操作数
例:MOV AH, CH ; MOV CS, AX 错误X ;
- 存储器和存储单元之间的传送
例:MOV AL, [SI] ; MOV [DI], AH ; MOV AX,10[BX] ; MOV [BX], [BP][SI] 错误X;
MOV指令在使用时需要注意以下几点 :
- 立即数只能作为源操作数,不能传送给段寄存器
- 段寄存器CS只能作为源操作数,不能作目的操作数
- 存储单元之间不能直接传送
- 不影响标志位
各种操作数之间的关系如图
- 箭头从源操作数出发指向目的操作数。
- 指令格式: