微机原理第3章微型计算机原理及应用教案教材课程

上传人:yuzo****123 文档编号:141433912 上传时间:2020-08-08 格式:PPT 页数:68 大小:286KB
返回 下载 相关 举报
微机原理第3章微型计算机原理及应用教案教材课程_第1页
第1页 / 共68页
微机原理第3章微型计算机原理及应用教案教材课程_第2页
第2页 / 共68页
微机原理第3章微型计算机原理及应用教案教材课程_第3页
第3页 / 共68页
微机原理第3章微型计算机原理及应用教案教材课程_第4页
第4页 / 共68页
微机原理第3章微型计算机原理及应用教案教材课程_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《微机原理第3章微型计算机原理及应用教案教材课程》由会员分享,可在线阅读,更多相关《微机原理第3章微型计算机原理及应用教案教材课程(68页珍藏版)》请在金锄头文库上搜索。

1、第3章 8088/8086MPU的指令系统,计算机系统包括硬件和软件两大组成部分。硬件是指构成计算机的中央处理机、主存储器、外部设备等物理装置,软件则指由软件厂家为方便用户使用计算机而提供的系统软件,和用户用于完成自己的特定事务和信息处理任务而设计的用户程序软件。 计算机能直接识别和运行的软件程序通常由该计算机的指令代码组成。,3.1 指令与指令系统 要确定一台计算机的指令系统并评价其优劣,通常应从如下4个方面考虑: 1、指令系统的完备性,常用指令齐全,编程方便。 2、指令系统的高效性,程序占内存空间少,运行速度快。 3、指令系统的规整性,指令和数据使用规则统一简单,易学易记。 4、指令系统的

2、兼容性,同一系列的低档计算机的程序能在高档机上直接运行。 要完全同时满足上述标准是困难的,但它可以指导我们设计出更加合理的指令系统。设计指令系统的核心问题是选定指令的格式和功能。,3.1.1指令的组成 通常情况下,一条指令要由两部分内容组成,其格式为: 第一部分,是指令的操作码op code。操作码用于指明本条指令的操作功能,例如,是算术加运算、减运算还是逻辑与、或运算功能,是否是读、写内存或读、写外设操作功能,是否是程序转移和子程序调用或返回操作功能等,计算机需要为每条指令分配一个确定的操作码。 第二部分,是指令的操作数opd/地址addr,用于给出被操作的信息(数据)或操作数的地址,包括参

3、加运算的一或多个操作数所在的地址,运算结果的保存地址,程序的转移地址、被调用的子程序的入口地址等。,3.1.2 指令的分类 从用到的操作数个数区分,可能有如下4种情况: 1.无操作数指令 有的指令不涉及操作数,或使用约定的某个(些)操作数,既已约定则没有必要再在指令中加以表示,称这类指令为无操作数指令,它仅有操作码部分,例如停机指令、空操作指令、关中断指令、堆栈结构的计算机系统中对堆栈中数据运算的指令等。,2.单操作数指令 有些指令只用一个操作数,必须在指令中指明其地址,如一个寄存器内容增1或减1运算的指令;或还使用约定的某个操作数,既已约定则无需再在指令中加以表示,如完成从(向)外设读(写)

4、数据的指令,就可以只在指令中指明该外设地址,而把接受(送出)数据的通用寄存器约定下来。此外,在短字长的、采用单个累加器的计算机中,已约定目的操作数(如被加数、被减数等)和保存计算结果都使用唯一的那个累加器,指令中只需表示另一个源操作数即可。称这类指令为单操作数指令。,.,3.双操作数指令 对于常用的算术和逻辑运算指令,往往要求使用两个操作数,一个叫做原操作数/地址,另一个叫做目的操作数/地址,需分别给出目的操作数和源操作数的地址,其中目的操作数地址还用于保存本次的运算结果。称这类指令为双操作数指令。,4.多操作数指令 另外一些指令可能使用多个操作数,如3个操作数,其中两个操作数地址分别给出目的

