《微机原理与接口技术》(第3版). 冯博琴,吴宁主编. 清华大学出版社(官方课件).ppt_第1页
《微机原理与接口技术》(第3版). 冯博琴,吴宁主编. 清华大学出版社(官方课件).ppt_第2页
《微机原理与接口技术》(第3版). 冯博琴,吴宁主编. 清华大学出版社(官方课件).ppt_第3页
《微机原理与接口技术》(第3版). 冯博琴,吴宁主编. 清华大学出版社(官方课件).ppt_第4页
《微机原理与接口技术》(第3版). 冯博琴,吴宁主编. 清华大学出版社(官方课件).ppt_第5页
已阅读5页,还剩679页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,微机原理与接口技术,大家好!,2,课程目标,掌握: 微型计算机的基本工作原理 汇编语言程序设计方法 微型计算机接口技术 建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力,3,教材及实验指导书,教材: 微机原理与接口技术(第3版). 冯博琴,吴宁主编. 清华大学出版社 实验指导书 微机原理与接口技术实验指导书(讲义) 陈文革,吴宁,夏秦编. 西安交通大学 微机原理与接口技术题解及实验指导(第3版). 吴宁,陈文革编. 清华大学出版社,目录 第1章 微型计算机基础概论 第2章微处理器与总线 第3章指令系统 第4章汇编语言程序设计 第5章 存储器系统 第6章输入输出 第7章基本输入

2、/输出方法(DMA) 第8章中断技术 第9章模拟量的输入输出(D/A转换) 第10章模/数(A/D)转换器,5,第1章 微型计算机基础概论,主要内容: 微机系统的组成 计算机中的编码、数制及其转换 无符号二进制数的运算 算术运算和逻辑运算 运算中的溢出 机器数的表示及运算 基本逻辑门及译码器,6,一、微型计算机系统,微型机的工作原理 微机系统的基本组成,7,1. 计算机的工作原理,冯 诺依曼计算机的工作原理 存储程序工作原理,8,存储程序原理,将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存 指令按其在存储器中存放的顺序执行; 由控制器控制整个程序和数据的存取以及程序的执行。

3、,9,冯 诺依曼计算机体系结构,运算器,存储器,控制器,输入设备,输出设备,10,冯 诺依曼机的工作过程,内存中的程序,指令1,指令2,指令n,分析,获取操作数,执行,存放结果,程序计数器PC,地址,CPU,取出,操作数,11,冯 诺依曼机的工作过程,取一条指令的工作过程: 将指令所在地址赋给程序计数器PC; PC内容送到地址寄存器AR,PC自动加1; 把AR的内容通过地址总线送至内存储器,经地址译码器译码,选中相应单元。 CPU的控制器发出读命令。 在读命令控制下,把所选中单元的内容(即指令操作码)读到数据总线DB。 把读出的内容经数据总线送到数据寄存器DR。 指令译码 因为取出的是指令的操

4、作码,故数据寄存器DR把它送到指令寄存器IR,然后再送到指令译码器ID,冯 诺依曼机的特点和不足,特点: 程序存储,共享数据,顺序执行 属于顺序处理机,适合于确定的算法和数值数据的处理。 不足: 与存储器间有大量数据交互,对总线要求很高; 执行顺序有程序决定,对大型复杂任务较困难; 以运算器为核心,处理效率较低; 由PC控制执行顺序,难以进行真正的并行处理。,12,典型的非冯 诺依曼机结构,数据流驱动的计算机结构 当指令具有所需数据、且输出端没有数据时就可执行。,13,Dataflow Image Processing System,14,2. 系统组成,主机 硬件系统 外设 微机系统 系统软

5、件 软件系统 应用软件,CPU 存储器 输入/输出接口 总线,15,微处理器,微处理器简称CPU,是计算机的核心。 主要包括: 运算器 控制器 寄存器组,16,存储器,定义: 用于存放计算机工作过程中需要操作的数据和程序。,17,有关内存储器的几个概念,内存单元的地址和内容 内存容量 内存的操作 内存的分类,18,内存单元的地址和内容,内存按单元组织 每单元都对应一个地址,以方便对单元的寻址,10110110,38F04H,内存地址,单元内容,19,内存容量,内存容量: 所含存储单元的个数,以字节为单位 内存容量的大小依CPU的寻址能力而定 实地址模式下为CPU地址信号线的位数,20,内存操作

6、,读: 将内存单元的内容取入CPU,原单元内容不改变; 写: CPU将信息放入内存单元,单元中原来的内容被覆盖。,21,内存储器的分类,随机存取存储器(RAM) 只读存储器(ROM),按工作方 式可分为,22,输入/输出接口,接口是CPU与外部设备间的桥梁,CPU,I/O 接口,外设,23,接口的分类,串行接口 并行接口,数字接口 模拟接口,输入接口 输出接口,24,接口的功能,数据缓冲寄存; 信号电平或类型的转换; 实现主机与外设间的运行匹配。,25,总线,基本概念 分类 工作原理 常用系统总线标准及其主要技术指标 (具体内容见后续课程),26,软件系统,软件: 为运行、管理和维护计算机系统

