![[工学]微机原理第03讲.ppt_第1页](http://file.renrendoc.com/FileRoot1/2018-12/23/836e0bef-c1e4-4593-99b0-34c49cdbd623/836e0bef-c1e4-4593-99b0-34c49cdbd6231.gif)
![[工学]微机原理第03讲.ppt_第2页](http://file.renrendoc.com/FileRoot1/2018-12/23/836e0bef-c1e4-4593-99b0-34c49cdbd623/836e0bef-c1e4-4593-99b0-34c49cdbd6232.gif)
![[工学]微机原理第03讲.ppt_第3页](http://file.renrendoc.com/FileRoot1/2018-12/23/836e0bef-c1e4-4593-99b0-34c49cdbd623/836e0bef-c1e4-4593-99b0-34c49cdbd6233.gif)
![[工学]微机原理第03讲.ppt_第4页](http://file.renrendoc.com/FileRoot1/2018-12/23/836e0bef-c1e4-4593-99b0-34c49cdbd623/836e0bef-c1e4-4593-99b0-34c49cdbd6234.gif)
![[工学]微机原理第03讲.ppt_第5页](http://file.renrendoc.com/FileRoot1/2018-12/23/836e0bef-c1e4-4593-99b0-34c49cdbd623/836e0bef-c1e4-4593-99b0-34c49cdbd6235.gif)
已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
参考资料 : 1.微型计算机技术及应用第二版. 戴梅萼, 史 嘉权, 编. 清华大学出版社 2.微型计算机从8086到80386. 周明德, 白晓笛 编. 清华大学出版社 答疑时间: 1 第2章 8086微处理器及其系统 2.1 8086微处理器(CPU) 2.2 8086系统的存储器组织及I/O组织 2.3 8086系统的工作模式 2.4 8086的操作时序 习题2 2 80868088微处理器概述 8086 CPU是Intel系列的16位微处理器,它有16位数 据总线和20位地址总线,所以可寻址的地址空间是 2201MB 8088 CPU是准16位微处理器,它的内部寄存器、内 部运算部件以及内部操作都是按16位设计的,但对外的数 据总线只有8位,在处理一个16位数据时,8088需要两步 操作,因而称8088是准16位微处理器。 本章中关于8086 CPU的内部结构是从指令的执行全 过程来讨论的,即是从程序员和使用者的角度看到的结 构。这种结构与8086真正的物理结构有所区别,因而又 称下面将要讨论的8086 CPU的内部结构为编程结构。 3 一、 8086CPU的编程结构 从程序员的角度看,8086CPU分为两部分: 执行部件(execution unit,EU) 总线接口部件(bus interface unit,BIU) 2.1 8086微处理器简介 4 图2-1 5 1. 执行部件(EU) 功能:执行指令 组成: 4个通用寄存器,即AX、BX、CX、DX; 4个专用寄存器,即 基址指针寄存器 BP(base pointer ) 堆栈指针寄存器 SP(stack pointer) 源变址寄存器 SI(source index) 目的变址寄存器DI(destination index) 标志寄存器 FR; 算术逻辑单元 ALU(arithmetic logic unit)。 内部控制逻辑 6 (1)内部寄存器组 8个16位 通用寄存器 数据寄存器(AX,BX,CX,DX) 指针和变址寄存器(SP,BP, SI,DI ) 数据寄存器: 可用来存放16位的数据或地址。又 可分为8个8位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL 8位寄存器只能存放数据而 不能存放地址 7 数据寄存器特有的习惯用法数据寄存器特有的习惯用法: : AX:累加器。所有I/O指令都通过AX或AL与接口 传送信息,中间运算结果也多放于AX中。 BX:基址寄存器。在间接寻址中用于存放基地址 。 CX:计数寄存器。可以用作数据寄存器,在字符 串操作、循环操作和移位操作时用作计数器,存 放计数值。 DX:数据寄存器。在间接寻址的I/O指令中存放 I/O端口地址;在32位乘除法运算时,存放高16 位数。 8 指针和变址寄存器:4个16位寄存器,主要用来存放 操作数的偏移地址(即操作数的段内地址)。 SP:堆栈指针寄存器,在堆栈操作中存放栈顶的偏移 地址。 BP:基址指针寄存器,常用于在访问内存时存放内存 单元的偏移地址,还用作堆栈区的基地址寄存器。 注意BX与BP在应用上的区别: l作为通用寄存器,二者均可用于存放数据 l作为基址寄存器,用BX表示所寻找的数据在数据段 ; 用BP则表示数据在堆栈段 9 在串操作中变址寄存器内存放的地址在数据传送完 成后,具有自动修改的功能。例如,传送1字节数据后 地址自动加1,为下次传送做好准备,变址寄存器因此 得名。 SI:源变址寄存器,主要用于存放地址,在字符串 操作中存放源操作数的偏移地址。 DI:目的变址寄存器,主要用于存放地址,在字符 串操作中存放目的操作数的偏移地址。 变址寄存器常用于指令的间接寻址或变址寻址。 10 (2)算术逻辑单元(ALU)及标志寄存器(FR ) 算术逻辑运算单元ALU: 可完成16位或8位的算术逻辑运算,运算结果通过 内部总线送到通用寄存器,或者送往BIU的内部寄存 器中,等待写入存储器。ALU运算后的结果特征(有 无进位,溢出等)置入标志寄存器FLAGS中保存。 标志寄存器FLAGS: 16位寄存器,用来存放运算结果的特征和控制标志 。 11 根据功能,8086的标志可以分为两类: 状态标志6个,用来表示运算结果的特征。 包括CF、PF、AF、ZF、SF和OF 控制标志3个,用来控制CPU的操作。 包括IF、DF和TF。 各标志位的作用说明如图。 12 13 (1)CF(Carry Flag) 进位标志位: CF=1,表示本次运算中最高位(第7位或第15位)有 进位(加法运算时)或有借位(减法运算时);否则CF=0。 进行二个无符号数加法或减法运算后,如果CF=1,表示 运算的结果超出了该字长能够表示的数据范围。例如,执行 8位数据运算后,CF=1表示加法结果超过了255,或者是减法 得到的差小于零。 进行有符号数运算时,CF对运算结果没有直接意义。 14 (2)PF(Parity Flag) 奇偶标志位 PF=1,表示本次运算结果的低八位中有偶数个“1” PF=0,表示本次运算结果的低八位中有奇数个“1” PF可以用来进行奇偶校验,或用来生成奇偶校验位 。 (3)AF(Auxiliary Carry Flag) 辅助进位标志 位 AF=1,表示运算结果中低4位向高4位有进位(加法 运算时)或有借位(减法运算时),否则AF=0。 (4)ZF(Zero Flag) 零标志位 ZF=1,表示运算结果为0(各位全为0),否则 ZF=0。 15 (5)SF(Sign Flag) 符号标志位 SF=1,表示运算结果的最高位(第7位或第15位)为1 ,否则SF=0。 (6)OF(Overflow Flag) 溢出标志位 OF=1 表示二个用补码表示的有符号数的运算结果超 出了该字长所能表示的范围,即产生溢出;否则OF=0。 例如,进行8位运算时,OF=1表示运算结果大于+127 或 小于128,此时不能得到正确的运算结果。 OF对无符号数的运算结果没有意义。 16 如何判断溢出: 当字节运算的结果超出了范围128127,或者当 字运算的结果超出范围3276832767时称为溢出。当 计算机进行加法运算时,每当判断出次高位向最高位产生 进位,而最高位没有进位时,便产生了溢出,OF1;或 反过来,每当判断出次高位向最高位无进位,而最高位却 往前有进位时,也产生溢出,OF1。在减法运算时,每 当判断出最高位需要借位,而次高位没向最高位产生借位 时产生溢出,OF=1;或者反过来,次高位向最高位有借 位,而最高位并不需向更高位借位时产生溢出,OF=1。 结论:根据最高位的进位与次高位的进位是否相同来确 定。若两者不相同则OF=1(表示有溢出),否则 OF=0 (表示无溢出) 17 (7)IF(Interrupt Flag) 中断允许标志位 IF=1,表示允许CPU响应可屏蔽中断。IF可通过STI 指令置位(置1),也可通过CLI指令复位(清零)。 (8)DF(Direction Flag) 方向标志位 在串操作指令中,若DF=0,表示串操作指令执行后地 址指针自动增量,串操作由低地址向高地址进行;DF=1, 表示地址指针自动减量,串操作由高地址向低地址进行。 DF可通过STD指令置位,也可通过CLD指令复位。 (9)TF(Trap Flag) 单步标志位 TF=1,控制CPU进入单步工作方式。在这种工作方式 下,CPU每执行完一条指令就会自动产生一次内部中断, 这在程序调试过程中很有用。 掌握运算结果对状态标志位的影响,对于在编程中控制程 序的执行方向具有重要意义。 18 例1:若AL = 3BH,AH = 7DH,指出AL和AH中的内容相 加、相减后,CF,AF,PF,SF,OF和ZF的状态。 (1)AL+AH CF=0(无进位) AF = 1(有辅助进位) PF=1(运算结果有4个1) SF = D7 = 1(运算结果符号位为1) OF = C7C6 = 01 = 1 (有溢出) ZF = 0 (运算结果不为0) 19 (2)AL- AH CF = 1 (有借位) AF = 1 (有辅助进位 ) PF = 1 (运算结果中有6个1) SF = 1 (符号位为1) ZF = 0 (运算结果不为0) OF = 0 (无溢出) 运算产生的标志位由程序员根据需要选择使用。例如 ,若参加运算的两个数是有符号数(用补码表示),可用 OF判断结果是否产生溢出,这时不必关心CF的状态;若参 加运算的两个数是无符号数,可用CF判断结果是否超出范 围,无需关心OF的状态。 20 例2:设被减数AL7,减数BL8,执行AL-BL后, 根据标志位判断AL、BL的大小。 解:7的补码: 00000111 8的补码: 00001000 - 8的补码:11111000 00000111 00000111 -) 00001000 +) 11111000 11111111 11111111 OF0 因为D6向D7有借位,D7向更高位也有借位; SF1 因为最高位为1,是负数1; 所以ALBL。 是否正确呢?我们把运算结果的补码形式11111111转 换成原码100000011,可看出此结果正确。 21 (3)内部控制逻辑电路 主要功能:从指令队列缓冲器中取出指令,对 指令 进行译码,并产生各种控制信号,控制各部件的协 同工作以完成指令的执行过程。 22 2. 2. 总线接口部件总线接口部件 BIUBIU 功能:形成访问存储器的物理地址; 访问存储器取得指令并暂存到指令队列中等待执行 ; 访问存储器或I/O端口以读取操作数参与EU运算, 或存放运算结果等。 组成: 4个段地址寄存器(CS、DS、ES、SS) 16位的指令指针寄存器IP(Instruction Pointer) 20位的地址加法器 6字节的指令队列缓冲器 总线控制逻辑 23 (1)段地址寄存器(CS, DS, SS, ES) 存储器的分段 8086可寻址的存储空间为1MB,有20位的地址线, 而内部的寄存器是16位,只能寻址64KB。所以8086 8088系统采用了地址分段的方法,将1M存储空间分成 若干块,称为“逻辑段”,每个逻辑段容量64KB,存放 一种类型的数据或者程序。因此1M的存储空间可分成 16个逻辑段(015)。在段内寻址仍采用传统的16位地址 寻址方法。 24 在8086存储空间中,把16字节的存储空间称作一节 (paragraph)。要求各个逻辑段从节的整数边界开始,即段 首地址低4位应该是“0”,把段首地址的高16位称为“段基址” ,存放在段寄存器DS或CS或SS或ES中。 00000H 00010H 00020H FFFF0H 25 允许段在整个存储空间浮动,即段与段之间可以部 分重叠、完全重叠、连续排列。在整个存储空间中可设 置若干个逻辑段。 对于任何一个物理地址,可以惟一地被包含在一 个逻辑段中,也可 包含在多个相互重 叠的逻辑段中,只 要有段地址和段内 偏移地址就可以访 问到这个物理地址 所对应的存储空间 。 26 段可分为代码段,数据段,附加段,堆栈段。 用于存放段基址有 4个16位段寄存器,代码段寄存器 CS,数据段寄存器DS,附加段寄存器ES和堆栈段寄 存器SS。 代码段:存放程序代码,程序代码超过64K时,需要 分成几个段存放。CS中存放的是现在正在执行的程 序段的段基址。 数据段:用于存放当前使用的数据。需要第二个数据 段时可以使用附加段。 27 堆栈段:是内存中的一块存储区,用来存放专用数据 。如调用子程序时的入口参数,返回地址等,这些数 据都按照“后进先出”的规则进行存取。SS存放堆栈段 的段基址,SP存放当前堆栈栈顶的偏移地址。数据进 出堆栈要使用专门的堆栈操作指令,SP的值在执行堆 栈操作指令时根据规则自动地进行修改。 编程时,程序和各种不同类型的数据分别存放在 不同的逻辑段中,它们的“段基址”存放在“段寄存器” 中,段内的偏移地址存放在指针寄存器或变址寄存器 中。 28 29 2345H:0000H 01H : : 2345H:1100H 78H 段基址表示一个段的起始地址的高16位。偏移地址表示 段内的一个单元距离段开始位置的距离,因此,偏移地 址也称为段内地址。 例如:2345H:1100H表示段基址 为2345H(段的起始地址是23450H),段内偏移地址为 1100H的存储单元地址。 30 例: 已知CS=1055H, DS=250AH, ES=2EF0H, SS=8FF0H, 画出各段在内存中的 分布、段首地址. 10550H 250A0H 2EF00H 8FF00H CS DS ES SS 31 (2)地址加法器 功能:完成逻辑地址向物理地址的变换。 方法:物理地址段基址16 (即左移4位)+ 偏移地址 物理地址:访问存储器的实际地址,用20位二进制表示 。 32 33 例: 逻辑地址2345H:1100H对应的物理地址是24550H 。 23450H+1100H =24550H。 反之,物理地址24550H,它对应的逻辑地址可以是 2455H:0000H,也可以是2400H:0550H等。 注意:一个存储单元的物理地址是惟一的,而它对 应的逻辑地址是不惟一的。 34 (3) 指令指针寄存器IP 16位 功能:用来存放将要执行的下一条指令在代码段中的 偏移地址。在程序运行过程中,BIU自动修改 IP中的内容,使它始终指向将要执行的下一条 指令。 注意:程序不能直接访问IP,但是可通过某些指令修 改IP的内容。例如, 执行转移指令时,会将转 移的目标地址送入IP中,以实现程序的转移。 35 (4) 指令队列缓冲器6字节 BIU从存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年防火门窗设计与施工一体化合同
- 2025版房地产经纪服务售房协议合同
- 2025年度KTV包间租赁及娱乐服务合同
- 2025版环保产业项目合作协议范本下载
- 2025版高铁站停车场租赁合作协议样本
- 体检院感培训课件
- 2025版石材材料质量检测与采购合同
- 2025版全新影视制作摄像师聘用合同书样本下载
- 2025年汽车租赁公司车辆保险代理合同
- 2025年度海洋科技园区场地空地租赁及海洋资源开发合同
- 湘教版九年级美术教学计划(三篇)
- 紧急宫颈环扎术的手术指征及术后管理-课件
- “三重一大”决策 标准化流程图 20131017
- Cpk 计算标准模板
- 信息科技课程标准新课标学习心得分享
- 小学生元宵中秋猜谜语竞赛题目
- 环保与物业公司合作协议
- FZ/T 01057.2-2007纺织纤维鉴别试验方法 第2部分:燃烧法
- 面条制品-课件
- 四上科学第一单元《多样的动物》知识梳理
- 微观经济学-范里安varian中级
评论
0/150
提交评论