5、操作数和源操作数的地址,第三个操作数地址用于指出保存本次的运算结果的去处。可以称这类指令为三操作数指令;在有些性能更高的计算机(甚至PC机)中,还有在指令中使用更多个操作数地址的指令,用于完成对一批数据的处理过程,如字符串复制指令,向量、矩阵运算指令等,称这类指令为多操作数指令。,3.1.3 指令系统 指令系统是指一台计算机所能执行的各种不同类型指令的总和。即一台计算机所能执行的全部操作。不同计算机的指令系统包含的指令种类和数目也不同。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。,3.2 寻址方式 3.2.

6、1 立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 【例3-1】MOV AX,1234H 注意:立即数不能能够作为目的操作数。 不能直接给段寄存器和标志寄存器赋予立即数。 这种寻址方式操作数在指令中。,3.2.2 寄存器寻址方式 指令所要的操作数已经在某寄存器中,表示指令时,或把目标操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的名字)的寻址方式称为寄存器寻址方式。 指令中可以引用的寄存器及其符号名称如下: 8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等; 16位寄存器有:AX、BX、CX、DX、SI、

7、DI、SP、BP和段寄存器等;,1.源操作数是寄存器寻址方式 如: ADD VARW, AX MOV VARB, BH等。 其中: VARW和VARB是双字,字和字节类型的内存地址,叫做符号地址。 2.目的操作数是寄存器寻址方式 如:ADD BH, 78H ADD AX, 1234H等。,3.源和目的操作数都是寄存器寻址方式 如: MOV AX, BX MOV DH, BL等。 【例3-2】MOV AX,BX 指令执行前:(AX)=3064H (BX)=1234H 指令执行后:(AX)=1234H,BX内容未改变。 注意:源寄存器与目的寄存器的位数必须一致。 这种寻址方式操作数在CPU中。,3

8、.2.3 RAM寻址方式 Opd也可以存放在存储器中,这种寻址方式叫做存储器寻址,存储器寻址的关键是如何给出存储器的地址,给出方式不同,寻址方式也有多种。 1.直接寻址方式 【例3-3】MOV AX,2000H 指令执行前:(DS)=3000H,(32000H)=50H,(32001H)=30H 操作数的物理地址=3000H*10H+2000H=32000H 指令的操作是把32000H字存储单元的内容送AX寄存器。 指令执行后:(AX)=3050H,.,2.寄存器间接寻址方式 操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。

