《微型计算机原理》课件chapter3 8086指令系统.ppt

上传人(卖家):momomo 文档编号:7571009 上传时间:2024-03-19 格式:PPT 页数:142 大小:2.55MB
下载 相关 举报
《微型计算机原理》课件chapter3 8086指令系统.ppt_第1页
第1页 / 共142页
《微型计算机原理》课件chapter3 8086指令系统.ppt_第2页
第2页 / 共142页
《微型计算机原理》课件chapter3 8086指令系统.ppt_第3页
第3页 / 共142页
《微型计算机原理》课件chapter3 8086指令系统.ppt_第4页
第4页 / 共142页
《微型计算机原理》课件chapter3 8086指令系统.ppt_第5页
第5页 / 共142页
点击查看更多>>
资源描述

1、计算机硬件技术基础计算机硬件技术基础2024年3月19日第1页寻址方式1指令系统2系统功能调用3主要内容主要内容计算机硬件技术基础计算机硬件技术基础2024年3月19日第2页 一条指令一般包括操作码和操作数两个部分:操作码操作码 操作数操作数1 1,操作数,操作数2 2 操作码表示机器执行什么性质的操作;操作码表示机器执行什么性质的操作;操作数指定参加运算的操作数指定参加运算的数据数据或或存放数据的地方存放数据的地方。一条指令中,操作数可以没有,可以有一个或是两个,对有两个操作数的指令而言,前面一个是目的操作数,后一个是源操作数。指令的基本格式指令的基本格式MOV OPRD1,OPRD2AX1

2、234H计算机硬件技术基础计算机硬件技术基础2024年3月19日第3页3.1 寻址方式寻址方式v 指令中说明指令中说明操作数所在地址操作数所在地址或指令或指令获得转移地址获得转移地址的方法。的方法。v 操作数可以存放在寄存器、存储器或操作数可以存放在寄存器、存储器或I/O I/O 端口中,操作数端口中,操作数地址的计算方法因不同的寻址方式而异。地址的计算方法因不同的寻址方式而异。v 寻址方式的多样化,扩大了指令系统的灵活性寻址方式的多样化,扩大了指令系统的灵活性。计算机硬件技术基础计算机硬件技术基础2024年3月19日第4页说明操作数所在地址的寻址方式说明操作数所在地址的寻址方式:立即寻址立即

3、寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址寄存器相对寻址寄存器相对寻址基址、变址寻址基址、变址寻址基址、变址相对寻址基址、变址相对寻址隐含寻址隐含寻址操作码操作码0310ABC0代码段代码段数据段数据段3.1.1 操作数寻址方式操作数寻址方式计算机硬件技术基础计算机硬件技术基础2024年3月19日第5页1 1.立即寻址立即寻址 操作数就是一个立即数,它直接包含在指令中,与操作操作数就是一个立即数,它直接包含在指令中,与操作码一起存放在代码段。码一起存放在代码段。MOV AX,3100H操作码操作码0031AXAHAL3100代码段代码段计算机硬件技术基础计算机硬件技术

4、基础2024年3月19日第6页2 2.直接寻址直接寻址操作数地址的段内偏移地址(操作数地址的段内偏移地址(1616位)直接包含在指令中。位)直接包含在指令中。操作码操作码00313412MOV AX,3100H30000DS31003310033100HAXAHAL33101H3412代码段代码段数据段数据段计算机硬件技术基础计算机硬件技术基础2024年3月19日第7页3 3.寄存器寻址寄存器寻址 操作数在操作数在CPUCPU的内部寄存器中(寄存器可是的内部寄存器中(寄存器可是8 8位,也可位,也可是是1616位的)位的)MOV BX,AX12A6HBX 12A6HAX计算机硬件技术基础计算机

5、硬件技术基础2024年3月19日第8页4 4.寄存器间接寻址寄存器间接寻址 操作数的偏移地址(操作数的偏移地址(1616位)放在寄存器位)放在寄存器SISI、DIDI、BPBP、BXBX中中之一,操作数本身存放在存储器中。之一,操作数本身存放在存储器中。若以若以SI、DI、BX进行间接寻址,操作数存放在数据段中。进行间接寻址,操作数存放在数据段中。若以若以 BP 进行间接寻址,操作数存放在堆栈段中。进行间接寻址,操作数存放在堆栈段中。DSSS计算机硬件技术基础计算机硬件技术基础2024年3月19日第9页操作码操作码9ABC3412F5代码段代码段数据段数据段堆栈段堆栈段MOV AX,SIDS2

