80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章

上传人:E**** 文档编号:89337876 上传时间:2019-05-23 格式:PPT 页数:130 大小:2.62MB
返回 下载 相关 举报
80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章_第1页
第1页 / 共130页
80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章_第2页
第2页 / 共130页
80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章_第3页
第3页 / 共130页
80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章_第4页
第4页 / 共130页
80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章》由会员分享,可在线阅读,更多相关《80X86微机原理与接口技术 教学课件 ppt 作者 喻宗泉 第1-3章 第2章(130页珍藏版)》请在金锄头文库上搜索。

1、第 2 章 8086/8088微机系统,2.1 8086/8088存储器 2.2 堆栈操作 2.3 8086/8088 CPU 2.4 8086/8088功能引线和引脚 2.5 8086/8088微机系统 2.6 8086/8088总线操作和工作时序 2.7 小结,2.1 8086/8088存储器,2.1.1 规则存放和非规则存放 只有8086存储器才有规则存放和非规则存放的概念。 多字节数据从偶数地址开始存放,称为规则存放;从奇数地址开始存放,称为非规则存放。例如在图2-1所示的存储器中,存放在32368H单元的字数据9AB1H就属于规则存放,该字也叫规则字,因为地址32368H为偶数。0B

2、156H是非规则字,9AB1H和0B156H发生了重叠存放。,图2-1 规则字、非规则字的存放与重叠,图2-2 从8086存储器读入字节和字,字节数据只占1个存储单元,不存在规则存放与非规则存放。 8088数据总线宽度为8位,每次访问存储器只能存取1个字节信息。因此8088 存储器不存在规则存放和非规则存放。凡是“字”数据都需要CPU访问存储器两次才能完成。由此可见,8088系统中程序的运行速度慢于8086系统。 8086/8088 CPU对1 MB存储器采取分段管理的模式,程序代码存放在存储器的代码段中,数据代码存放在数据段中。程序代码中第1条指令的第1字节所在存储单元的地址,就成为程序的起

3、始入口地址。通常程序的入口地址由计算机自动赋予,由CPU的操作系统寻找的存放地址必定会是偶数地址,以利于从第1条指令代码开始就实施规则操作。程序中如果有转移指令或中断指令,则程序有可能转到1个奇数入口地址,这时,CPU会从奇数地址取1个字节,然后从偶数地址开始,2个字节2个字节地取。,图2-3 8086 1 MB存储器分体结构,表2-1 8086存储器高低位库选择,图2-4 8088 1 MB存储器结构,2.1.3 存储器分段组织 存储单元的数量太多,为了使用和管理方便,将存储器分段是一种行之有效的方法。只不过不同微机系统的存储器,分段的方法不相同,段的大小没有统一的规定。8086/8088系

4、统中1段长度最大为64 KB,含有64 K65 536个连续存储单元。 【例2-1】 设64 KB为1段,8086/8088 1 MB内存可分为首尾相连且互不重叠的多少段? 解 可以分为1 MB/64 KB16段,如图2-5所示。,图2-5 段划分,图2-6 4段划分,图2-7 64 KB段内地址,每段第1个存储单元的地址叫做段的首址,或起始地址。不是任意一个存储单元都能充当首址,只有低4位为0的那些存储单元才有资格成为首址,即00000H、00010H、00020H、FFFF0H等。这些单元共有1 MB/16 B65 536个。 首址的高16位叫做段的基址,在8086/8088 CPU中,设

5、置了4个16位段寄存器CS、DS、SS和ES,分别用于存放代码段、数据段、堆栈段和附加段的基址。程序将从4个段寄存器指出的逻辑段中实施指令操作。如果要从其它段而不是当前段中存取信息,必须首先要找到操作段寄存器的值,然后到该段中去寻找操作数。,2.1.4 物理地址和逻辑地址,物理地址又叫实际地址,是存储单元按顺序依次排列的实际存在地址。每个存储单元的物理地址是惟一的,使用20位二进制数或5位十六进制数表示。1 MB存储器有1 048 576个存储单元,物理地址编号为00000HFFFFFH。考虑到16位微机中寄存器为16位,要表示20位物理地址,常常改用逻辑地址表示。逻辑地址是使用16位段基址和