7、或为实现某一功能而编写的各种程序的总和及其相关资料。,系统软件,应用软件,操作系统 编译系统 网络系统 工具软件,软件,27,二、计算机中的数制和编码,数制和编码的表示 各种计数制之间的相互转换,28,1. 常用计数法,十进制(D) 二进制(B) 十六进制(H),29,例:,234.98D或(234.98)D 1101.11B或(1101.11)B ABCD . BFH或(ABCD . BF) H,30,2. 各种进制数间的转换,非十进制数到十进制数的转换 十进制到非十进制数的转换 二进制与十六进制数之间的转换,31,非十进制数到十进制数的转换,按相应的权值表达式展开 例: 1011.11B=

8、123+022+121+120+12-1+ 12-2 =8+2+1+0.5+0.25 =11.75 5B.8H=5161+11160+816-1 =80+11+0.5 =91.5,32,十进制到非十进制数的转换,到二进制的转换: 对整数:除2取余; 对小数:乘2取整。 到十六进制的转换: 对整数:除16取余; 对小数:乘16取整。,33,二进制与十六进制间的转换,用4位二进制数表示1位十六进制数 例: 25.5 = 11001.1B = 19.8H 11001010.0110101B =CA.6AH,34,3. 计算机中的编码,BCD码 用二进制编码表示的十进制数 ASCII码 西文字符编码,

9、35,BCD码,压缩BCD码 用4位二进制码表示一位十进制数 每4位之间有一个空格 扩展BCD码 用8位二进制码表示一位十进制数,每4位之间有一个空格。,36,BCD码与二进制数之间的转换,先转换为十进 制数,再转换二进 制数;反之同样。 例: (0001 0001 .0010 0101)BCD =11 .25 =(1011 .01) B,37,ASCII码,西文 字符的编码,一般用7位二进 制码表示。 D7位为校验位,默认情况下为0。 要求: 理解校验位的作用 熟悉0-F的ASCII码,38,ASCII码的奇偶校验,奇校验 加上校验位后编码中“1”的个数为奇数。 例:A的ASCII码是41H

10、(1000001B) 以奇校验传送则为 C1H(11000001B) 偶校验 加上校验位后 编码中“1”的个数为偶数。 上例若以偶校验传送,则为 41H。,39,三、无符号二进制数的运算,算术运算 逻辑运算,无符号数 有符号数,二进 制数的运算,40,主要内容,无符号二进 制数的算术运算 无符号数的表达范围 运算中的溢出问题 无符号数的逻辑运算 基本逻辑门和译码器,41,1. 无符号数的算术运算,加法运算 1+1=0(有进位) 减法运算 0-1=1(有借位) 乘法运算 除法运算,42,乘除运算例,000010110100 =00101100B 000010110100=00000010B 即:

11、商=00000010B 余数=11B,43,2. 无符号数的表示范围:,0 X 2n-1 若运算结果超出这个范围,则产生溢出。 对无符号数:运算时,当最高位向更高位 有进位(或借位)时则产生 溢出。,44,例:,最高位向前有进位,产生溢出,45,3. 逻辑运算,与、或、非、异或 掌握: 与、或、非门逻辑符号和逻辑关系(真值表); 与非门、或非门的应用。,46,“与”、“或”运算,“与”运算: 任何数和“0”相“与”,结果为0。 “或”运算: 任何数和“1”相“或”,结果为1。,47,“非”、“异或”运算,“非”运算 按位求反 “异或”运算 相同则为0,相异则为1,48,4. 译码器,掌握74L

12、S138译码器 各引脚功能 输入端与输出端关系(真值表),49,74LS138译码器,主要引脚及功能,50,三、机器数(有符号数)的运算,51,计算机中符号数的表示,机器数 计算机中的数据 构成: 符号位 + 真值,“0” 表示正 “1” 表示负,52,例,+52 = +0110100 = 0 0110100 符号位 真值,-52 = -0110100 = 1 0110100 符号位 真值,53,1. 符号数的表示,机器数的表示方法: 原码 反码 补码,54,原码,最高位为符号位(用“0”表示正,用“1”表示负),其余为真值部分。 优点: 真值和其原码表示之间的对应关系简单,容易理解; 缺点:

13、 计算机中用原码进行加减运算比较困难 0的表示不唯一。,55,数0的原码,8位数0的原码:+0=0 0000000 -0=1 0000000 即:数0的原码不唯一。,56,反码,对一个机器数X: 若X0 ,则 X反=X原 若X0, 则 X反= 对应原码的符号位不变,数值部分按位求反,57,例,X= -52 = -0110100 X原=1 0110100 X反=1 1001011,58,0的反码:,+0反=00000000 -0反 =11111111 即:数0的反码也不是唯一的。,59,补码,定义: 若X0, 则X补= X反= X原 若X0, 则X补= X反+1,60,例,X= 52= 0110