6、0000HSI1000H21000H21000H21001HAXAHAL341263000H63001H 用作间址的寄存器用作间址的寄存器(SI、DI、BX、BP)必须加上方必须加上方括号括号例:例:计算机硬件技术基础计算机硬件技术基础2024年3月19日第10页操作码操作码9ABC3412F5代码段代码段数据段数据段堆栈段堆栈段63000H63001H21000H21001HMOV BP,AXSS60000HBP3000H63000HAXAHAL9ABC计算机硬件技术基础计算机硬件技术基础2024年3月19日第11页5 5.寄存器相对寻址寄存器相对寻址操作数的偏移地址(操作数的偏移地址(16

7、16位)是寄存器位)是寄存器SISI、DIDI、BPBP、BXBX中之中之一的内容加上由指令中所指出的一的内容加上由指令中所指出的8 8位或位或1616位相对地址偏移位相对地址偏移量得到的。操作数本身存放在存储器中。量得到的。操作数本身存放在存储器中。偏移地址偏移地址EA =BXBPSIDI8位位移量位位移量16位位移量位位移量计算机硬件技术基础计算机硬件技术基础2024年3月19日第12页操作码操作码0310ABC0代码段代码段数据段数据段MOV BX,SI+1003H63203H60000HDS2200HSI1003H63203H位移量位移量BXBHBLABC0MOV BX,SI+1003

8、HMOV BX,DISPSIMOV BX,SI+DISPMOV BX,SI+DISP计算机硬件技术基础计算机硬件技术基础2024年3月19日第13页6 6.基址变址寻址基址变址寻址 是将基址寄存器和变址寄存器联合起来进行寻址的方式。是将基址寄存器和变址寄存器联合起来进行寻址的方式。基址寄存器:基址寄存器:BX、BPDSSS变址寄存器:变址寄存器:SI、DI偏移地址偏移地址EA =BXBPSIDI计算机硬件技术基础计算机硬件技术基础2024年3月19日第14页操作码操作码ABC0代码段代码段堆栈段堆栈段MOV AX,SIBP30000HSS1000H2000H33000H33000HSIBPAX

9、AHALC0ABMOV AX,BXBPMOV AX,SIDI错!错!计算机硬件技术基础计算机硬件技术基础2024年3月19日第15页7 7.相对基址加变址寻址相对基址加变址寻址 比基址、变址寻址多了比基址、变址寻址多了8 8位或位或1616位的相对位移量。位的相对位移量。偏移地址偏移地址EA =BXBPSIDI8位位移量位位移量16位位移量位位移量计算机硬件技术基础计算机硬件技术基础2024年3月19日第16页操作码操作码64ABC0代码段代码段数据段数据段MOV AX,COUNTBXSI6C764H60000H2200HA500H64H6C764HDSSIBXCOUNTAXAHALC0AB6

10、C765H计算机硬件技术基础计算机硬件技术基础2024年3月19日第17页8 8.隐含寻址隐含寻址 是将操作数的地址隐含在指令操作码中的寻址方式。是将操作数的地址隐含在指令操作码中的寻址方式。例如:例如:MUL BL;BL乘乘AL,结果结果存放在存放在AX中中计算机硬件技术基础计算机硬件技术基础2024年3月19日第18页操作数寻址方式小结操作数寻址方式小结数据数据寄存器寄存器立即寻址立即寻址寄存器寻址寄存器寻址数据数据指令指令指令指令寄存器寄存器直接寻址直接寻址EA数据数据指令指令内存内存寄存器寄存器EA数据数据指令指令寄存器寄存器内存内存 寄存器寄存器间接寻址间接寻址 寄存器寄存器相对寻址

11、相对寻址寄存器寄存器位移量位移量数据数据指令指令内存内存段地址段地址操作均在操作均在CPU内进行,内进行,执行速度快。执行速度快。操作数在操作数在内存数据内存数据区中。区中。段地址段地址计算机硬件技术基础计算机硬件技术基础2024年3月19日第19页 基址变址基址变址寻址寻址基址寄存器基址寄存器变址寄存器变址寄存器数据数据指令指令内存内存段地址段地址 相对基址相对基址加变址寻址加变址寻址基址寄存器基址寄存器位移量位移量数据数据指令指令内存内存有效地址有效地址有效地址有效地址变址寄存器变址寄存器段地址段地址操作数寻址方式小结操作数寻址方式小结计算机硬件技术基础计算机硬件技术基础2024年3月19

12、日第20页习习 题题 设设 BX=0158H,DI=10A5H,DISP=1B57H DS=2100H,SS=1100H,BP=0100H如何确定下列指令的如何确定下列指令的EAEA和物理地址?和物理地址?(1)MOV AX,DISP(2)MOV AX,BX(3)MOV AX,BX(4)MOV AX,DISPBP(5)MOV AX,BXDI(6)MOV AX,DISPBPDI计算机硬件技术基础计算机硬件技术基础2024年3月19日第21页3.1.2 转移地址的寻址方式转移地址的寻址方式段内相对寻址段内相对寻址段内间接寻址段内间接寻址段间直接寻址段间直接寻址段间间接寻址段间间接寻址 用于说明程序

