1 / 257
文档名称:

8086CPU指令系统.ppt

格式:ppt   大小:5,034KB   页数:257页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

8086CPU指令系统.ppt

上传人:落意心冢 2022/6/4 文件大小:4.92 MB

下载得到文件列表

8086CPU指令系统.ppt

相关文档

文档介绍

文档介绍:PowerPoint Template
8086CPU指令系统
数据传送类指令共有14条,根据传送的内容可分成以下4组:
(1)通用数据传送指令;
(2)累加器专用传送指令;
(3)地址传送指令;
(4)标志寄存器传送指令。入低字节,仍然遵循“高字节在高地址,低字节在低地址”的原则)。
【指令格式】PUSH opr
【指令功能】PUSH指令将16位的源操作数推入堆栈,而目标地址为当前栈顶,即由SP指示的单元。PUSH指令操作如下:
①(SP)←(SP)-2
②((SP)+1: (SP) ) ← opr
输入输出指令
输出指令的具体形式有以下四种:
OUT data8 , AL ;端口地址8位,输出一个字节
OUT data8 , AX ;端口地址8位,将AL、AH 的内容分别送data8 , data8+1端口
OUT DX , AL ;端口地址16位,输出1个字节
OUT DX , AX ;端口地址16位,将AL、AH 的内容分别送(DX),(DX)+1端口
【注意】①无论接收到的数据或准备发送的数据都必须放在累加器AX(字)或AL(字节)中,所以这是两条累加器专用指令。
②运行有I/O指令的程序时,若无硬件端口的支持,计算机将有可能出现死机。
③在使用间接端口寻址时,应先将端口地址赋给DX寄存器,而且只能赋给DX。
算术运算类指令
8086算术运算类指令包括加、减、乘、除4种基本运算指令,以及对BCD码表示的十进制数进行算术运算的结果进行调整的指令,和符号扩展指令。
(1)加法指令:ADD;ADC;INC;
(2)减法指令:SUB;SBB;DEC;NEG;CMP;
(3)乘法运算指令:MUL;IMUL;
(4)除法运算指令:DIV;IDIV;
(5)符号扩展指令:CBW;CWD;
(6)十进制调整指令:DAA;DAS;AAA;AAS;
算术运算指令除加1指令INC不影响CF标志外,其
余指令对CF、OF、ZF、SF、PF、AF等6个标志位均
可产生影响,其规则如下:
无符号数运算时,加法运算最高位向前产生进位或减
法运算最高位向前有借位,则表示出现溢出,CF=1
带符号数采用补码运算时,符号位也参与运算,出现
溢出则表示运算结果发生了错误,OF=1
运算结果为0时,ZF=1
当运算结果为负数时,SF=1
当运算结果中有偶数个1时,PF=1
当操作数为BCD码,低4位出现进位1时,AF=1
算术运算类指令
(1)不带进位加法指令ADD
【指令格式】ADD dst,src
【指令功能】(dst) ← (dst)+(src)
ADD指令完成目标操作数与源操作数相加,并将结果送回目标操作数,并根据相加结果设置标志寄存器中的CF、PF、AF、ZF、SF和OF。
目标操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器。但是目标操作数和源操作数不能同时是存储器。另外,不能对段寄存器进行加法运算(段寄存器也不能参加减法、乘法和除法运算)。加法指令的操作数可以是8位数,也可以是16位数,但类型必须匹配。
算术运算类指令

(1)不带进位加法指令ADD
【例1】判断下列指令是否正确?
ADD BX,CH
ADD ES,AX
ADD [DI],[BX]
【例2】设(CL)=87H,(AH)=F8H,问执行指令ADD AH,CL后的结果如何?
【例3】试编写一程序,将存储器23450H单元和23451H单元的数相加,结果存入23452H单元中。
算术运算类指令

(2)带进位加法指令ADC
【指令格式】ADC dst,src
【指令功能】(dst) ← (dst)+(src)+(CF)
ADC指令在格式和功能上都与ADD指令类似,只是相加时要把进位标志CF的当前值加到和中,结果送到目的操作数中。
【用途】ADC指令主要用于多字节加法运算。
例如,有两个4字节的无符号数相加,由于8086加法指令最多只能进行16位的加法运算,我们可将加法分两次进行,先进行低16位相加,然后再进行高16位相加,在完成高16位相加时,注意要把低16位相加时可能出现的进位位加进去。
算术运算类指令

(2)带进位加法指令ADC
【例1】试编写程序,完成下面两个双字长数的加法运算:12345678H+789ABCDEH
算术运算类指令

(3)加1指令INC
【指令格式】INC dst
【指令功能】(dst) ← (dst)+1
INC指令只有一个操作数,它将指定的操作数的内容加1,再将结果送回到