14、100 X原=10110100 X反=11001011 X补= X反+1=11001100,61,0的补码:,+0补= +0原=00000000 -0补= -0反+1=11111111+1 =1 00000000 对8位字长,进位被舍掉,62,特殊数10000000,对无符号数:(10000000)B=128 在原码中定义为: -0 在反码中定义为: -127 在补码中定义为: -128,63,符号数的表示范围,对8位二进制数: 原码: -127 +127 反码: -127 +127 补码: -128 +127,64,2. 符号二进制数与十进制的转换,对用补码表示的二进制数: 1)求出真值 2

15、)进行转换,65,例:补码数转换为十进制数,X补=0 0101110B 正数 所以:真值=0101110B X=+46 X补=1 1010010B 负数 所以:真值不等于-1010010B 而是:X=X补补=11010010补= - 0101110 = - 46,66,3. 符号数的算术运算,通过引进补码,可将减法运算转换为加法运算。 即:X+Y补=X补+Y补 X-Y补=X+(-Y)补 =X补+-Y补,注:运算时符号位须对齐,67,例,X=-0110100,Y=+1110100,求X+Y=? X原=10110100 X补= X反+1=11001100 Y补= Y原=01110100 X+Y补=

16、 X补+ Y补 =11001100+01110100 =01000000 X+Y=+1000000,为什么补码可以把减法变成加法?,从10进制来说:减一,和加99,效果相同吗?在100之内,它们就是相同的。99,就是1的补数,100就是模。从8位2进制来说:减一,和加255,效果也是相同的。255,就是1的补码,二进制数 1 0000 0000 就是模,即十进制的 256。求出补码后,就可以用“加补码”完成减法运算。原理就是上述的“同模”理论。如果结果的数字太大,超出了256所能容纳的范围,就是溢出。溢出了,并没有解决的办法。反码+1的方式,只是经验公式而已,没有原理。它说明不了128的补码。

17、因为在8位二进制的条件下,128并没有反码。,69,符号数运算中的溢出问题,两个带符号二进制数相加或相减时,若运算结果超出可表达范围,则产生溢出 溢出的判断方法: 最高位进位状态次高位进位状态1,则结果溢出,70,例:,若:X=01111000, Y=01101001 则:X+Y= 次高位向最高位有进位,而最高位向前无进位,产生溢出。 (事实上,两正数相加得出负数,结果出错),71,结束语:,第1章难点: 补码的概念及其运算,谢谢大家!,72,第2章微处理器与总线,73,主要内容:,微处理器的功能和结构 8088/8086微处理器 特点 主要引线功能和内部结构 内部寄存器 实地址模式下的存储器

18、寻址 总线时序 总线,一、微处理器及8088/8086CPU,74,1. 微处理器,运算器 控制器 内部寄存器,75,微处理器,76,2. 程序和指令,程序: 具有一定功能的指令的有序集合 指令: 由人向计算机发出的、能够为计算机所识别的命令。,77,3. 指令执行的一般过程,取指令,取指部件,分析部件,执行部件,指令译码,读取操作数,执行指令,存放结果,78,4. 顺序执行和并行流水线,顺序执行方式: 各功能部件交替工作,按顺序完成指令的执行过程。 并行流水线方式: 各功能部件并行工作。,79,顺序工作方式,80,并行流水线工作方式,EU,CPU,81,5. 8088/8086 CPU的特点

19、,采用并行流水线工作方式 通过设置指令预取队列实现 对内存空间实行分段管理 将内存分为4个段并设置地址段寄存器,以实 现对1MB空间的寻址 支持多处理器系统,CPU内部结构,存储器寻址部分,工作模式,82,6. 8088CPU的两种工作模式,8088可工作于两种模式下 最小模式 最大模式 最小模式为单处理器模式。 最大模式为多处理器模式。,83,两种工作模式的选择方式,8088是工作在最小还是最大模式由MN/MX引线的状态决定。 MN/MX=0工作于最大模式 MN/MX=1工作于最小模式,84,二、8088/8086的引线及功能,85,1. 主要引线最小模式下的8088引线,地址线和数据线:

20、AD0AD7:低8位地址和低8位数据信号分时复用。在传送地址信号时为单向,传送数据信号时为双向。 A16-A19:高4位地址信号,与状态信号分时复用。 A8A15 :8位地址信号,86,主要的控制和状态信号,WR: 写信号; RD: 读信号; IO/M:为“0”表示访问内存, 为“1”表示访问接口; DEN: 低电平有效时,允许进行读/写操作; DT/R:数据收发器的传送方向控制; ALE:地址锁存信号; RESET:复位信号。,87,例:,当WR=1,RD=0,IO/M=0时, 表示CPU当前正在进行读存储器操作,88,READY信号,89,中断请求和响应信号,INTR:可屏蔽中断请求输入端