6、16位偏移量表示的地址,记为“段基址:偏移量”。物理地址和逻辑地址之间的关系为 物理地址 段基址10H偏移量 把段基址左移4位,低4位补0,再加上偏移量,得到该单元的物理地址。如图2-8所示。,图2-8 物理地址和逻辑地址,【例2-2】 设某单元所在段的基址是C018H,偏移量是FE7FH,该单元的逻辑地址是C018H:FE7FH,物理地址C0180HFE7FHCFFFFH,如图2-9所示。 一个存储单元的物理地址对应多个逻辑地址,例如01234H存储单元,其逻辑地址既可以表示为0100H:0234H,也可以表示为0120H:0034H,如图2-10所示。,图2-9 C018H:FE7FH单元

7、,图2-10 逻辑地址,【例2-3】 把逻辑地址5182H:A1F4H存放在内存20B56H单元,存储图为,【例2-4】 设字数据5ABFH放在数据段3E613H单元中,数据段基址为3E5DH,现在要求把字数据5ABFH的物理地址3E613H存入10028H单元,画出存储图。 解 20位物理地址不宜直接存放在存储器中,应改用逻辑地址存放。 偏移量3E613H3E5DH10H0043H 将3E5DH:0043H存入,存储图为,【例2-5】 8086某存储单元地址为5182H:A1F4H,问该单元所处段的首单元和末单元的物理地址是多少? 解 首单元物理地址:51820H。末单元物理地址:51820

8、HFFFFH6181FH。,【例2-6】 某数据区起始地址为5182H:A1F4H,该数据区由20个字组成,问该数据区的首单元和末单元物理地址是多少?第20个字存放在哪个单元中?是规则存放还是非规则存放? 解 数据区首单元物理地址5182H10HA1F4H5BA14H 数据区末单元物理地址5BA14H27H5BA3BH 第20个字存放在5BA3AH单元,为规则存放。 当把一个存储单元的逻辑地址存放在内存中时,应当遵循两条原则:其一,偏移量进入低地址,段基址进入高地址;其二,低字节进入低地址,高字节进入高地址。,表2-2 逻辑地址中的段寄存器和偏移量寄存器,2.1.5 段寄存器的初始化 段寄存器

9、的值除了CS外,都必须在程序一开始用数据传送指令送入。给寄存器赋值可以建立起该逻辑段,便于后面的操作使用。在程序中间,也可以给已经赋过值的DS、SS、ES再次使用数据传送指令赋值,重新建立一些新段,这种做法称为再定位。 CS的值不能用数据传送指令写在程序中。当执行一个编制好的程序前,微机会自动给CS和IP赋一个合适的值。在执行转移类、中断类指令时,微机会把指令格式指定的值赋给CS和IP。在复位时,CS自动成为FFFFH,IP自动成为0000H。,2.2 堆 栈 操 作,图2-11 堆栈示意图,【例2-7】 设SS3000H,SP2000H,DX4A86H。将DX推入堆栈及将堆栈内容弹出到SI和

10、DI操作示意如图2-12所示。,图2-12 入(出)栈及SP的自动减(加)2功能,2.3 8086/8088 CPU,2.3.1 8086/8088的功能结构,图2-13 总线接口单元和执行单元,1总线接口单元BIU 总线接口单元BIU的功能是对外电路提供三组总线,实现CPU与存储器、I/O端口之间地址信号、数据信号和控制/状态信号的传送。BIU 承担的具体任务是:根据CS和IP的值计算下一条将要执行指令的物理地址;经由总线控制电路发出的地址信息选中存储器某一单元或某一I/O端口,以及相应的读/写控制信号;经数据总线完成8/16位数据的读/写。在取指令阶段,把从存储单元取出的指令字节送指令队列