13、转移目标地址的寻址方式。当用于说明程序转移目标地址的寻址方式。当CPU执行转执行转移、调用、中断等指令时,程序执行指令的顺序将不再是顺移、调用、中断等指令时,程序执行指令的顺序将不再是顺序执行,而是发生跳转,转移地址寻址方式就是告诉序执行,而是发生跳转,转移地址寻址方式就是告诉CPU转转移目标地址的计算方法,更改内部寄存器移目标地址的计算方法,更改内部寄存器IP或者或者IP与与CS的的值,实现程序的跳转。值,实现程序的跳转。计算机硬件技术基础计算机硬件技术基础2024年3月19日第22页1.1.段内相对寻址段内相对寻址转移地址转移地址=CS+IP+=CS+IP+偏移量偏移量操作码操作码50HJ

14、MP DISP1P70若此时若此时CS内容为内容为2000H,CPU读取该指读取该指令后,令后,IP内容为内容为1000H。则:则:该指令使该指令使CPU转向转向2000:1050H2000:0FFFH操作码操作码2000:1050H(IP)=1000H1050H 指令中直接给出转移目标地址,而形成的指令机器码中给出的是该目指令中直接给出转移目标地址,而形成的指令机器码中给出的是该目标地址与当前标地址与当前IP值的相对地址位移量值的相对地址位移量(带符号数,补码表示)。带符号数,补码表示)。计算机硬件技术基础计算机硬件技术基础2024年3月19日第23页2.2.段内间接寻址段内间接寻址段内偏移

15、地址存放在段内偏移地址存放在1616位寄存器中,或是存储器的两个相位寄存器中,或是存储器的两个相邻单元中。邻单元中。操作码操作码2000:0FFFH操作码操作码2000:4000HJMP CX若此时若此时CS的内容为的内容为2000H,CX的内的内容为容为4000H,则:则:该指令使该指令使CS保持不变,而保持不变,而IP值变值变为为CX的内容,即,使的内容,即,使CPU转向转向2000:4000H计算机硬件技术基础计算机硬件技术基础2024年3月19日第24页操作码操作码2000:4000HJMP WORD PTR BX2000:0FFFH操作码操作码数据段数据段5000:1000H若此时若

16、此时CS=2000H,DS=5000H,BX=1000H,5000:1001H4000则:则:该指令使该指令使CPU到数据段中偏移到数据段中偏移地址为地址为1000H开始的两个单元开始的两个单元中找到新中找到新IP的值,并转向的值,并转向CS:IP新新处。处。计算机硬件技术基础计算机硬件技术基础2024年3月19日第25页3.3.段间直接寻址段间直接寻址指令码中直接给出指令码中直接给出1616位的段地址及偏移地址。位的段地址及偏移地址。JMP FAR PTR ADD1操作码操作码偏移地址低字节偏移地址低字节偏移地址高字节偏移地址高字节段地址低字节段地址低字节段地址高字节段地址高字节操作码操作码

17、+1234H:5678H1234H:5678H34H12H78H56H计算机硬件技术基础计算机硬件技术基础2024年3月19日第26页4.4.段间间接寻址段间间接寻址转移地址放在存储器中,从起始地址开始依次存放偏移地转移地址放在存储器中,从起始地址开始依次存放偏移地址低、高字节和段地址的低、高字节信息。址低、高字节和段地址的低、高字节信息。JMP DWORD PTR BP DI若当前若当前CS=3000H,SS=2000H,BP=1000H,DI=0050H,内存单元(内存单元(21050H21053H)=00H,66H,00H,40H,则执行指令后:则执行指令后:新新IP=6600H,新,新

18、CS=4000H转移目的地址为:转移目的地址为:46600H计算机硬件技术基础计算机硬件技术基础2024年3月19日第27页JMP targetJMP CXJMP far ptr targetJMP DWORD PTRSIJMP WORD PTRBXJMP short target段内直接短转移段内直接短转移段内直接转移段内直接转移段内间接转移段内间接转移段内间接转移段内间接转移段间直接转移段间直接转移段间间接转移段间间接转移计算机硬件技术基础计算机硬件技术基础2024年3月19日第28页3.2 指令系统指令系统v 数据传送指令数据传送指令v 算术运算指令算术运算指令v 逻辑运算和位移指令逻辑

19、运算和位移指令v 串操作指令串操作指令v 程序控制指令程序控制指令v 处理器控制指令处理器控制指令P72计算机硬件技术基础计算机硬件技术基础2024年3月19日第29页输入输出指令输入输出指令标志位标志位传送指令传送指令地址传送指令地址传送指令通用数据通用数据传送指令传送指令1 1、数据传送指令、数据传送指令计算机硬件技术基础计算机硬件技术基础2024年3月19日第30页 通用数据传送指令通用数据传送指令MOV、PUSH和和POP、XCHG、XLAT1)MOV OPRD1,OPRD2目的操作数目的操作数源操作数源操作数功能:功能:OPRD1 OPRD2源操作数:寄存器、存储器及立即数源操作数:

20、寄存器、存储器及立即数目的操作数:寄存器、存储器目的操作数:寄存器、存储器MOV AX,1000HMOV BX,AX计算机硬件技术基础计算机硬件技术基础2024年3月19日第31页MOVMOV指令数据传送方向指令数据传送方向存储器存储器通用寄存器通用寄存器AX BX CX DXSP BP SI DI 段寄存器段寄存器DS SS ESCS立即数立即数计算机硬件技术基础计算机硬件技术基础2024年3月19日第32页MOV CS,AX注意:注意:MOV 2020H,DXMOV AX,BLMOV 100H,BXMOV AX,1000HMOV DS,ESMOV DS,2000H1CS和和IP不用传送指令

21、改变内容,不用传送指令改变内容,但但CS可为源操作数。可为源操作数。2立即数不可为目的操作数。立即数不可为目的操作数。3不允许不同类型的操作数互相传送。不允许不同类型的操作数互相传送。4不能用一条不能用一条MOV指令实现存储单指令实现存储单元之间、段寄存器之间以及立即数至元之间、段寄存器之间以及立即数至段寄存器的传送。段寄存器的传送。计算机硬件技术基础计算机硬件技术基础2024年3月19日第33页判别下列指令是否合法?判别下列指令是否合法?1MOV DI,SI+62MOV CS,AX3MOV AX,SIDI4MOV 120,CL5MOV BL,BX6MOV DS,CS7MOV AX,BX8MO

22、V SS,1000H9MOV SS,1000H10MOV CS:DI,2008H课堂练习课堂练习计算机硬件技术基础计算机硬件技术基础2024年3月19日第34页2)交换指令)交换指令 XCHG OPRD1,OPRD2目的目的源源功能:功能:把一个字节或一个字的源操作数与目的操作数相交换。把一个字节或一个字的源操作数与目的操作数相交换。可实现通用寄存器之间、通用寄存器和存储器之间的交换。可实现通用寄存器之间、通用寄存器和存储器之间的交换。XCHG AL,BLXCHG BX,SIXCHG BPDI,AX若(若(AL)=8AH,(,(BL)=A8H,则执行则执行XCHG AL,BL指令后,指令后,(

23、AL)=A8H,(,(BL)=8AH注意:注意:1 1、存储器之间不可交换;、存储器之间不可交换;2 2、段寄存器不能作为操作数。、段寄存器不能作为操作数。P73计算机硬件技术基础计算机硬件技术基础2024年3月19日第35页3)堆栈操作指令)堆栈操作指令 PUSH和和POPPUSH OPRD2;压入堆栈压入堆栈POP OPRD1;弹出堆栈弹出堆栈 源源目的目的操作数:通用寄存器(操作数:通用寄存器(16位)、存储器(位)、存储器(16位)、段寄存器位)、段寄存器堆栈:堆栈:堆栈是堆栈是CPUCPU在内存中按照在内存中按照先入后出的原则建立起来先入后出的原则建立起来的向下(朝地址减小的方的向下

24、(朝地址减小的方向向)生长的临时存储区。生长的临时存储区。栈顶:栈顶:堆栈中当前可用堆栈中当前可用PUSHPUSH或或POPPOP指令与之交换数据的指令与之交换数据的存储单元。堆栈指针寄存存储单元。堆栈指针寄存器器SPSP可自动进行调整,其可自动进行调整,其内容总是当前栈顶的偏移内容总是当前栈顶的偏移地址。地址。P74计算机硬件技术基础计算机硬件技术基础2024年3月19日第36页MOV AX,8000HMOV SS,AXMOV SP,2000HMOV DX,3E4AHPUSH DX PUSH AXPOP AXPOP DX(SP)82000H81FFFH81FFEH81FFDH81FFCH例例

25、计算机硬件技术基础计算机硬件技术基础2024年3月19日第37页PUSH DX (SP)82000H81FFFH81FFEH81FFDH81FFCH(SP)(SP)SP1 SPDH (SP)SP1 SPDL (SP)DX=3E4AH3 E4 A计算机硬件技术基础计算机硬件技术基础2024年3月19日第38页PUSH AX 82000H81FFFH81FFEH81FFDH81FFCH(SP)(SP)(SP)SP1 SPAH (SP)SP1 SPAL (SP)AX=8000H3 E4 A8 00 0计算机硬件技术基础计算机硬件技术基础2024年3月19日第39页POP AX 82000H81FFF

26、H81FFEH81FFDH81FFCH(SP)SP1 SP(SP)ALSP1 SP3 E4 A(SP)AH 8 00 0AHAXAL0080(SP)(SP)计算机硬件技术基础计算机硬件技术基础2024年3月19日第40页堆栈段的读写特点:堆栈段的读写特点:2 2、“向下生长向下生长”:PUSH存放数据总从高地址向低地址,存放数据总从高地址向低地址,而内存中其它段是从低地址向高地址放。而内存中其它段是从低地址向高地址放。1 1、“先进后出先进后出”:凡用:凡用PUSH指令最后推入堆栈的数指令最后推入堆栈的数据,用据,用POP时最先出栈。时最先出栈。注意:注意:PUSH CS 指令合法;指令合法;

27、POP CS不合法!不合法!3 3、“按字操作按字操作”:PUSH和和POP指令操作的对象一定是指令操作的对象一定是1616位二进制数,即操作数为字。位二进制数,即操作数为字。计算机硬件技术基础计算机硬件技术基础2024年3月19日第41页4)换码指令)换码指令 XLAT功能:功能:将内存数据段中地址为将内存数据段中地址为BX+ALBX+AL中的内容放入通用寄存器中的内容放入通用寄存器ALAL中,完成一个字节的数据转换功能。中,完成一个字节的数据转换功能。0100 00000111 10010010 01000000 0010BX+0BX+1BX+2BX+AL+BXAL0000 0110AL0