21、 NMI: 非屏蔽中断请求输入端 INTA:中断响应输出端,90,总线保持信号,HOLD:总线保持请求信号输入端。当CPU 以外的其他设备要求占用总线时, 通过该引脚向CPU发出请求。 HLDA:总线保持响应信号输出端。CPU对 HOLD信号的响应信号。,91,2. 8088和8086CPU引线功能比较,数据总线宽度不同 8088的外部总线宽度是8位,8086为16位。 访问存储器和输入输出控制信号含义不同 8088IO/M=0表示访问内存; 8086IO/M=1表示访问内存。 其他部分引线功能的区别,92,三、8088/8086的内部结构,93,1. 组成,8088/8086内部由两部分组成

22、: 执行单元(EU) 总线接口单元(BIU),94,2. 执行单元,运算器 8个通用寄存器 1个标志寄存器 EU部分控制电路,教材第43页图2-6图,95,执行单元,功能 指令译码 指令执行 暂存中间运算结果 保存运算结果特征,指令的执行,在标志寄存器FLAGS中,在ALU中完成,在通用寄存器中,96,3. 总线接口单元,功能: 从内存中取指令到指令预取队列 指令预取队列是并行流水线工作的基础 负责与内存或输入/输出接口之间的数据传送 在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。,97,结论,指令预取队列的存在使EU和BIU两个部分可同时进行工作,

23、从而: 提高了CPU的效率; 降低了对存储器存取速度的要求,98,四、内部寄存器,99,内部寄存器的类型,含14个16位寄存器,按功能可分为三类 8个通用寄存器 4个段寄存器 2个控制寄存器,深入理解:每个寄存器中数据的含义,100,1. 通用寄存器,数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI),101,数据寄存器,8088/8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即: AX BX CX DX,AH,AL,CH,CL,BH,BL,DH,DL,102,数据寄存器特有的习惯用法,AX:累加器。所有I/O指令都通过AX与接口传送 信

24、息,中间运算结果也多放于AX中; BX:基址寄存器。在间接寻址中用于存放基地址; CX:计数寄存器。用于在循环或串操作指令 中存放计数值; DX:数据寄存器。在间接寻址的I/O指令中存放 I/O端口地址;在32位乘除法运算时,存放 高16位数。,103,地址指针寄存器,SP:堆栈指针寄存器,其内容为栈顶的 偏移地址; BP:基址指针寄存器,常用于在访问内 存时存放内存单元的偏移地址。,104,BX与BP在应用上的区别,作为通用寄存器,二者均可用于存放数据; 作为基址寄存器,用BX表示所寻找的数据在数据段;用BP则表示数据在堆栈段。,105,变址寄存器,SI:源变址寄存器 DI:目标变址寄存器

25、变址寄存器在指令中常用于存放数据在内存中的地址。,106,2. 控制寄存器,IP 指令指针寄存器,其内容为下一条要执行指令的偏移地址。 FLAGS 标志寄存器,存放运算结果的特征 6个状态标志位(CF,SF,AF,PF,OF,ZF) 3个控制标志位(IF,TF,DF),107,状态标志位(1),CF(Carry Flag) 进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1 PF(Parity Flag) 奇偶标志位。运算结果的低8位中“1”的个数为偶数时PF=l AF(Auxiliary Carry Flag) 辅助进位标志位。加(减)操作中,若Bit3向Bit4有进位(借位),A

26、F=1,108,状态标志位(2),ZF(Zero Flag) 零标志位。当运算结果为零时ZF=1 SF(Sign Flag) 符号标志位。当运算结果的最高位为1时,SF=l OF(Overflow Flag) 溢出标志位。当算术运算的结果超出了有符号数的可表达范围时,OF=l,109,状态标志位例,给出以下运算结果及运算后各状态标志位的状态: 10110110+11110100 10110110 + 11110100 10101010,1,CF= OF= AF= PF= SF= ZF=,1,1,1,0,1,0,110,控制标志位,TF(Trap Flag) 陷井标志位,也叫跟踪标志位。TF=1

27、时,使CPU处于单步执行指令的工作方式。 IF(Interrupt Enable Flag) 中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。 DF(Direction Flag) 方向标志位。在数据串操作时确定操作的方向。,111,3. 段寄存器,作用 用于存放相应逻辑段的段基地址 8086/8088内存中逻辑段的数量 最多为64K个 8086/8088内存中逻辑段的类型 代码段 数据段 附加段 堆栈段,存放指令代码,存放操作的数据,存放操作的数据,存放暂时不用但需保存的数据。,为什么叫逻辑段?,每个段寄存器中存放的内容=?,112,段寄存器,CS 代码段寄存器,存放代码段的段基地址

