微机原理第二章习题答案

更新时间:2023-05-12 13:46:29 阅读: 评论:0

2.3 习题解答
1.选择题:
答案:(1)E 
(2)A (3)D (4)C 
2.填空题:
答案:
a)EU ,16,BIU ,BIU ,20 b)
20,4,状态c)
0FFFF0H ,ROM ,跳转d)
2,512K ,奇地址,BHE e)
64K ,16 f)逻辑地址g)空闲h)总线请求(输入)/总线请求允许(输出),GT /RQ 0,1GT /RQ 3.8086/8088 CPU 的地址总线有多少位?其寻址范围是多少?
答:8086/8088 CPU 的地址总线共20位,最大可寻址1MB 空间。
4.什么是总线?一般微计算机中有哪些总线?
答:总线是微机系统之间、系统各模块之间或模块内部以及芯片内部各部分之间用来传送信息的公共信息通路,是计算机传送信息的一组导线,它将各部件连接成一个整体。
总线有多种分类方法,按总线在微机中所处位置的不同(或按总线上信息传送范围的不同)来看,微机中包括片内总线、片间总线、系统内总线和系统外总线四级总线。
5.8086/8088 CPU 分为哪两个部分?各部分主要由什么组成?
答:8086/8088 CPU 分为总线接口部件(BIU )和执行部件(EU)两个部分。其中:
BIU 包括:4个16位的段地址寄存器(CS 、DS 、SS 、ES);
1个16位的指令指针寄存器IP ;
1个20位的地址加法器;
指令队列寄存器;
内部寄存器;
输入输出总线控制逻辑;
EU 包括:4个16位的通用数据寄存器(AX 、BX 、CX 、DX);
4个16位的专用寄存器(BP 、SP 、SI 、DI);
1个16位的标志寄存器FR ;
6.什么叫指令队列?8086/8088 CPU 中指令队列有什么作用?其长度分别是多少字节?
答:指令队列是用来暂存指令的一组寄存器,按“先进先出”原则读写。
在8086/8088 CPU 中,只要指令队列未填满,BIU 就从外部存储器取指令并放入指令队列中;另一方面,只要指令队列中不空,EU 就可将指令队列中已有的指令取出执行,这样BIU 和EU 按并行方式重叠操作,大大提高了CPU 的利用率,也降低了CPU 对存储器、I/O 端口存取速度的要求。
8086CPU 中的指令队列缓冲器长度为6个字节,而8088CPU 只有4个字节。个字节。
7. 8086/8088 CPU 中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存
器亦可作为地址寄存器使用?几个寄存器亦可作为地址寄存器使用?
答:8086/8088 CPU 中共有:中共有:
8个16位的通用寄存器AX 、BX 、CX 、DX 、BP 、SP 、SI 、DI ;
2个变址寄存器SI 、DI ;
2个指针寄存器BP 、SP ;
其中BX 、BP 、SI 、DI 亦可作地址寄存器。亦可作地址寄存器。
8. 8086/8088 CPU 中有哪些标志位?它们的含义和作用如何?中有哪些标志位?它们的含义和作用如何?
答:8086/8088 8086/8088 CPU
CPU 中共有9个标志位,其中DF 、IF 和TF 为控制标志位,其余6个为状态标志位。它们的含义和作用如下所示:为状态标志位。它们的含义和作用如下所示:
CF (Carry Flag )进位标志:若算术运算的结果产生了进位或借位(对字节操作最
高位是D 7位;对字操作最高位是D 15位),则CF=1,否则CF =0。
PF (Parity/Even Flag )奇偶标志:如果运算结果中含有偶数个1,则PF =1,否则
PF=0。此标志位主要用于数据通信中,检测数据传送有无出错。。此标志位主要用于数据通信中,检测数据传送有无出错。  AF (Auxiliary Carry Flag )辅助进位标志:用于反映一个字节(字的低字节)的低
)辅助进位标志:用于反映一个字节(字的低字节)的低4位向高4位有无进位(借位)的情况,有进(借)位时,AF =1,否则AF
=0。这个标志位主要用于实现BCD 码算术运算所需的二-十进制调整之用。十进制调整之用。
ZF (Zero Flag )零标志:若运算结果为0,此标志为1;否则ZF =0。
SF (Sign Flag )符号标志:因为补码运算的最高位是符号位,所以它和运算结果的
最高位(字节操作是D 7位,字操作是D 15位)状态相同。当运算结果为负时,
SF =1;否则SF =0。
OF (Overflow Flag )溢出标志:)溢出标志:在带符号数的加或减运算中结果超出在带符号数的加或减运算中结果超出在带符号数的加或减运算中结果超出  8位或16位
符号数所能表示的数值范围符号数所能表示的数值范围(-(-128~127或-32768~+32767)时,产生溢出
使OF=1,否则OF =0。
DF (Direction Direction Flag Flag )方向标志位:此标志位用以控制串操作指令地址指针的步进方向。每执行一条串操作指令,对地址要进行一次调整(对字节操作为加1或
减1,对字操作为加2或减2)。方向标志DF 决定地址是增量还是减量。若DF
=1,串地址为减量;DF =0,则为增量。,则为增量。
IF (Interrupt Interrupt Enable Enable Enable Flag Flag )中断允许标志位:也称为开中断标志位。若使IF =1,
则CPU 允许接受外部来的可屏蔽中断源发出的中断请求;允许接受外部来的可屏蔽中断源发出的中断请求;若使若使IF =0,则表示
CPU 不响应此中所请求。IF 对非屏蔽中断及CPU 内部中断请求均不起作用。内部中断请求均不起作用。
TF (Trap Trap Flag Flag )陷阱标志位:也称为跟踪标志位。若TF=1,则,则  CPU 处于单步执
行指令的工作方式。在这种工作方式下,CPU 每执行完一条指令就自动地产生
一次类型为1的内部中断,可以借此检查这条指令的执行情况。的内部中断,可以借此检查这条指令的执行情况。
9. 什么是堆栈?它有什么用途?堆栈指针的作用是什么?举例说明堆栈的操作。
答:堆栈是一个按照后进先出(LIFO )的原则存取数据的存储区域。堆栈的作用是为了在调用子程序了在调用子程序(或转向中断服务程序)(或转向中断服务程序)(或转向中断服务程序)时,时,时,把断点及有关的寄存器、把断点及有关的寄存器、把断点及有关的寄存器、标志位及时正确地保标志位及时正确地保存下来,并保证逐次正确返回。利用堆栈指针SP 可以实现对栈区的自动管理。可以实现对栈区的自动管理。
例如:要把AX 寄存器中的内容压入堆栈,用入栈指令PUSH  AX (设SP 原值为1000H ),其操作过程如下所示:其操作过程如下所示:
第一步:先把SP -l →SP ,然后把AH (高位字节)送入SP 所指单元(即SP=1FFFH ); 第二步:再次使SP -1→SP ,把AL (低位字节)送至SP 所指单元(此时SP=1FFEH ); 数据出栈操作与入栈过程正相反:弹出时,先把AL 内容弹出,然后修改SP +1→SP ;再把AH 内容弹出,再修改SP +1→SP 。
10. 对于由8086/8088 CPU 组成的系统,组成的系统,堆栈的位置如何确立?堆栈的首址堆栈的位置如何确立?堆栈的首址堆栈的位置如何确立?堆栈的首址(即(即SS 中的值)是不是栈底?为什么?是不是栈底?为什么?
答:8086/8088系统中堆栈的位置由SS 和SP 初始化后确立:其中(SS )*16决定了堆栈段起始单元的地址,即堆栈段首址;(SS )*16+(SP 初值)决定了堆栈段最后一个单元的地址,即栈底;(SS )*16+(SP 现值)决定了堆栈段当前可用单元的地址,即栈顶。现值)决定了堆栈段当前可用单元的地址,即栈顶。
显然,堆栈首址并不是栈低。一般来说,在堆栈所在的内存区内,栈底为高地址端。堆栈初始化后,未压入数据时,栈底与栈顶是重合的。当堆栈压入数据后,栈顶地址总是小于栈底地址,位于低地址端。栈底地址,位于低地址端。
11. Intel 8086与8088有何区别?有何区别?
答:8086与8088的区别主要表现在以下几个方面:的区别主要表现在以下几个方面:
第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列。而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码。
第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位。注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同。线连接方式的不同。
第三、其他不同的引脚定义:(1)AD 15~AD 0,在8086中为地址/数据复用,而在8088中AD 15~AD 8改为A 15~A 8只作地址线用;(2)34、28号引脚定义不同。号引脚定义不同。
12. 8086/8088 8086/8088 CPU CPU 工作在最小模式时:当CPU 访问存储器时,要利用哪些信号?当CPU 访问外设接口时,要利用哪些信号?当HOLD 有效并得到响应时,CPU 的哪些信号被置成高阻?高阻?
答:8086/8088 CPU 工作在最小模式时,若访问存储器,需用到以下信号:M/IO 、ALE 、 DT/R 、DEN 、READY 、BHE 、WR 、RD 、AD 0~AD 15、A 19/S 6~A 16/S 3。若访问外设,需用到以下信号:M/IO 、ALE 、 DT/R 、DEN 、READY 、WR 、RD 、AD 0~AD 15。
当HOLD 有效并得到响应时,8086/8088 8086/8088 CPU
CPU 的所有具有三态的输出线将处于浮空状态,即被置成高阻,8086/8088 CPU 放弃对总线的控制权。这些具有三态的输出线包括地址/数据总线和控制总线中的大部分如M/IO 、DT/R 、DEN 、WR 、RD 、INTA 等。等。
13. 当8086/8088 8086/8088 CPU CPU 工作在最大模式时,S 2、S 1、S 0可以表示CPU 的哪些状态?RQ/GT 信号的作用是什么?信号的作用是什么?
答:8086/8088 8086/8088 CPU
CPU 工作在最大模式时,S 2、S 1、S 0状态信号经8288总线控制器译码产生对存储器、I/O 端口访问所需的控制信号。端口访问所需的控制信号。
状态输入状态输入
CPU 总线周期总线周期
8288输出命令输出命令  2S  1S  0S  0 0 0 中断响应中断响应
INTA  0 0 1 读I/O 端口端口
IORC  0 1 0 写I/O 端口端口
IOWC ,AIOWC  0 1 1 停机停机  无
1 0 0 取指令
取指令 MRDC
1 0 1 读存储器
读存储器 MRDC
1 1 0 写存储器
写存储器 MWTC,AMWC
1 1 1 无无
总线请求/允许信号线RQ/0
GT是为8086/8088和其它处理器(如8087/8089)
GT和RQ/1
使用总线而提供的一种仲裁机制。
使用总线而提供的一种仲裁机制。
14.试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:
试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:
(1)1278H+3469H 
答:CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1 
(2)54E3H-27A0H 
答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=0 
(3)3881H+3597H 
答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1 
(4)01E3H-01E3H 
答:CF=0 AF=0 ZF=1 SF=0 OF=0 PF=1 
其中,进位标志CF用于判别无符号数运算是否超出数的表示范围,而溢出标志OF用于判别带符号数运算是否超出数的表示范围。
于判别带符号数运算是否超出数的表示范围。
”的个数为奇数还是偶数。
奇偶标志PF只能判断结果低8位中“1”的个数为奇数还是偶数。
15.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?
什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?
答:逻辑地址由两个16位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。
元的地址,一般只出现在地址总线上。
由于8086/8088CPU中的寄存器只有16位长,所以程序不能直接存放20位的物理地址,而必须借助逻辑地址,即用两个16位的寄存器来表示物理地址。他们之间的关系是:物理+偏移量;另外,一个物理地址可对应多个逻辑地址。
地址=段基址*16+偏移量;另外,一个物理地址可对应多个逻辑地址。
16.什么是段基值?什么是位移量?它们之间有何联系?
什么是段基值?什么是位移量?它们之间有何联系?
答:段基址即段起始地址,它的高16位地址存放在段寄存器中,称之为段基值(低4位一般为0)。存储器单元所在的位置距离段起始地址的偏移量称之为位移量。程序中一个存储单元的实际地址(即物理地址)是由这两部分共同表示的。
存储单元的实际地址(即物理地址)是由这两部分共同表示的。
17.若CS为0A000H,试说明现行代码段可寻址物理空间的范围。
,试说明现行代码段可寻址物理空间的范围。
答: 因为8086系统中可寻址的最大逻辑段长度为64K,所以当CS为0A000H,即段答:
现行代码段可寻址物理空间的范围为:0A0000H ~ 0AFFFFH。基址为CS*16=0A0000H时,
时,现行代码段可寻址物理空间的范围为:
18.设现行数据段位于存储器0B0000H~0BFFFFH单元,DS段寄存器内容为多少?
段寄存器内容为多少?
答: DS段寄存器内容为0B000H。
答:
19.8086/8088 CPU使用的存储器为什么要分段?怎么分段?
使用的存储器为什么要分段?怎么分段?
答:在8086/8088CPU中,ALU的运算是16位的,有关的地址寄存器如SP、IP以及BP、SI、DI等都是16位的,因而对地址的运算也只能是16位。也就是说对8086/8088而
言,各种寻址方式下寻找操作数的范围被限制在64KB 以内。而8086/8088有20条地址线,它的直接寻址能力为1MB 。这就产生了一个矛盾,即16位的地址寄存器如何去寻址20位的存储器物理地址。解决这个问题是靠存储器分段实现的:将整个1MB 的内存储器以64KB 为单位分为若干段。寻址一个具体物理地址时,必须要由一个段地址(基地址)左移4位(即乘16)再加上由SP (或IP 、BP 、SI 、DI )等寄存器之值表示的、可由CPU 处理的16位偏移量来形成实际的20位物理地址;其中段地址(或基地址)是由8086/8088中的段寄存器形成的。形成的。
20. 已知当前段寄存器的基值(DS )=021FH ,(ES )=0A32H ,(CS )=234EH ,则上述各段在存储器空间中物理地址的首址及末地址号是什么?在存储器空间中物理地址的首址及末地址号是什么?
答:数据段:答:数据段:    021F0H~121EFH 
附加段:附加段:    0A320H~1A31FH 
代码段:代码段:    234E0H~334DFH 
21. 若(CS )=5200H 时,物理转移地址为5B230H ,则当CS 的内容被设定为7800H ,物理转移地址应为多少?转移地址应为多少?
答:按题目条件可知该转移地址距CS 所指代码段的段基址的偏移量为9230H (即= 5B230H-52000H ),因此若(CS )=7800H ,则物理转移地址应为:78000H +9230H=81230H 。
22. 若8086工作于最小方式,试指出当工作于最小方式,试指出当  CPU 完成将AH 中的内容送到物理地址为9100H 的存储单元操作时,的存储单元操作时,以下哪些引脚信号出现过低电平:以下哪些引脚信号出现过低电平:BHE /S 7、RD 、WR 、M/IO 、DT/R ?
答:WR 引脚信号出现过低电平。引脚信号出现过低电平。
23. 若8086工作于最大方式,试指出当CPU 完成将CL 内容传送到物理地址为91003H 单元的操作时,8288输出的哪些总线命令信号应变为有效(低电平)?输出的哪些总线命令信号应变为有效(低电平)?
答:MWTC (存储器写命令)和DEN (数据有效命令)信号应变为有效。(数据有效命令)信号应变为有效。
24. 8086CPU 工作在最小模式(单CPU )和最大模式(多CPU )的主要特点是什么?有何区别?区别?
答:8086 8086 CPU
CPU 工作于最小模式是用来组成单处理器微机系统,此时8086 8086 CPU CPU 直接提供所有的总线控制信号。供所有的总线控制信号。
而8086 CPU 工作于最大模式是构成多处理器/协处理器微机系统(所谓多处理器系统即在一个系统中有两个或两个以上的微处理器)。8288总线控制器是8086在最大模式下不可缺少的器件。8288对8086的总线状态码2S 、1S 、0S 进行译码,以产生与多总线结构兼容的各种定时命令和控制信号。的各种定时命令和控制信号。
25. 某系统中已知当前(SS )=2258H ,(SP )=0800H ,说明该堆栈段在存储器中的物理地址范围。若当前堆栈中存入10个字节数据,那么SP 内容应为什么值?内容应为什么值?
答:堆栈段在存储器中的物理地址范围为:22580H~22D80H ,其中22580H (=2258H*16)
为堆栈段的段基址,而22D80H (=2258H*16+0800H )为栈底地址。在存入10个字节数据后SP 内容应为07F6H (=0800H-0AH )。
26. 8086 8086 CPU CPU 读/写总线周期包含多少个时钟周期?什么情况下需要插入T W 等待周期?T W 的多少取决于什么因素?什么情况下会出现空闲状态T 1?
答:8086 CPU 的基本读/写总线周期包括4个时钟周期。在某些情况下,被写入数据或

本文发布于:2023-05-12 13:46:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/600132.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地址   总线   标志   寄存器   堆栈   指令   信号   字节
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图