类?
答:1.8086最多可有256个中断。
2.按照产生中断的方法分为硬件中断和软件中断两大类。
2.26 非屏蔽中断有什么特点?可屏蔽中断有什么特点?分别用在什
么场合?
答:1.非屏蔽中断的特点有:中断请求从NMI引腿进入,不受中断允许标志IF的影响。非屏蔽中断只有一个,其中断类型码为2。
2.可屏蔽中断的特点有:中断请求从INTR引腿进入,只有在IF=1时CPU才响应该中断。可屏蔽中断有若干个,其中断类型码可以是5~255。
3.非屏蔽中断用来处理系统的重大故障,如掉电等。可屏蔽中断用在一般外部设备申请的中断中。
2.27 什么叫中断向量?它放在那里?对应于1CH的中断向量存放
在哪里?如果1CH的中断处理子程序从5110H:2030H开始,则中断向量应怎样存放?
答:1.中断处理子程序的入口地址就是中断向量。 2.中断向量放在0段的0~3FFH区域的中断向量表中。
3.对应于类型号为1CH的中断向量应放在00070~00073H的4个单元中。
4.若1CH的中断向量为5110H:2030H,则中断向量的存放方法为:00070H存放30H,00071H存放20H (IP);00072H存放10H,00073H存放51H (CS)。
2.28 从8086/8088的中断向量表中可以看到,如果一个用户想定义
某个中断,应该选择在什么范围?
答:应该选择在中断类型码为32(20H)~255(FFH)范围。
2.29 非屏蔽中断处理程序的入口地址怎样寻找?
答:CPU在响应NMI引腿的中断请求时,CPU并不需要从中断类型码计算中断向量的地址,而是直接从中断向量表中读取00008~0000BH这4个单元对应于中断类型2的中断向量就行了。CPU将00008H、00009H两个单元的内容装入IP,而将0000AH、0000BH两个单元的内容装入CS,于是就转入了对非屏蔽中断处理程序的执行。
2.30 叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断
响应后,堆栈顶部四个单元中为什么内容?
答:首先在CPU的INTR引腿上有可屏蔽中断请求输入,且IF=1。在当前指令执行完后,CPU发两个INTA中断响应负脉冲,外设接到第二个负脉冲后,立即往数据线上给CPU送来中断类型码。然后CPU取中断类型码,将标志FR推入堆栈,清除IF和TF,再将CS和IP推入堆栈来保护断点,进入中断处理子程序并执行,最后弹出IP和CS及标志而中断返回。中断响应后,堆栈顶部四个单元的内容分别是:IPL、IPH、CSL、CSH。
2.31 一个可屏蔽中断请求来到时,通常只要中断允许标志为1,便
可在执行完当前指令后响应,在哪些情况下有例外?
答:1.正好遇到CPU执行封锁指令时,必须等下一条指令执行完后才响应中断。 2.正好执行往段寄存器传送数据的指令,必须等下一条指令执行完后才响应中断。
3.执行WAIT或串操作指令时,可在指令执行中响应中断。
2.32 在对堆栈指针进行修改时,要特别注意什么问题?为什么?
答:1.必须先修改堆栈段寄存器SS的值,接着修改堆栈指针SP的值。
2.因为,CPU在修改段寄存器值时不响应中断,待下一条指令执行后才响应中断。这样对SS、SP的修改是一个完整的过程。否则先修改SP后修改SS则可能中断响应而分开修改,导致堆栈指针的错误,因此CS、IP、FR进入错误的堆栈区域而破坏该单元的数据或程序。
2.33 在编写中断处理子程序时,为什么要在子程序中保护许多寄存
器?有些寄存器即使在中断处理子程序中并没有用到也需要保护,这又是为什么(联系串操作指令执行时遇到中断这种情况来回答)?
答:1.因为中断处理子程序运行时需要使用CPU内部的寄存器,这些寄存器的值发生了改变。因此若不加保护在返回原程序时就修改了断点处的现场,而使程序不能正常运行。
2.因为串操作指令允许在执行过程中进入中断,若与串操作有关的寄存器未保护好,中断返回时串操作指令就不能正常继续运行。而且还有隐含寻址问题。
2.34 一个可屏蔽中断响应时,CPU要执行哪些读/写周期?对一个软
件中断又如何?
答:1.对可屏蔽中断响应,CPU要执行的读/写周期如下: ① 执行两个中断响应总线周期。并取得中断类型码。 ② 执行一个总线写周期。标志寄存器FR值入栈。 ③ 执行一个总线写周期。CS值入栈。 ④ 执行一个总线写周期。IP值入栈。
⑤ 执行一个总线读周期。读取中断处理子程序入口地址的偏移量→IP。 ⑥ 执行一个总线读周期。读取中断处理子程序入口地址的段地址→CS。 2.若是一个软件中断,则跳过上述第①步,而执行②~⑥步。
2.35 中断处理子程序在结构上一般是怎样一种模式?
答:① 保护中断时的现场,即保护CPU各寄存器的值。
② 一般应置IF=1来开放中断,以允许级别较高的中断请求进入。 ③ 中断处理的具体内容。 ④ 恢复中断时的现场。 ⑤ 中断返回指令。
2.36 软件中断有哪些特点?在中断处理子程序和主程序的关系上,
软件中断和硬件中断有什么不同之处?
答:1.软件中断有如下特点:
① 用一条中断指令进入中断处理子程序,并且,中断类型码由指令提供。 ② 进入中断时,不需要执行中断响应总线周期。 ③ 不受中断允许标志IF的影响。 ④ 软件中断的优先级最高。 ⑤ 软件中断没有随机性。
2.软件中断允许在主程序和中断处理子程序之间传递数据。而硬件中断由于是随机的,所以不能传递数据。
2.37 系统中有多个总线模块时,在最大模式和最小模式下分别用什
么方式来传递总线控制权?
答:1.8086/8088在最小模式下用总线控制联络信号(HOLD和HLDA)来传递总线控制权。
2.8086/8088在最大模式下用总线请求/总线允许信号及释放信号RQ/GT0和
RQ/GT1来传递总线控制权。
2.38 8086存储空间最大为多少?怎样用16位寄存器实现对20位地
址的寻址?
答:1.8086存储空间最大为220=1MB。
2.采用分段的方法实现16位寄存器实现对20位地址的寻址。
物理地址=段基址×10H+偏移地址
2.39 IBM PC/XT系统中,哪个区域为显示缓冲区?哪个区域用来存
放中断向量?在FFFF0H到FFFFFH单元中存放什么内容?
答:1.B0000H~B0F9FH约4KB为单色显示器的显示缓冲区;B8000~BBF3FH约16KB为彩色显示器的显示缓冲区。
2.00000H~003FFH共1KB区域用来存放中断向量。
3.在FFFF0H到FFFFFH单元中存放一条无条件转移指令,转到系统的初始化程序。
第三章 8086的寻址方式和指令系统 略 第四章 存储器和高速缓存技术
4.1 计算机的内存有什么特点?内存由哪两部分组成?外存一般指
哪些设备?外存有什么特点?
答:1.内存可被CPU直接访问,内存的存取速度快,内存的空间大小受到地址总线位数的限制。
2.内存由ROM和RAM两部分组成。
3.外存一般指软盘、硬盘、磁带机上的磁带及光盘。
4.外存的特点是大容量,所存信息即可修改,又可长期保存。但外存速度慢,要配置专用设备。
4.2 用存储器件组成内存时,为什么总是采用矩阵形式?请用一个
具体例子进行说明。
答:1.为了简化选择内存内部单元的地址译码电路及减少译码线数量。
2.例如,要组成1K字节的内存,若不用矩阵组织这些单元,而是将它们一字排开,就要1024条译码线才能实现对这些单元的寻址。译码电路也因此而很复杂。若用32×32来实现排列,就只要32条行选择线和32条列选择线就可以了。因此其译码电路也将变得较为简单。
4.3 为了节省存储器的地址译码电路,一般采用哪些方法?
答:① 存储器件按矩阵排列; ② 内存按模块结构设计; ③ 模块内再进行分组处理。
4.4 在选择存储器件时,最重要的考虑因素是什么?此外还应考虑
哪些因素?
答:1.最重要的考虑因素是:易失性、只读性、位容量和速度。 2.此外还应考虑:功耗、可靠性和价格等因素。
4.5 什么叫静态RAM?静态RAM有什么特点?
答:1.在电源不断电的情况下,信息一旦写入后不会丢失的RAM就叫静态RAM。 2.静态RAM的特点有:不需刷新,因此简化了外部电路;但位容量较类似方法
设计的动态RAM少,且功耗较大。
4.6 静态RAM芯片上为什么往往只有写信号而没有读信号?什么
情况下可以从芯片读得数据?
答:1.因为在存储器中,当允许信号有效之后,一定是进行读/写操作,非写即读。因此,只用写信号WE就可以即控制写操作,又控制读操作。在写操作时,写脉冲发生器送来一个负脉冲作为写入信号;在读操作时,写脉冲发生器不产生负脉冲,而是使WE端处于高电平,此高电平就用来作为读出信号。
2.当芯片允许信号CE=0及写信号WE=1时,可以从芯片上读得数据。
4.7 在对静态存储器进行读/写时,地址信号要分为几个部分?分别
产生什么信号?
答:1.地址信号分为三个部分。如:A19~A14,A13~A12,A11~A0。 2.例中A19~A14用来作为模块选择信号,地址译码器判断A19~A14给出的模块选择信号和本模块的约定信号是否匹配,如匹配,则再根据MRDC或MWTC产生内部的模块选择信号;A13~A12产生4个矩阵的芯片允许信号;A11~A0则作为矩阵内部的行地址和列地址。
4.8 动态RAM工作时有什么特点?和静态RAM比较,动态RAM
有什么长处?有什么不足之处?动态RAM一般用在什么场合?
答:1.动态RAM工作时需要对其存储的信息定时(约2ms)刷新一次。因此需要刷新控制电路来支持。
2.动态RAM的优点(长处)为:动态RAM的位密度高;动态RAM的功耗较低;动态RAM的价格低廉,适合于大容量使用。
3.动态RAM的缺点(不足之处)为:要配置刷新逻辑电路;在刷新周期中,内存模块不能启动读周期或写周期。
4.动态RAM一般用在大容量、低功耗场合。
4.9 动态RAM为什么要进行刷新?刷新过程和读操作比较有什么
差别?
答:1.因为动态RAM是利用电容的存储作用来保存信息的,但电容由于放电或泄漏,电荷保存时间较短(约2ms),若不及时补充电荷会使存放的数据丢失,因此需定时刷新以补充所需要的电荷。
2.刷新过程是由刷新逻辑电路定时完成的,且每次对所有模块的一行同时刷新,数据不输出,数据总线处于高阻状态。读过程是随机的,每次选中一个存储单元(8位),且数据输出到数据总线上。
4.10 动态RAM控制器完成什么功能?Intel 8203从功能上分为哪两
部分?叙述这两部分的工作原理。
答:1.动态RAM控制器要完成的功能有:刷新定时器产生刷新周期并提供各种时序信号,并对CPU的读/写操作及刷新操作进行仲裁;刷新地址计数器提供刷新用的行地址,并通过多路转换器进行地址切换。
2.Intel 8203从功能上分为:地址处理部分和时序处理部分两个。
3.地址处理部分用来处理动态RAM正常读/写时的地址信号(正常的行/列地址合用一组地址线的区分)和刷新过程中的地址信号(区分正常的行地址及刷新周期的行地址)。时序处理部分通过一个基准时钟来产生各种时序;通过一个仲裁器来解决刷新请求和内存正常读/写请求之间的矛盾。内部有两级同步电路用来对外部请求信号实现同步。