28、。 DS 数据段寄存器 ,存放数据段的段基地址。 ES 附加段寄存器,存放数据段的段基地址。 SS 堆栈段寄存器, 存放堆栈段的段基地址,段寄存器的值表明相应逻辑段在内存中的位置,113,五、存储器寻址,114,1. 内存单元的编址(1),每个内存单元在整个内存空间中都具有惟一的地址 每个内存单元的地址码都由两部分组成: 段(基)地址 16位 段内地址 16位,相对地址/偏移地址,物理地址,8088为16位结构,所以段地址和偏移地址均为16位,115,存储器的编址(2),段基地址: 决定存储单元在内存中的位置 相对地址(偏移地址) 决定该存储单元相对段内第一个单元的距离 逻辑段的起始地址称为段

29、首 每个逻辑段内的第一个单元,段首的偏移地址=0,116,存储器的编址(3),0 0 0 0,段基地址(16位),段首地址(段首的物理地址), , ,19,0,4,段首的偏移地址: 0000H,段基地址(16位), , ,31,0,15, , ,117,存储器的编址(4),例: 段基地址 =6000H 段首地址 偏移地址=0009H 物理地址,数据段,60009H,00H,12H,60000H,9,物理地址: 内存单元在整个内存空间中的惟一地址,118,2. 实地址模式下的存储器地址变换,内存物理地址由段基地址和偏移地址组成,物理地址=段基地址16+偏移地址,0 0 0 0,段首地址, , ,

30、19,0,4, , ,偏移地址,+,物理地址,119,例:,已知 CS=1055H, DS=250AH ES=2EF0H SS=8FF0H 画出各段在内存中的分布。,120,例:,CS=1055H 段首地址=10550H DS=250AH 段首地址=250A0H ES=2EF0H SS=8FF0H,10550H,250A0H,2EF00H,8FF00H,代码段,数据段,附加段,堆栈段,121,例,设某操作数存放在数据段,DS=250AH,数据所在单元的偏移地址=0204H。则该操作数所在单元的物理地址为: 250AH 16+0204H = 252A4H,122,3. 存储器的保护模式,保护模式

31、: 支持多任务的工作模式,提供了多任务保护机制; 内存段的访问受到限制,不能再随意存取数据段。 保护模式下的内存访问 不再直接从段寄存器中获得段基地址,段基地址存放在内存的段描述符表中,由段描述符寄存器给出段描述符表的基地址,段寄存器中仅存放段选择符。,123,保护模式下的存储器地址变换,124,4. 堆栈及堆栈段的使用,堆栈: 内存中一个特殊区域,用于存放暂时不用或需要保护的数据。 常用于响应中断或子程序调用。,125,例:,已知 SS=1000H,SP=0100H 则: 堆栈段的段首地址= 栈顶(偏移)地址= 若该段最后一个单元 地址为10200H,则: 栈底偏移地址=,10000H,01

32、00H,0200H,126,5. 内部寄存器小结,全部为16位寄存器 只有4个数据寄存器分别可分为2个8位寄存器 所有16位寄存器中: 全部通用寄存器中,只有AX和CX中的内容一定为参加运算的数据,其余通用寄存器中的内容可能是数据,也可能是存放数据的地址; SP中的内容通常为堆栈段的栈顶地址; 段寄存器中的内容为相应逻辑段的段地址; IP中的内容为下一条要取的指令的偏移地址; FLAGS中有9位标志位,127,6. 实模式下的存储器寻址小结,每个内存单元在整个内存空间中都具有惟一地址 每个内存单元的地址都由两部分组成: 段基地址 段内相对地址(偏移地址) 段基地址决定了逻辑段在内存中所占的区域

33、,改变段基地址,则改变了逻辑段的位置。 一个逻辑段的默认长度为64KB,最小长度值为16B。 逻辑段可以有多个,但只有4种类型。在一个程序模块中,每种类型的逻辑段最多只能有一个。,128,六、总线时序,129,时序,时序: CPU各引脚信号在时间上的关系 总线周期: CPU完成一次访问内存(或接口)操作所需要的时间。 一个总线周期至少包括4个时钟周期。,130,七、8088系统总线,131,主要内容:,总线的基本概念和分类; 总线的工作方式; 常用系统总线标准。,132,1. 概述,总线: 是一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道。,地址总线

34、(AB) 数据总线(DB) 控制总线(CB),133,2. 总线分类,CPU总线 系统总线 外部总线,片内总线 片外总线,按相对CPU的位置分,按层次结构分,134,3. 总线的系统结构,单总线结构,CPU,M,M,I/O,I/O,I/O,135,多总线结构,面向CPU的双总线结构 面向主存的双总线结构,双总线结构 多总线结构,136,面向CPU的双总线结构,存储器与I/O接口间无直接通道,CPU,M,I/O,I/O,I/O,137,面向存储器的双总线结构,在单总线结构基础上增加一条CPU到存储器的高速总线,CPU,M,I/O,I/O,I/O,138,现代微机中的多总线结构,139,4. 总线

