微机原理讲稿(3)

上传人:jiups****uk12 文档编号:56782623 上传时间:2018-10-15 格式:PPT 页数:147 大小:2.70MB
返回 下载 相关 举报
微机原理讲稿(3)_第1页
第1页 / 共147页
微机原理讲稿(3)_第2页
第2页 / 共147页
微机原理讲稿(3)_第3页
第3页 / 共147页
微机原理讲稿(3)_第4页
第4页 / 共147页
微机原理讲稿(3)_第5页
第5页 / 共147页
点击查看更多>>
资源描述

《微机原理讲稿(3)》由会员分享,可在线阅读,更多相关《微机原理讲稿(3)(147页珍藏版)》请在金锄头文库上搜索。

1、本章教学目的,指令语言是面向机器的语言,它在自动控制、智能化仪器仪表、监测等领域应用非常广泛。 本章结合8086微处理器的指令系统学习,使学生掌握指令系统相关知识,如寻址方式、各种指令的运用,通过学习,要求学生能够用所学指令编程实现较简单的程序设计,分析现有程序的功能,完成已知程序的查错与填空等。,本章 学习要求,1.掌握 8088CPU的寻址方式; 8086CPU的指令系统;立即寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,基址加变址寻址方式中操作数寻址过程; 指令的构成,指令操作数有效地址(EA)的形成; 间接寻址和基址加变址寻址方式中寄存器的约定,段基址及操作数地址的确定,段超越

2、的概念及其使用; 8088指令系统中数据传送,算术运算,逻辑运算,串操作和控制传送指令的含义及操作过程及算术和逻辑运算对标志位的影响。 掌握算术运算中加减法运算指令的组合BCD数的十进制调整过程及在码制转换中的应用。,2.理解 各种寻址方式的工作原理,各指令的执行对标志位的影响; 标志位的状态对指令执行的影响 ;重复前缀指令。,3.了解 十进制调整指令; 指令代码和执行周期数的含义; 处理器控制指令的含义。,本章 主要外语词汇,EA:Effective Address,有效地址,主要内容,86系列汇编语言及指令的格式与寻址方式 传送类指令 数据操作类指令 串操作指令 控制类指令,第3章 86系

3、列微型计算机的指令系统,指令是让计算机完成某种操作的命令,指令的集合称作指令系统,不同系列计算机有不同的指令系统。,指令系统与计算机硬件有着某些对应关系,用指令进行编程能够充分开发计算机硬件资源,它的程序目标代码短、运行速度快,在自动控制、智能化仪器仪表、监测等领域应用非常广泛。,86系列指令系统是在8位微处理器86系列的指令系统基础上设计的,它兼容了86系列的全部指令,这部分对8位微处理器具有兼容性的指令往往是处理字节(8位)的。,3.1 86系列汇编语言 及指令的格式与寻址方式,3.1.1 86系列汇编语言指令语句格式,86系列汇编语言指令语句格式:,3.1.2 86系列 CPU的寻址方式

4、,指令系统设计了多种操作数的来源,寻找操作数的过程就是操作数的寻址方式。,操作数采取哪一种寻址方式,会影响机器运行的速度和效率。,如何寻址一个操作数对程序的设计来讲也很重要。,注: 按指令格式,一条指令可占一到六个字节,从形式上可分单操作数,双操作数,无操作数指令。,双操作数指令不能同为存储器操作数,助记符形式的汇编语言经汇编(DEBUG,MASM,ASM)变成机器代码才能被CPU识别和执行。,指令不同,寻址方式不同,指令执行时间不同,时间和计算机主频(时钟周期)还有关。,1. 立即数寻址 8086 CPU指令系统中,有一部分指令所用的8位或16位操作数就在指令中提供,这种方式叫立即数寻址方式

5、。,例如:MOV AL,80H;将十六进制数80H送入ALMOV AX,1090H;将1090H送AX,AH中为10H,AL中为90H,采用立即数寻址方式的指令主要用来对寄存器赋值。因为操作数可以从指令中直接取得,不需要运行总线周期,所以,立即数寻址方式的显著特点就是速度快。,立即数可以为8位,也可以为16位;规定立即数只能是整数,不能是小数、变量或者其他类型的数据;另外还要注意,立即数只能作为源操作数。,立即数寻址的功能,3.1.2 86系列 CPU的寻址方式(2),2. 寄存器寻址 如果操作数就在CPU的内部寄存器中,那么寄存器名可在指令中指出。这种寻址方式就叫寄存器寻址方式。,对16位操