28、000 0010注:换码指令用于将注:换码指令用于将BX指定的缓冲区中、指定的缓冲区中、AL指定的位移处的数据取出赋指定的位移处的数据取出赋给给AL。计算机硬件技术基础计算机硬件技术基础2024年3月19日第42页5)数据扩展指令数据扩展指令 CBW CWD CBW功能:将功能:将累加器累加器ALAL或或AXAX中的一个字节的数扩展为一个字,即中的一个字节的数扩展为一个字,即将将ALAL的最高位扩展到的最高位扩展到AHAH中。中。CWD功能:将累加器功能:将累加器AXAX中的一个字扩展为一个双字,即将中的一个字扩展为一个双字,即将AXAX的最的最高位扩展到高位扩展到DXDX中。中。P75计算机

29、硬件技术基础计算机硬件技术基础2024年3月19日第43页例如:例如:MOV AL,6DHCBW ;(;(AH)=00H,(,(AL)=6DHMOV AX,8086HCWD ;(;(DX)=FFFFH,(,(AX)=8086H计算机硬件技术基础计算机硬件技术基础2024年3月19日第44页地址传送指令地址传送指令(包括(包括LEA、LDS、LES)1)LEA OPRD1,OPRD2目的目的源源功能:功能:把源操作数的偏移地址传送至目的操作数中。把源操作数的偏移地址传送至目的操作数中。源操作数:存储器操作数源操作数:存储器操作数目的操作数:目的操作数:16位通用寄存器位通用寄存器说明:说明:1

30、1.该指令通常用来建立串操作指令所需的寄存器指针。该指令通常用来建立串操作指令所需的寄存器指针。MOV OPRD1,OFFSET OPRD22 2.该指令的执行效果与下面的指令执行效果相同。该指令的执行效果与下面的指令执行效果相同。计算机硬件技术基础计算机硬件技术基础2024年3月19日第45页例:例:LEA BX,BXSI指令执行前指令执行前BX=2000H,SI=4000H指令执行后指令执行后BX=2000H+4000H=6000HLEA AX,tableSIMOV AX,OFFSET tableADD AX,SI相当于相当于计算机硬件技术基础计算机硬件技术基础2024年3月19日第46页

31、2)LDS OPRD1,OPRD2源源目的目的源操作数:源操作数:存储器操作数存储器操作数目的操作数:目的操作数:16位指针或变址寄存器位指针或变址寄存器 功能:功能:该指令完成一个该指令完成一个 4 4字节的地址指针的传送。即从源操字节的地址指针的传送。即从源操作数指定的存储单元开始的作数指定的存储单元开始的4 4个相邻存储单元中,前两个字节个相邻存储单元中,前两个字节送入指定的送入指定的1616位寄存器位寄存器,后两个字节送入段寄存器后两个字节送入段寄存器DSDS中。中。计算机硬件技术基础计算机硬件技术基础2024年3月19日第47页例:例:LDS SI,0010H2 00 00 18 0

32、DS=4000H40010H40013H40012H40011H执行指令后:执行指令后:SI=0180HDS=2000H计算机硬件技术基础计算机硬件技术基础2024年3月19日第48页3)LES OPRD1,OPRD2源源目的目的源操作数:源操作数:存储器操作数存储器操作数目的操作数:目的操作数:16位指针或变址寄存器位指针或变址寄存器功能:功能:该指令完成四个字节的地址指针的传送。其中地址指该指令完成四个字节的地址指针的传送。其中地址指针的前两个字节送入针的前两个字节送入1616位的寄存器位的寄存器,后两个字节送入段寄存后两个字节送入段寄存器器ESES中。中。计算机硬件技术基础计算机硬件技术

33、基础2024年3月19日第49页例:例:LES DI,0010H2 00 00 18 0DS=8000H80010H80013H80012H80011H执行指令后:执行指令后:DI=0180HES=2000H计算机硬件技术基础计算机硬件技术基础2024年3月19日第50页标志位传送指令标志位传送指令包括包括LAHF、SAHF、PUSHF和和POPF1)读取标志指令读取标志指令LAHF 将将FLAG中的低中的低8位送到位送到AH中,各标志位分别被传送到中,各标志位分别被传送到AH的对应位。的对应位。OFDFIFTFSFZFAFPFCFD7D6D4D2D0FLAGSAH不影响标志位不影响标志位计算

34、机硬件技术基础计算机硬件技术基础2024年3月19日第51页2)设置标志指令设置标志指令SAHF 传送方向与传送方向与LAHF相反,将相反,将AH中的内容传送到中的内容传送到FLAG的的对应位。对应位。3)PUSHF和和POPF对标志寄存器的压入堆栈和弹出堆栈指令。对标志寄存器的压入堆栈和弹出堆栈指令。两者配合使用,一般用在子程序和中断服务程序的首尾,两者配合使用,一般用在子程序和中断服务程序的首尾,起保护和恢复主程序标志的作用。起保护和恢复主程序标志的作用。影响标志位影响标志位PUSHF不影响标志位;不影响标志位;POPF影响标志位影响标志位计算机硬件技术基础计算机硬件技术基础2024年3月