35、的基本功能,数据传送 仲裁控制 出错处理 总线驱动,140,5. 常用系统总线,ISA(8/16位) PCI(32/64位) AGP(加速图形端口,用于提高图形处理能力) PCI-E(PCI Express ) 目前最新的系统总线标准,采用串行方式传输数据,依靠高频率来获得高性能。,141,6. 总线的主要性能指标,总线带宽(B/S):单位时间内总线上可传送 的数据量 总线位宽(bit): 能同时传送的数据位数 总线的工作频率(MHz) 总线带宽= (位宽/8)(工作频率/每个存取周期的时钟数),142,7. 两种工作模式下的总线连接,8088可工作于两种模式下 最小模式为单处理器模式,控制信

36、号较少,一般可不必接总线控制器。 最大模式为多处理器模式,控制信号较多,须通过总线控制器与总线相连。,143,最小模式下的总线连接示意图,8088 CPU, ,控制总线,数据总线,地址总线,地址 锁存,数据 收发,ALE,时钟发 生 器,144,最大模式下的总线连接示意图,8088 CPU,数据总线,地址总线,地址 锁存,数据 收发,ALE,时钟发 生 器,总 线 控制器,控制总线,145,本章小结,微处理器的一般构成 8088CPU的主要引线及其功能 8088CPU的内部结构 内部寄存器功能 寄存器中数据的含义 8位寄存器中存放的均为运算的数据 存储器寻址 逻辑地址,段基地址,偏移地址,物理

37、地址 堆栈 栈顶地址,栈底地址,堆栈段基地址,146,谢谢大家!,147,第3章指令系统,148,主要内容:,指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理:,操作码的含义 指令对操作数的要求 指令执行的结果,149,3.1 概述,150,了解:,指令及指令系统; 指令的格式; 指令中的操作数类型; 指令字长与机器字长; 指令的执行时间 CISC和RISC指令系统,151,一、指令与指令系统,指令: 控制计算机完成某种操作的命令 指令系统: 处理器所能识别的所有指令的集合 指令的兼容性: 同一系列机的指令都是兼容的。,152,二、指令格式,指令中应包含的信息:,运算数据的来源 运

38、算结果的去向 执行的操作,153,指令格式,操作码 操作数,操作数,执行何种操作,目标操作数,源操作数,参加操作的数据或数据存放的地址,154,指令格式:,零操作数指令: 操作码 单操作数指令: 操作码 操作数 双操作数指令: 操作码 操作数,操作数 多操作数指令: 三操作数及以上,155,三、指令中的操作数,立即数 寄存器 存储器,表征参加操作的数据本身,表征数据存放的地址,156,立即数操作数,立即数本身是参加操作的数据,可以是8位或16位,只能作为源操作数。 例: MOV AX,1234H MOV BL,22H 立即数无法作为目标操作数 立即数可以是无符号或带符号数,其数值应在可取值范围

39、内。,157,寄存器操作数:,参加运算的数存放在指令给出的寄存器中,可以是16位或8位。 例: MOV AX,BX MOV DL,CH,158,存储器操作数,参加运算的数存放在存储器的某一个或某两个单元中。 表现形式: ,立即数或寄存器, 中的内容是存放所寻找数据的单元的偏移地址,159,存储器操作数例,例: MOV AX,1200H MOV AL,1200H,22H,11H,1200H,偏移地址,AH AL,160,四、指令字长,指令字长: 由操作码的长度、操作数地址长度、操作数个数决定。,161,五、指令的执行速度,指令的字长影响指令的执行速度 对不同的操作数,指令执行的时间不同: 存储器

40、,快!,立即数,寄存器,162,六、CISC和RISC指令系统,CISC(complex instruction set computer) 指令的功能强,种类多,常用指令用硬件实现; 指令系统复杂,难使用。 RISC指令系统 指令功能较弱,种类少,格式简单; 多数指令在一个计算机周期内完成; 对存储器的结构和存取速度要求较高。,163,3.2 寻址方式,164,寻址方式,寻找操作数所在地址的方法 寻找转移地址的方法,本节,165,寻址方式,操作数可能的来源或存放处: 由指令直接给出 寄存器 内存单元 寻找操作数所在地址的方法可以有三种大类型 指令直接给出的方式 存放于寄存器中的寻址方式 存放

41、于存储器中的寻址方式,166,一、立即寻址,指令中的源操作数是立即数,即源操作数是参加操作的数据本身 例:MOV AX,1200H,12H,00H,AH AL,MOV,代码段,立即寻址仅适合于源操作数,167,二、寄存器寻址,参加操作的操作数在CPU的通用寄存器中。 例:MOV AX,BX,AX,BX,168,三、直接寻址,指令中直接给出操作数的偏移地址 默认在数据段 例:MOV AX,1200H,22H,11H,1200H,偏移地址,数据段,AH AL,169,直接寻址,直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。 例:MOV AX,ES:1200H,170,四