6、作数来说,寄存器可以为AX,BX,CX,DX,SI,DI,SP或者BP,而对8位操作数来说,寄存器可为AH,AL,BH,BL,CH,CL,DH,DL。例如:INC CX ;将CX的内容加1 ROL AH,1 ;将AH中的内容循环左移一位,采用寄存器寻址方式的指令在执行时,操作就在CPU内部进行,不需要使用总线周期,因此,执行速度快。,寄存器寻址的功能,3.1.2 86系列 CPU的寻址方式(3),3. 直接寻址,采用直接寻址方式时,如果指令前面没有用前缀指明操作数在哪一段,则默认为段寄存器是数据段寄存器DS。,使用直接寻址方式时,数据总是在存储器中,存储单元的有效地址由指令直接指出,所以直接寻

7、址是对存储器进行访问时可采用的最简单的方式。,例如:MOV AX,1070H;将DS段的1070H和1071H 两单元内容取到AX中,例如,上一条指令执行时,设DS2000H,则执行过程是将绝对地址为21070H和21071H两单元的内容取出送AX。,例如:CS:MOV BX,3000H;将CS段的3000H和 3001H两单元的内容送BX,如果要对其它段寄存器所指出的存储区进行直接寻址,则本条指令前必须用前缀指出段寄存器名。,设CS为5100H,则本指令在执行时,将54000H和54001H两单元的内容取出送BX。,直接寻址的功能,MOV AX,DS:2000H,直接寻址的执行,MOV AX

8、,DS:2000H,3.1.2 86系列 CPU的寻址方式(4),采用寄存器间接寻址方式时,操作数一定在存储器中,存储单元的有效地址由寄存器指出,这些寄存器可以为BX,BP,SI和DI之一,即有效地址等于其中某一个寄存器的值:,寄存器间接寻址可分为以下4种: 以BX寄存器进行间接寻址数据段基址寻址 以BP寄存器进行间接寻址堆栈段基址寻址 以SI和DI寄存器进行间接寻址变址寻址 将BX,BP和SI,DI寄存器组合起来进行间接寻址基址加变址寻址,4. 寄存器间接寻址,BXBP+ 8位位移量EA SI 16位位移量DI,寄存器间接寻址的功能,寄存器间接寻址的执行,3.1.2 86系列 CPU的寻址方

9、式(5),(1)以BX寄存器进行间接寻址数据段基址寻址 用BX寄存器进行间接寻址时,默认的段寄存器为DS,因为BX称为基址寄存器,所以这种寻址方式也叫数据段基址寻址。 例如:MOV AX,BX设DS5000H,BX3000H,则本指令在执行时,将53000H和53001H两单元的内容送AX。,如果要对其它段寄存器所指的区域进行寻址,则必须在指令前用前缀指出段寄存器名。例如:ESMOV CX,BX设ES3000H,BX4000H,则本指令在执行时,将34000H和34001H两单元的内容送CX。,3.1.2 86系列 CPU的寻址方式(6),(2)以BP寄存器进行间接寻址堆栈段基址寻址 如果以寄

10、存器BP对操作数进行间接寻址,操作数默认在堆栈段中,该寻址方式通常称为堆栈段基址寻址。 例如: MOV BX,BP设SS5000H,BP4000H,则本指令在执行时,将54000H和54001H两单元的内容送BX。,(3) 以SI和DI寄存器进行间接寻址变址寻址 SI和DI寄存器分别称为源变址寄存器和目的变址寄存器,所以用这两个寄存器来进行间接寻址也叫变址寻址。变址寻址通常用于对数组元素、字符串等进行操作,操作过程中,指令会自动修改变址寄存器中的地址,以指向下一个操作数。,3.1.2 86系列 CPU的寻址方式(7),(4) 将BX,BP和SI,DI寄存器组合起来进行间接寻址基址加变址的寻址通