35、19日第52页 输入输出指令输入输出指令专门用于对接口进行输入输出操作,完成专门用于对接口进行输入输出操作,完成AX或或AL与与 I/O 端端口之间的数据传送功能。口之间的数据传送功能。说明:说明:端口地址可以用端口地址可以用立即数立即数(0256)直接给出(直接寻)直接给出(直接寻址),也可以用址),也可以用DX的内容(间接寻址)来给出。的内容(间接寻址)来给出。IN AL,50HIN AX,50HOUT 44H,ALOUT 89H,AXMOV DX,383HIN AL,DXINC DXOUT DX,AXIN ACC,PORT;从指定端口从指定端口PORT送数到累加器送数到累加器OUT PO

36、RT,ACC;将累加器中的数从端口输出将累加器中的数从端口输出计算机硬件技术基础计算机硬件技术基础2024年3月19日第53页3.2 指令系统指令系统v 数据传送指令数据传送指令v 算术运算指令算术运算指令v 逻辑运算和位移指令逻辑运算和位移指令v 串操作指令串操作指令v 程序控制指令程序控制指令v 处理器控制指令处理器控制指令计算机硬件技术基础计算机硬件技术基础2024年3月19日第54页算术运算指令算术运算指令加法指令加法指令减法指令减法指令乘法指令乘法指令除法指令除法指令十进制调整指令十进制调整指令2 2、算术运算指令、算术运算指令计算机硬件技术基础计算机硬件技术基础2024年3月19日

37、第55页|加法指令加法指令ADD、ADC、INC存储器存储器通用寄通用寄存器存器通用寄通用寄存器存器通用寄通用寄存器存器存储器存储器立即数立即数通用寄存器通用寄存器存储器存储器计算机硬件技术基础计算机硬件技术基础2024年3月19日第56页1)ADD OPRD1,OPRD2功能:功能:完成两个操作数相加,结果送目的操作数(完成两个操作数相加,结果送目的操作数(OPRD1)。)。源操作数:源操作数:存储器、通用寄存器、立即数存储器、通用寄存器、立即数目的操作数:目的操作数:存储器、通用寄存器存储器、通用寄存器ADD AL,19ADD CX,3000HADD DI,BXADD DX,DATABP+