42、、寄存器间接寻址,参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。,171,寄存器间接寻址例,例:MOV AX,BX 设BX=1200H,22H,11H,1200H,偏移地址,AH AL,11 22,数据段,代码段,MOV,172,寄存器间接寻址,由寄存器间接给出操作数的偏移地址; 存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI 操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器: BX,SI,DI BP,默认在数据段,默认在堆栈段,173,寄存器间接寻址,寄存器 间接寻址,基址寻址(间址寄存器为基址寄存 器BX,BP) 变址寻址(间址寄存器为变址寄

43、存 器SI,DI),174,五、寄存器相对寻址,操作数的偏移地址为寄存器的内容加上一个位移量 例: MOV AX,BX+DATA 设:DS=2000H,BX=0220H,DATA=05H 则:AX=20225H,175,六、基址、变址寻址,操作数的偏移地址为 一个基址寄存器的内容 + 一个变址寄存器的内容; 操作数的段地址由选择的基址寄存器决定 基址寄存器为BX,默认在数据段 基址寄存器为BP,默认在堆栈段 基址变址寻址方式与相对寻址方式一样,主要用于一维数组操作。,176,例:,执行下列指令: MOV SI,1100H MOV BX,SI MOV AX,SI+BX,22H,11H,2200H

44、,偏移地址,AH AL,11 22,数据段,177,七、基址、变址、相对寻址,操作数的偏移地址为: 基址寄存器内容+变址寄存器内容+位移量 操作数的段地址由选择的基址寄存器决定。 基址变址相对寻址方式主要用于二维表格操作。,178,例:,执行以下程序段: MOV DI,1100H MOV BP,DI MOV AL,BPDI5,22H,11H,2205H,偏移地址,AL,22,堆栈段,179,八、隐含寻址,指令中隐含了一个或两个操作数的地址,即操作数在默认的地址中。 例: MUL BL 指令执行: ALBL,AX,180,3.3 8086指令系统,181,掌握:,指令码的含义 指令对操作数的要求

45、 指令的对标志位的影响 指令的功能,182,8086指令系统,从功能上包括六大类:,数据传送 算术运算 逻辑运算和移位 串操作 程序控制 处理器控制,183,数据传送指令,通用数据传送 输入输出 地址传送 标志位操作,184,一、通用数据传送,一般数据传送指令 堆栈操作指令 交换指令 查表转换指令 字位扩展指令,特点: 该类指令的执行对标志位不产生影响,185,1. 一般数据传送指令,一般数据传送指令 MOV 格式: MOV dest,src 操作: src 例: MOV AL,BL,dest,186,一般数据传送指令,注意点: 两操作数字长必须相同; 两操作数不允许同时为存储器操作数; 两操

46、作数不允许同时为段寄存器; 在源操作数是立即数时,目标操作数不能是段寄存器; IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现。,187,一般数据传送指令例,判断下列指令的正确性: MOV AL,BX MOV AX,SI05H MOV BXBP,BX MOV DS,1000H MOV DX,09H MOV 1200,SI,188,一般数据传送指令应用例,将(*)的ASCII码2AH送入内存数据段1000H开始的100个单元中。 题目分析: 确定首地址 确定数据长度 写一次数据 修改单元地址 修改长度值 判断写完否? 未完继续写入,否则结束,1063H,100B,1000H,

47、2AH,数据段,2AH,2AH,2AH,189,一般数据传送指令应用例,程序段: MOV DI,1000H MOV CX,64H MOV AL,2AH AGAIN:MOV DI,AL INC DI ;DI+1 DEC CX ;CX-1 JNZ AGAIN ;CX0则继续 HLT,190,上段程序在代码段中的存放形式,設CS=109EH,IP=0100H,则各条指令在代码段中的存放地址如下: CS : IP 机器指令 汇编指令 109E:0100 B80010 MOV DI,1000H 109E:0103 . MOV CX,64H 109E:0105 . MOV AL,2AH 109E:0107

48、 . MOV DI,AL 109E:0109 INC DI 109E:010A DEC CX 109E:010B JNZ 0107H 109E:010D HLT,191,数据段中的分布,送上2AH后数据段中相应存储单元的内容改变如下: DS:1000 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1010 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1020 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1030 2A 2A

49、2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1040 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1050 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1060 2A 2A 2A 2A 00 00 00 00 00 00 00 00 00 00 00 00,偏移地址DI,192,2. 堆栈操作指令,掌握: 有关堆栈的概念 栈顶、栈首、栈底 堆栈指令的操作原理 执行过程,执行结果,193,堆栈操作的原则,先进后出 以字为单位,194,堆