11、寄存器。,BIU内部结构由三部分组成:第一部分是20位地址加法器和4个16位段寄存器CS、DS、SS、ES,功能是计算并生成20位指令操作码的物理地址;第二部分是总线控制逻辑电路,是三态门控制的三组总线输入/输出电路,是CPU与外界联系的惟一通道;第三部分是指令队列寄存器,是按照“先入先出”工作原则组织起来的一组寄存器,用于顺序存放指令代码。8086的指令队列为6个字节,8088的指令队列为4个字节。总线控制电路从存储器取得的指令字节,依次进入指令队列。指令队列操作规则为:当指令队列中有1个指令字节后,该字节就能进入EU实施指令译码并执行;指令队列中空出2个(对于8086)或空出1个(对于80

12、88)字节时,BIU自动去存储器取指令字节(称为“取指”),直至填满为止;在顺序控制程序执行中,BIU取指是不需要EU提出任何请求的,并且每一次都能取2个字节,在一个总线周期内完成一个规则字的操作。,如果遇到程序转移指令,EU将向BIU发出转移信息,BIU将到转移目标去取指。当转移到一个以奇数地址开始的存储单元时,BIU会自动地从这个奇数地址取一个字节,然后从其后的偶数地址开始,按规则字取指令字节。与此同时,指令队列中原有的待执行指令字节会全部被清除,装入转移指令目标地址的指令代码,实现程序的转移。由于指令队列中至少总有1个指令字节,因此EU执行指令和BIU从存储器去取指令字节就可以同时进行。

13、EU在执行指令时,如果指令要求对存储器或I/O设备存取数据,那么BIU将在现行取指周期完成后的下一个总线周期,对存储器或I/O设备开展存取操作,传送的数据代码经BIU送至EU。当BIU不使用系统总线时,系统总线可以供微机系统其它逻辑部件使用。,2执行单元EU 执行单元EU 的功能是解释并执行指令。EU由控制单元电路、算术逻辑单元、CPU内部通用寄存器组三部分组成。控制单元电路用作将指令队列取来的指令字节进行译码并形成各种定时控制号,它能对EU的各个逻辑电路实施特定的定时操作;算术逻辑单元用于实现算术逻辑运算、寻址时有效地址的计算;CPU内部通用寄存器组用于存放参加运算的操作数、运算结果及运算结

14、果的标志,以及存放存储单元逻辑地址的偏移量。它包括10个16位寄存器AX、BX、CX、DX、SP、BP、SI、DI、IP、FLAGS。 8086 CPU内部除指令队列总线为8位外,其余内部数据总线均为16位。,2.3.2 8086/8088寄存器的结构,图2-14 8086/8088寄存器,通用寄存器(General-Purpose Register)共8个,分为三组。 (1) 数据寄存器:数据寄存器有4个,分别为累加器AX、基址寄存器BX、计数寄存器CX和数据寄存器DX。每个数据寄存器又可以分为高字节H和低字节L,作8位数据寄存器单独使用。通用寄存器的功能有两个:其一为通用功能,用于算术逻辑

15、运算中存放操作数或操作结果;其二为专用于隐含使用功能,如表2-3所示。,表2-3 通用寄存器的隐含使用,(2) 指针类寄存器:指针类寄存器有两个,分别为堆栈指针SP和基址指针BP。它们和SS配对使用,用于存放堆栈段中某一存储单元逻辑地址偏移量。它们的区别是:SP存放堆栈段栈顶地址的偏移量,每次出(入)栈后,SP将自动加(减)2;BP存放堆栈段中一个数据区基地址的偏移量,每次出(入)栈后,BP不变。,(3) 变址类寄存器:变址类寄存器有两个,分别是源变址寄存器SI和目的变址寄存器DI。它们的功能与指令类型有关。在数据传送类指令中,它们和DS配对使用,用于存放数据段中某一存储单元逻辑地址偏移量。在

16、串操作指令中,它们有明显的区别:SI和DS配对使用,用作源操作数逻辑地址偏移量,允许段跨越;DI和ES配对使用,用作目的操作数逻辑地址偏移量,不允许段跨越。SI和DI作数据寄存器使用时,只能以字为单位进行操作。 段寄存器(Segment Register)共4个,分别是CS(代码段)、DS(数据段)、SS(堆栈段)、ES(附加段),用于存放各段基址。,控制寄存器(Control Register)共2个,分别是指令指针IP和标志寄存器FLAGS。IP中存放着BIU要取的下一条指令字节的逻辑地址偏移量。在指令字节取出后,IP将自动加1,指向下一条指令字节的地址。IP的值不能用数据传送指令赋予。转移类指令可以改变IP的值,使程序朝转移的目标执行。FLAGS用于存放算术逻辑运算结果的状态以及控制指令操作的动向,在8086/8088中,只用了9位,如图2-15所示,各位定义如表2-4所示。9个标志位分为两大类:状态标志位6个,控制标志位3个。,图2-15 8086/8088标志寄存器FLAGS,表2-4 标 志 位 定 义,2.

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

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

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