38、SIADD BX,AX说明:说明:1、字和字节操作均可;、字和字节操作均可;2、指令执行时,对、指令执行时,对CF、OF、PF、SF、ZF 和和AF都会产生影响;都会产生影响;3、适用于有、无符号数的运算;、适用于有、无符号数的运算;4、不允许在两个存储器操作数间进行加法操作。、不允许在两个存储器操作数间进行加法操作。ADD BX,SI计算机硬件技术基础计算机硬件技术基础2024年3月19日第57页2.ADC OPRD1,OPRD2 是两操作数进行相加操作时要加上进位位的当前值,然后是两操作数进行相加操作时要加上进位位的当前值,然后将结果送目的操作数。将结果送目的操作数。OPRD1 OPRD1

39、+OPRD2+(CF)主要用于多字节加法运算。主要用于多字节加法运算。例:两个四字节无符号数相加。例:两个四字节无符号数相加。它们分别放在它们分别放在20002000H H 和和30003000H H 开开始的存储单元中,低位在前,高始的存储单元中,低位在前,高位在后,要求将运算后得到的和位在后,要求将运算后得到的和放在放在4000H4000H开始的内存单元中。开始的内存单元中。MOV AX,2000HADD AX,3000HMOV 4000H,AXMOV AX,2002HADC AX,3002HMOV 4002H,AX(带进位加法指令)(带进位加法指令)计算机硬件技术基础计算机硬件技术基础2

40、024年3月19日第58页3)INC OPRD加加1 1指令指令 :将操作数的内容加:将操作数的内容加1 1,再送回该操作数。,再送回该操作数。操作数操作数可是通用寄存器和存储器,但不能是段寄存器和立即数。可是通用寄存器和存储器,但不能是段寄存器和立即数。OPRD OPRD+1 说明:说明:(1)该指令将操作数视为无符号数。)该指令将操作数视为无符号数。(2)可以进行字或字节加)可以进行字或字节加1,取决于操作数的类型。,取决于操作数的类型。INC BLINC AXINC BYTE PTR SI+10字节字节字字字节字节(3)该指令的操作结果不影响进位标志)该指令的操作结果不影响进位标志CF。

41、计算机硬件技术基础计算机硬件技术基础2024年3月19日第59页SUB AX,BXSUB SI,30HSUB BP+DI,CL|减法指令减法指令1)SUB OPRD1,OPRD2功能:功能:完成两个操作数相减,结果送目的操作数。完成两个操作数相减,结果送目的操作数。源操作数:源操作数:存储器、通用寄存器、立即数存储器、通用寄存器、立即数目的操作数:目的操作数:存储器、通用寄存器存储器、通用寄存器说明:说明:1、字和字节操作均可;、字和字节操作均可;2、指令执行时,对、指令执行时,对CF、OF、PF、SF、ZF 和和AF都会产生影响;都会产生影响;3、适用于有、无符号数的运算;、适用于有、无符号

42、数的运算;4、不允许在两个存储器操作数间进行减法操作。、不允许在两个存储器操作数间进行减法操作。SUB BX,SI(SUB、SBB、DEC、NEG、CMP)计算机硬件技术基础计算机硬件技术基础2024年3月19日第60页2)SBB OPRD1,OPRD2功能:功能:两操作数进行相减操作时要减去进位位的当前值,两操作数进行相减操作时要减去进位位的当前值,然后将结果送目的操作数。然后将结果送目的操作数。OPRD1 OPRD1OPRD2(CF)主要用于多字节减法运算,用法与主要用于多字节减法运算,用法与ADCADC指令基本相同。指令基本相同。(带借位减法指令)(带借位减法指令)计算机硬件技术基础计算

43、机硬件技术基础2024年3月19日第61页3)DEC OPRD减减1指令指令:将操作数的内容减将操作数的内容减1,再送回该操作数。,再送回该操作数。OPRD OPRD1操作数可是通用寄存器和存储器,但不能是段寄存器和立操作数可是通用寄存器和存储器,但不能是段寄存器和立即数。用法和注意事项与即数。用法和注意事项与INCINC指令相同。指令相同。说明:说明:(1)该指令将操作数视为无符号数;)该指令将操作数视为无符号数;(2)进行字或字节减)进行字或字节减1时取决于操作数的类型。时取决于操作数的类型。DEC CLDEC BXDEC BYTE PTR DI字节字节字字字节字节在循环程序中常利用在循环

44、程序中常利用DEC指令修改循环次数。指令修改循环次数。MOV AX,0FFFFHCYC:DEC AXJNZ CYCHLT计算机硬件技术基础计算机硬件技术基础2024年3月19日第62页4)NEG OPRD取补指令取补指令 用来对操作数进行求补操作。操作数是通用寄用来对操作数进行求补操作。操作数是通用寄存器和存储器。存器和存储器。1、该指令在字节操作时对、该指令在字节操作时对128求补,或在对字操作时求补,或在对字操作时对对32768求补,则操作数不变,但溢出标志求补,则操作数不变,但溢出标志OF=1。说明:说明:2、利用、利用NEG指令可得到负数的绝对值。指令可得到负数的绝对值。例:设例:设A