50、栈操作指令,压栈指令 PUSH 格式: PUSH OPRD 出栈指令 POP 格式: POP OPRD,16位寄存器或 存储器两单元,16位寄存器或 存储器两单元,195,压栈指令 PUSH,指令执行过程: SP - 2 SP 操作数高字节 SP+1 操作数低字节 SP,SP,堆栈段,SP,高8位,低8位,196,压栈指令的操作,设AX=1234H,SP=1200H 执行 PUSH AX 指令后堆栈区的状态:,1200H,堆栈段,SP-2=11FEH,12H,34H,1200H,堆栈段,12H 34H,AX,入栈后,入栈前,197,出栈指令POP,指令执行过程: SP SP+1 SP SP+2

51、,操作数低字节,操作数高字节,SP,堆栈段,SP,高8位,低8位,198,出栈指令的操作,执行 POP AX,12H,34H,11FEH,堆栈段,代码段,PUSH,12 34,AX,SP+2,1200H,出栈后,出栈前,199,堆栈操作指令说明,指令的操作数必须是16位的; 操作数可以是寄存器或存储器两单元,但不能是立即数; 不能从栈顶弹出一个字给CS; PUSH和POP指令在程序中一般成对出现; PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反。,200,堆栈操作指令例,MOV AX,1234H MOV SP,AX MOV BX,5678H MOV BX,AH MOV B

52、X+1,BL PUSH AX PUSH BX PUSH WORD PTRBX POP WORD PTRBX POP AX POP BX,如此,会使AX和BX的内容互换,201,3. 交换指令,格式: XCHG REG,MEM/REG 注: 两操作数必须有一个是寄存器操作数 不允许使用段寄存器。 例: XCHGAX,BX XCHG2000,CL,202,4. 查表指令,格式: XLAT 说明: 用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址 操作: 将BX+AL所指单元的内容送AL,203,查表指令例,数据段中存放有一 张ASCII码转换表, 设首地址为20

53、00H, 现欲查出表中第11 个代码的ASCII码,30,31,32,.,39,41,42,.,45,46,2000H+0,2000H+11,0,1,2,9,A,B,E,F,204,查表指令例,可用如下指令实现: MOV BX,2000H ;BX表首地址 MOV AL,0BH ;AL序号 XLAT ;查表转换 执行后:AL = 42H 还可用其他方法实现,如: MOV BX,2000H MOV AL,BX+0BH,205,5. 字位扩展指令,将符号数的符号位扩展到高位; 指令为零操作数指令,采用隐含寻址,隐含的操作数为AX及AX,DX 无符号数的扩展规则为在高位补0,206,字节到字的扩展指令

54、,格式: CBW 操作: 将AL内容扩展到AX 规则: 若最高位=1,则执行后AH=FFH 若最高位=0,则执行后AH=00H,207,字到双字的扩展指令,格式: CWD 操作: 将AX内容扩展到DX AX 规则: 若最高位=1,则执行后DX=FFFFH 若最高位=0,则执行后DX=0000H,208,字位扩展指令例,判断以下指令执行结果: MOV AL,44H CBW MOV AX,0AFDEH CWD MOV AL,86H CBW,209,二、输入输出指令,掌握: 指令的格式及操作 指令的两种寻址方式 指令对操作数的要求,210,输入输出指令,专门面向I/O端口操作的指令 指令格式: 输入

55、指令: IN acc,PORT 输出指令 :OUT PORT,acc,端口地址,211,指令寻址方式,根据端口地址码的长度,指令具有两种不同的端口地址表现形式。 直接寻址 端口地址为8位时,指令中直接给出8位端口地址; 寻址256个端口。 间接寻址 端口地址为16位时,指令中的端口地址必须由DX指定; 可寻址64K个端口。,212,I/O指令例,IN AX,80H MOV DX,2400H IN AL,DX OUT 35H ,AX OUT AX,35H,213,三、地址传送指令,取偏移地址指令LEA *LDS指令 *LES指令,214,取偏移地址指令LEA,操作: 将变量的16位偏移地址取出送

56、目标寄存器 当程序中用符号地址表示内存偏移地址时,须使用该指令。 格式: LEA REG,MEM 指令要求: 源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器。,符号地址,215,LEA指令,比较下列指令: MOV SI,DATA1 LEA SI,DATA1 MOV BX,BX LEA BX,BX,DATA1,符号地址,12H,34H,1100H,88H,77H,BX=1100H,执行结果:SI=1234H,执行结果:SI=DATA1,执行结果:BX=7788H,执行结果:BX=1100H,216,LEA指令在程序中的应用,将数据段中首地址为MEM1 的50个字节的数据传送到同一逻辑段首地址为MEM2的区域存放。编写相应的程序段 。,217,LEA指令在程序中的应用,开 始,取源地址,取目标地址,送数据块长度到CL,传送一个字节,修改地址指针,修改计数值,计数值=0?,结 束,N,Y,218,LEA指令在程序中的应用,LEA SI,MEM1 LEA DI,MEM2 MOV CL,50 NEXT: MOV AL,SI MOV DI,AL INC SI INC DI DEC CL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论