9、该寻址方式物理地址的计算方法如下: 若指令中指定的寄存器是BP,操作数在堆栈段,段基值在SS中。 物理地址=(SS)*10h+(BP) -基地址指针寄存器,可对指针进行修改形成下一个地址。,3.寄存器相对寻址方式 该寻址方式是以指定的寄存器内容,加上指令中给出的位移量(8位或16位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。 寄存器相对寻址通过基址寄存器BX,BP或变址寄存器SI,DI与一个位移量相加形成有效地址(EA),计算物理地址(PA)的缺省段仍然是SI,DI和BX为DS,BP为SS。,DISP叫做位移量,实际上它是一个数值,可以是8位也可

10、以是16位。,4.基址加变址寻址方式 这是一种基址加变址来定位操作数地址的方式,操作数的有效地址是一个基址寄存器(BP或BX)和一个变址寄存器(SI或DI)的内容之和。 MOV CL,BX+SI PA=(DS)*10H+(BX)+(SI) MOV CH,BX+DI PA=(DS)*10H+(BX)+(DI),4.基址加变址寻址方式 这是一种基址加变址来定位操作数地址的方式,操作数的有效地址是一个基址寄存器(BP或BX)和一个变址寄存器(SI或DI)的内容之和。 MOV AX,BP+SI PA=(SS)*10H+(BP)+(SI) MOV DX,BP+DI PA=(SS)*10H+(BP)+(D

11、I),5.相对基址加变址寻址方式 操作数的有效地址是基址加变址,再加上一个位移量得到。一般用于寻址复杂的数组中的元素。 MOV DH,BX+DI+20H 源操作数PA=(DS)*10H+(BX)+(SI)+20H;其中20H即为DISP,5.相对基址加变址寻址方式 MOV AX,FILEBX+SI ;FILE为符号表示的DISP 源操作数PA=(DS)*10H+(BX)+(SI)+FILE MOV LISTBP+SI,AX 目的操作数PA=(SS)*10H+(BP)+(SI)+LIST,3.3 8086指令系统 3.3.1 数据传送指令 1.通用数值传送指令(MOV) 格式:MOV DST,S

12、RC 其中,DST表示目的操作数或地址,SRC表示源操作数或地址。 功能:把一个字节或字从源操作数传送到目的操作数,即DST(SRC),目的操作数原有内容消失。,注意事项: 立即树不能为目的操作数。 CS不能是目的操作数,只能作为源操作数。 目的操作数与源操作数不能同时用存储器寻址方式。(这一点适用于所有指令) 不同类型的数据不能传送。 立即数不能直接送段寄存器。 MOV指令不影响标志位。,2.堆栈指令: 格式1:PUSH SRC 功能:PUSH 是压栈指令。把栈顶指针减2,即SP(SP)-2;将源操作数送到栈顶指针所指示的栈顶单元。 格式2:POP DST 功能:退栈指令,把栈顶的字数据从堆

13、栈中弹出送目的操作数。DST(SP); (SP)(SP)+2,注意事项: PUSH 和POP 指令只能是字操作,不能是字节操作。 POP的DST不允许是CS寄存器。 PUSH和POP 指令不能使用立即数方式。 PUSH 和 POP不影响标志位。,3.交换指令: (XCHG) 格式:XCHG OPR1,OPR2 其中,OPR代表操作数寄存器。 功能:(OPR1)(OPR2) 注意: 两个操作数不能同时在存储器中。也不能为立即数。 不允许使用段寄存器。 不影响标志位。,4.换码指令: XLAT(查表指令) 格式: XLAT 或 XLAT OPR 功能: (AL)(DS)*10H+(BX)+(AL)

14、 根据 AL寄存器提供的位移量,将BX指示的字节表格中的代码换存到AL中. 注意事项: 所建字节表格长度不能超过256B. 不影响标志位.,5.累加器专用传送指令: IN 指令: 固定端口:格式:IN AL,Port /Port0FFH 功能:将I/O端口经DX送AL或AX寄存器。 (AL)(DX) (AX)(DX)+1: (DX),OUT指令 : 格式1: OUT Port,AL /Port0FFH 功能:将AL或AX中的数据经DX寄存器送往I/O端口. (DX)(AL) (DX)+1: (DX)(AX) 注意事项:不影响标志位。,3.3.2 地址传送指令 1.有效地址装入指令(LEA) 格

15、式:LEA REG,SRC 功能:把源操作数的有效地址装入指定的目标寄存器。 注意事项: 源操作数的数据类型可以是字节或字,而目的寄存器必须是16位的通用寄存器。 LEA处理的是存储单元的有效地址,MOV指令处理的是存储单元的内容。,2.双指针装入指令(LDS,LES) 格式:LDS REG,SRC LES REG,SRC 功能:把双字长操作数低地址之中内中的偏移量装入指定的目的寄存器。,3.3.3 标志寄存器传送指令 标志寄存器传送(有四条标志传送指令) 1.LAHF (LOAD AH WITH FLAG) 将标志寄存器中的SF、ZF、AF、PF和CF(即低8位)传送至AH寄存器的指定位,空

16、位没有定义。 2.SAHF (STORE AH WITH FLAG) 将寄存器AH的指定位,送至标志寄存器的SF、ZF、AF、PF和CF位(即低8位)。根据AH的内容,影响上述标志位,对OF、DF和IF无影响。 3.PUSHF (PUSH FLAG) 将标志寄存器压入堆栈顶部,同时修改堆栈指针,不影响标志位。 4. POPF (POP FLAG) 堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,影响标志位。,3.3.4 算术运算指令 1.加法指令: 格式1:ADD DST,SRC 功能:不带进位的加法,将源操作数与目的操作数相加,将和放入目的操作数地址中。 DST(SRC)+(DST) 格式2: ADC DST,SRC 功能:带进位的加法,将源操作数、目的操作数以及标志寄存器中的进位标志位相加,并将和放入目的操作数中。 DSTSRC+DST+CF 格式3:INC OPR 功能:将目的操作数加1,放入目的操作数中. OPROPR+1,注意事项: ADD和ADC指令是双操作数指令,它们的两个操作数不能同时为存储器

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号