(完整版)微机原理课后单元习题-单元2-8086cpu
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题二 8086微处理器
答案
主要内容:主要介绍8086/8088CPU内部结构。了解80X86CPU的特点。
2.1 8086 CPU在内部结构上由哪几部分组成?其功能是什么?
【答】8086的内部结构分成两部分。总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。
2.2 8086的总线接口部件有那几部分组成? 其功能是什么?
【答】8086的总线接口部件主要由下面几部分组成:4个段寄存器CS/DS/ES/SS,用于保存各段地址;一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址;一个20位地址加法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于内总线与外总线的连接。
2.3 8086的执行单元(部件)由那几部分组成?有什么功能?
【答】8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄存器组。
(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。
(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。
(3)标志寄存器,使用9位,标志分两类。其中状态标志6位,存放算数逻辑单元ALU 运算结果特征;控制标志3位,控制8086的3种特定操作。
(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。
2.4 8086内部有哪些通用寄存器?
【答】四个16位数据寄存器AX、BX、CX、DX,二个指针寄存器SP、BP, 二个变址寄存器SI、DI。这些寄存器使用上一般没有限制,但对某些特定指令操作,必须使用指定寄存器,可参考后面指令系统章节。
2.5 8086内部有哪些段寄存器?各有什么用途?
【答】四个16位段寄存器:CS、DS、SS、ES,分别保存代码段、数据段、堆栈段与扩展段的段地址。
2.6 8086CPU状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086的状态
标志和控制标志分别有哪些?
【答】(1)标志分两类:状态标志(6位),反映刚刚完成的操作结果情况。控制标志(3位),在8086特定指令操作中起控制作用。
(2)利用状态标志可以掌握当前程序操作的结果,例如了解是否产生进位,是否溢出等。例如利用控制标志可以控制程序的单步调试。
(3)状态标志包括:包括零标志ZF、符号标志SF、奇偶标志PF、进位标志CF、辅助进位标志AF、溢出标志OF。控制标志包括:单步运行标志TF、方向标志DF与中断允许标志IF。
2.7 8086/8088和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么
优点? 8086CPU执行转移指令时,指令队列寄存器内容如何变化?
【答】(1)传统的计算机一般按照取指令、指令译码与执行指令的串行步骤工作。
(2)在8086CPU中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,两个单元重叠并行工作,这种机制称为流水线,这种工作方式有力的提高了CPU的工作效率。
(3)8086CPU执行转移指令时,首先清空当前指令队列寄存器,然后从新地址取指令重新填满指令队列。
2.8 8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存?【答】为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数据总线上。而在8086CPU中AD0~AD15总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器中,而用后一部分周期传送数据。8086CPU中是通过CPU送出的ALE高电平信号来控制锁存的。
2.9 将两数相加,即0100 1100加 0110 0101,CF、PF、AF、ZF、SF、OF各为何值?【答】0100 1100+0110 0101=10110001
CF=0,PF=1,AF=1,ZF=0,SF=1,OF=1
2.10 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的?一个具有32
位地址线的CPU,其最大物理地址为多少?
【答】存储器的逻辑地址由段地址与段内偏移地址组成。存储器的物理地址:将16位段地址左移4位后,加上16位段内偏移地址,形成20位物理地址。一个具有32位地址线
2=4*1024*1024*1024B=4GB。
的CPU,其最大物理地址为32
2.11 存储器物理地址400A5H~400AAH单元现有6个字节的数据分别为11H,22H,33H,
44H,55H,66H,若当前(DS)= 4002H,请说明它们的偏移地址值。如果要从存储器中读出这些数据,需要访问几次存储器,各读出哪些数据?
【答】由于:物理地址=400A5H=段地址*16+偏移地址=40020H+偏移地址
偏移地址=400A5-40020=85H
若以最少访问次数而言,可以如下操作:从奇地址400A5H中读出一个字节11H;
从偶地址开始400A6H、400A7两个单元读出一个字3322H;从偶地址400A8H、400A9H 两个单元读出一个字5544H;从偶地址400AAH中读出一个字节66H。最少读4次。2.12 在 8086中,逻辑地址FFFFH∶0001H、00A2H∶37F0H和B800H∶173FH的物理地址分
别是多少?
【答】(1)FFFFH*16+0001H=FFFF0H+0001H=FFFF1H
(2)00A20+37F0=4210H
(3)B8000+173F=B973FH
2.13 在 8088/8086中,从物理地址12388H开始顺序存放下列三个双字节的数据,651AH,
D761H和007BH,请问物理地址12388H~1238DH6个单元中分别是什么数据?
【答】物理地址12388H~1238DH单元中的数据如下表:Array
2.14 8086/8088 CPU 有40条引脚,请按功能对它们进行分类?
【答】地址总线:AD0~AD15,A16~A19;
数据总线:AD0~AD15;
控制总线:ALE, DEN, DT/R, BHE, M/IO, WR, RD, HOLD, HLDA, INTR, INTA, READY, RESET.
2.15 8086/8088 CPU的地址总线有多少位?其寻址范围是多少?
2=1MB.
【答】8086/8088CPU的地址总线均为20位,8086/8088CPU的寻址范围为20
2.16 8086/8088 有两种工作方式,它们是通过什么方法来实现?在最大方式下其控制信号怎样