微机原理习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微型计算机原理》习题3(P117)参考答案
(部分题号与教材有错位,请注意)
为什么要研究8086/8088微处理器及其系统?这比直接研究32位微处理器及其系统有何优缺点?
解:尽管8086/8088后续的80286、80386、80486以及Pentium系列CPU结构和功能已发生很
大变化,但从基本概念与结构以及指令格式上来讲,他们仍然是经典的8086/8088CPU的延续与
提升。
8086 CPU有多少根数据线和地址线?它能寻址多少内存地址单元和I/O端口?8088CPU又有
多少根数据线和地址线?为什么要设计8088CPU?
解:8086 CPU有16根数据线和20根地址线,可寻址1MB存储单元和64KB的I/O端口。
8088 CPU 有16位内部数据线和8条外部数据总线,20根地址线。
8088 CPU 是8086 CPU的向下兼容版,这样设计主要为了与INTEL原有的8位外围接口芯
片直接兼容。
8086 CPU内部按功能可分为哪两大部分?他们各自的主要功能是什么?
解:从功能上讲,8086可分为两个部分,即总线接口单元(bus interface unit,BIU)和执
行单元(execution unit ,EU)。
总线接口单元(BIU)的功能是负责CPU与存储器或I/O设备之间的数据传送。
EU的功能只是负责执行指令;执行的指令从BIU的指令队列缓冲器中取得,执行指令的结
果或执行指令所需要的数据,都由EU向BIU发出请求,再由BIU经总线控制电路对存储器或外
设存取。
8086 CPU内部的总线接口单元BIU由哪些功能部件组成?他们的基本操作原理是什么?
解:BIU内有4个16位的段地址寄存器CS、DS、SS和ES,16位指令指针IP,6字节指令队列缓冲器,20位地址加法器和总线控制电路。
基本操作原理是BIU要从内存取指令送到指令队列缓冲器;CPU执行指令时,总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。
什么叫微处理器的并行操作方式?为什么说8086 CPU具有并行操作的功能?在什么情况下
8086的执行单元EU才需要等待总线接口单元BIU提取指令?
解:并行操作,就是CPU执行完1条指令后就可以立即执行下一条指令,而不需要像以往8位CPU那样重复的进行先取指令和后执行的指令串行操作。16位CPU的这种并行操作的特点,提高了总线的信息传输效率和整个系统的执行速度。
只有当遇到转移指令、调用指令或返回指令时,或者当某一条指令在执行过程中,需要频繁访问内存以至于总线接口单元没有空闲从内存将指令提取到指令队列中时,才需要等待总线接口单元BIU提取指令。
逻辑地址和物理地址有什么区别?为什么8086微处理器要引入“段加偏移”的技术思想?段加偏移的基本含义又是什么?试举例说明。
解:
逻辑地址由16位段地址和16位段内偏移量(又称有效地址)组成,程序中指令必须通过逻辑地址访问内存。物理地址是由20条地址线信号指示的内存地址,在电路中必须使用这20条物理的地址信号线访问内存。物理地址=段地址×16+有效地址。
参考教材:⑴P54第3~11行
⑵ P56 “2。段寄存器”的第1段
⑶ P70 “3。3。5 ‘段加偏移’寻址机制允许重定位”
段加偏移的基本含义是:将段寄存器内容左移4位后与16位偏移地址相加。例:假设CS=FA00H,IP=0300H,这是物理地址为0FA300H。
在微处理器中设置指令队列缓冲器有什么作用?8086与8088 CPU中的指令队列有何区别?解:指令队列缓冲器在执行指令的同时,可以从内存中取下面一条或几条指令,取来的指令就依次暂放在指令队列中。
区别:8086指令队列为6个字节,8088为4字节;8086指令队列只要空出2个,而8088只要空出1个指令字节时,BIU便自动执行取指操作,直到填满为止。
8086 CPU的基址寄存器BX和基址指针(或基址指针寄存器)BP有何区别?基址指针BP和堆栈指针SP在使用中有何区别?
解:基址寄存器BX在查表指令XLAT中存放表的起始地址,而基址指针BP用来存放堆栈地址。
指针寄存器SP和BP都用来指示存储位于当前堆栈段中的数据所在的地址,但SP和BP在使用上有区别。入栈和出栈指令是由SP给出栈顶的偏移地址,故称为堆栈指针寄存器。而BP 则是存放位于堆栈段中的一个数据区的基地址的偏移地址,故称为堆栈基址指针寄存器。
段地址和段起始地址相同吗?两者是什么关系?8086的段起始地址就是段基址吗?它是怎样获得的?
解:不同。为了使8086/8088 CPU能够寻址1MB内存空间,在其内部设计了一组16位的段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4位形成20位的段起始地址。
8086的段起始地址就是段基址。由段寄存器左移4位形成20位的段基址。
微处理器在实模式下操作时,段寄存器的用途是什么?
解:为了使8086/8088 CPU能够寻址1MB内存空间,在其内部设计了一组16位段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4位形成20位的段起始地址,它们通常被称为段基址;这样,8086/8088就有可能寻址1MB存储空间并将其分为若干个逻辑段,提供在内存中的重定位功能。
在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址。
(1)1000H (2)1234H (3)E000H (4)AB00H
解:(1)起始地址:10000H 结束地址:10000H+FFFFH=1FFFFH
(2)起始地址:12340H 结束地址:12340H+FFFFH=2233FH
(3)起始地址:E0000H 结束地址:E0000H+FFFFH=EFFFFH
(4)起始地址:AB000H 结束地址:AB000H+FFFFH=BAFFFH
微处理器在实模式下操作,对于下列CS:IP组合,计算出要执行的下条指令的存储器地址。(1)CS=1000H和IP=2000H (2)CS=2400H和IP=1A00
(3)CS=1A00和IP=B000H (4)CS=3456H和IP=ABCDH
解:(1)下条指令地址:10000H+2000H=12000H
(2)下条指令地址:24000H+1A00H=25A00H
(3)下条指令地址:1A000H+B000H=25000H
(4)下条指令地址:34560H+ABCDH=3F12DH
8086在使用什么指令时,用哪个存储器保存记数值?
解:在使用无条件重复指令REP时,CX寄存器用来保存记数值;