11、常将BX和BP称为基址寄存器,将SI和DI称为变址寄存器。8086指令系统允许把基址寄存器和变址寄存器组成起来构成一种新的寻址方式,叫基址加变址的寻址。用这种寻址方式时,操作数的有效地址等于基址寄存器(BX或BP)的内容加上一个变址寄存器(SI或DI)的内容。即:EA BX SIBP+DI,3.1.2 86系列 CPU的寻址方式(8),例如:MOV AX,BX+SI 设DS1000H,BX5000H,SI2000H,则上面指令在执行时,有效地址为7000H,本指令将17000H和17001H两单元的内容取到AX中。,3.1.2 86系列 CPU的寻址方式(9),在访问堆栈数组时,可以在BP中存

12、放堆栈顶的地址,位移量表示数组第一个元素到栈顶的距离,变址寄存器SI(也可为DI)指出数组元素。,由于基址加变址的寻址方式中,允许两个地址分量分别改变,而且有一个对段寄存器的约定规则:,该寻址方式使用起来很灵活,特别是为堆栈中数组的访问过程提供了极大的方便。,如果基址寄存器用BX,则默认的段寄存器为DS; 如果基址寄存器用BP,则默认的段寄存器为SS;,代码段,DS,数据段,MOV AL,0024HSI,0024H,(SI)=0 (AL)=12H,(SI)=1 (AL)=34H,(SI)=2 (AL)=56H,(SI)=3 (AL)=78H,(SI)=4 (AL)=9AH,EA=24H+(SI

13、),(SI),可看作数据起始单元的偏移量,数组内某元素距数组起始单元的偏移,通过修改SI可遍历整个数组,例,利用该寻址方式对于一维数组的访问,BX、SI分别存放数组的脚标,MOV AL,ARRAYBXSI, 之间表示相加的关系BXSI BX+SI,利用该寻址方式对于二维数组的访问,在一条指令中,若有两个操作数,可以采用不同的寻址方式,也可以采用相同的寻址方式。,例如:ADD AX,3064HMOV AX ,CX,“”:汇编语言中,常将“”方括号中的内容作为存储单元的地址。如:BX、DI、2056H,除立即数寻址和寄存器寻址外,其他寻址方式都有隐含的段寄存器,操作数实际的物理地址是由段寄存器的内

14、容和指令码中求得的有效地址的相加来求得。,这七种寻址方式同样适用于与存储器统一编址的IO端口,直接端口寻址端口地址用8位地址码表示,它是指令的一部分。如:IN AL,21H,若IO端口采用独立编址的方式,则对IO端口的寻址有以下两种方式:,间接端口寻址此时IO端口的地址由16位表示,并规定存放在DX寄存器中。如输出指令OUT DX,AL, 表示将AL中的内容输出到地址由DX寄存器内容所指定的端口中。,3.1.2 86系列 CPU的寻址方式(11),【例】设(BX)3158H,(SI)12A8H,(DS)2100H,并假定没有使用段前缀,即把DS作为操作数对应的段寄存器。并且内存单元情况如图所示

15、,试分析下列程序执行后AX的内容。, MOV AX,1000H, MOV AX,BX, MOV AX,SI, MOV AX,BX+SI+100H,3.2 传送类指令,传送类指令,传送类指令可以分为4种: 通用数据传送指令 目标地址传送指令 标志位传送指令 I/O数据传送指令,传送类指令是指令系统中最活跃的一类指令,也是条数最多的一类指令,主要用于数据的保存及交换等场合。, : 运算结果影响标志位 :运算结果不影响标志位,传送类指令,3.2.1 通用数据传送指令,通用传送指令中包括最基本的传送指令MOV,堆栈指令PUSH和POP,数据交换指令XCHG和XLAT。,通用数据传送指令包括: 1传送指

16、令 MOV 2数据交换指令 XCHG 3查表转换指令 XLAT 4. 堆栈操作指令 PUSH 和 POP,1. 最基本的传送指令MOV,MOV指令是形式最简单、用得最多的指令。它可以实现CPU内部寄存器之间的数据传送、寄存器和内存之间的数据传送,还可以把一个立即数送给CPU的内部寄存器或内存单元。,语句格式:MOV OPD,OPS,功能:将源操作数传送入目的地址,源地址内容不变。即(OPS)OPD。,对标志位的影响:无,MOV指令所允许的数据传送路径及类型,例如: MOV AX,BUF MOV BH,DI ES : MOV DI, SI MOV BP,3BX+SI MOV BUFA,DL MOV BP,AX DS: MOV BP,DL MOV BUF,DS MOV ES ,BUF,

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

当前位置:首页 > 行业资料 > 其它行业文档

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