45、L=FFH,执行执行 NEG AL 后,结果为后,结果为AL=01H3、使用、使用NEG指令时,除非操作数为零,指令时,除非操作数为零,CF总是置总是置1。计算机硬件技术基础计算机硬件技术基础2024年3月19日第63页5)CMP OPRD1,OPRD2比较指令比较指令执行两操作数的相减操作,但不送回相减的结果,执行两操作数的相减操作,但不送回相减的结果,只影响标只影响标志位志位。两操作数内容不变化。两操作数内容不变化。源操作数:源操作数:存储器、通用寄存器、立即数存储器、通用寄存器、立即数目的操作数:目的操作数:存储器、通用寄存器存储器、通用寄存器CMP AL,0AHCMP DX,SICMP

46、 BX+5,AXCMP BUF,100 不能在两个存不能在两个存储单元之间进行储单元之间进行比较。比较。计算机硬件技术基础计算机硬件技术基础2024年3月19日第64页 比较指令主要用来确定两个数之间相等或大小的关系。比较指令主要用来确定两个数之间相等或大小的关系。在比较指令之后,通常要对在比较指令之后,通常要对标志位标志位进行检查,标志位的不进行检查,标志位的不同状态,反映了两个数的不同关系。同状态,反映了两个数的不同关系。当标志位当标志位ZF=1ZF=1时,表时,表明两个相比较的操作数相等明两个相比较的操作数相等。ZF=0 ZF=0时,要根据不同情况分别判断:对于无符号数的时,要根据不同情

47、况分别判断:对于无符号数的比较,可根据比较,可根据CFCF标志判断;对于带符号数的比较,需要由标志判断;对于带符号数的比较,需要由OFOF和和SFSF来判断。来判断。注意:注意:计算机硬件技术基础计算机硬件技术基础2024年3月19日第65页 比较指令主要用来确定两个数之间相等或大小的关系。比较指令主要用来确定两个数之间相等或大小的关系。当当ZF=0时:时:1、无符号数的比较、无符号数的比较 根据根据CF判别大小判别大小CMP AX,BX CF=1,AX BXCF=0,AX BX2、带符号数的比较、带符号数的比较CMP AX,BX OF=0时,若时,若SF=0,则则AX BX若若SF=1,则则

48、AXBXOF=1时,若时,若SF=0,则则AXBX若若SF=1,则则AX BX计算机硬件技术基础计算机硬件技术基础2024年3月19日第66页数据类型数据类型关系关系CFZFSFOF带符号数带符号数目的目的=源源0100目的源目的源010001目的源目的源000011无符号数无符号数目的目的=源源0100目的源目的源10目的源目的源00计算机硬件技术基础计算机硬件技术基础2024年3月19日第67页 比较指令通常与条件转移指令的结合使用,为程序的转移比较指令通常与条件转移指令的结合使用,为程序的转移提供判决条件。提供判决条件。例:例:内存数据段中以内存数据段中以DATADATA开设的存储单元中

49、分别存放了两个开设的存储单元中分别存放了两个8 8位无符号数,试比较它们的大小,并将大者送到位无符号数,试比较它们的大小,并将大者送到MAXMAX单元。单元。LEA BX,DATAMOV AL,BXINC BXCMP AL,BXJNC P1P1:MOV MAX,ALHLT MOV AL,BX计算机硬件技术基础计算机硬件技术基础2024年3月19日第68页例:例:内存数据段内存数据段中以中以DATADATA开设的存开设的存储单元中分别存放储单元中分别存放了了8 8个个8 8位位无符号数,无符号数,试比较它们的大小,试比较它们的大小,并将大者送到并将大者送到MAXMAX单元。单元。LEA BX,D

50、ATAMOV AL,BXINC BXAGAIN:CMP AL,BXJNC P1 MOV MAX,ALHLTMOV AL,BXMOV CX,7P1:INC BXDEC CXJNZ AGAIN计算机硬件技术基础计算机硬件技术基础2024年3月19日第69页|乘法指令乘法指令(MUL、IMUL)1)MUL OPRD源源功能:功能:无符号数乘法指令无符号数乘法指令源操作数:通用寄存器、存储器源操作数:通用寄存器、存储器目的操作数:目的操作数:AL、AX或或DXAX ALOPRDDX:AX AXOPRD字节乘法字节乘法字乘法字乘法源操作数不能是立即数。源操作数不能是立即数。MUL 15HMUL ALMU

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《微型计算机原理》课件chapter3 8086指令系统.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|