8086指令系统 操作数地址,双操作数,单操作数,无操作数指令。一,传送类指令;二,二、算数运算类指令

来源:互联网 发布:大数据舆情开源 编辑:程序博客网 时间:2024/05/16 10:55

双操作数指令:OPR DEST,SRC
单操作数指令:OPR DEST
无操作数指令:OPR

按指令功能划分为六大类:
1传送类指令
2算术运算类指令
3位操作类指令
4串操作类指令
5程序转移类指令
6处理器控制类指令

一,传送类指令
1,数据传送指令2交换指令3标志位传送指令4地址传送指令
1数据传送类指令 格式: MOV DEST (R/M),SRC(R/M/立即数)
指令功能:DEST <=(SRC),不影响任何标志位
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述
MOV 指令只允许一个操作数在寄存器中
这里写图片描述

这里写图片描述
2交换指令: 指令格式 XCHG DEST(通用R/M),SRC(通用R/M)
指令功能: (DEST) <=>(SRC),不影响任何标志位
这里写图片描述

XCHG AL, AH
XCHG AX,DAW1

MOV AX,DAW1
XCHG DAW2,AX
MOV DAW1,AX
3标志位传送指令:
(1)取标志指令 指令格式: LAHF
指令功能:AH <=(FR)7~0 ,不影响任何标志位
这里写图片描述
(2)存标志指令 SAHF
指令格式:FR7~0<=(AH),
影响SF,ZF,AF,PF,CF
进入Debug调试时,标志位状态的字符表示形式:
这里写图片描述
例子:将SF,ZF置1,AF,PF,CF保持不变,可以用以下指令:
LAHF
OR AH,11000000B(B是二进制,或操作)
SAHF

(3)标志压栈指令
PUSHF
指令功能: I SP<=(SP)-2
II 栈顶字单元<=(FR)
不影响任何标志位
(4)标志出栈指令
POPF
指令功能: I FR <= (栈顶字单元)
II SP <=(SP)+2
影响所有标志位

4地址传送指令
这种指令将存储器操作数的地址传送到指定寄存器
(1) 装入有效地址指令
指令格式:LEA DEST(16位通用R),SRC(M)
指令功能:DSET <= SRC的EA,不影响任何标志位
例子:LEA指令的使用
LEA DI ,TAB
LEA BX,10H[SI]
这里写图片描述
(2)装入地址指针指令
格式:LDS DSET ,SRC
功能: DEST < = (SRC)
DS <= (SRC)+2
不影响标志位
这里写图片描述
二、算数运算类指令
这类指令包括加减乘除四种指令
两个操作数不能同时为存储器操作数
1加法运算指令
(1)加法指令
ADD DEST(R/M),SRC(R/M/立即数)
DEST <=(SRC) + (DEST)
按结果置OF,SF,ZF,AF,PF,CF
例子:ADD AX,SI
ADD DAW,0F8CH
ADD DL ,TAB[BX]
这里写图片描述

(2)带进位加法指令
这里写图片描述
(3)加1指令
这里写图片描述
这里写图片描述
2减法运算指令
(1)减法指令
这里写图片描述
这里写图片描述

这里写图片描述
(2)带借位减法指令
这里写图片描述
(3)减1指令
这里写图片描述
(4)求负数指令
这里写图片描述
这里写图片描述
(5)比较指令
这里写图片描述

1 0