微机原理及接口技术课后习题及参考答案 下载本文

内容发布更新时间 : 2024/12/22 20:23:19星期一 下面是文章的全部内容请认真阅读。

2164(8K×4):片内13根和片间5根地址线。 21256(32K×4):片内15根和片间3根地址线。

5.14答:一片6264的存储容量是8K×8位,而地址范围为BE000H~BFFFFH,所以只要一片。

低13位地址线是片内译码,高7位是片选译码(A19~A13为:1010111)。

5.15答:低16位地址线是片内译码,高4位是片选译码(A19~A16为:1100)。只有A19~A16为1100与A0=1同时出现才能选中偶地址存储体;只有A19~A16为1100与

=0同时出现才能选中奇地址存储体。只有器;只有

和IO/

同时为0才能写存储器。

和IO/

同时为0才能读存储

5.16 答:为了解决CPU和内存速度差距大的问题。

5.17答:全相联:主存的一个块可能放置到Cache的任何一块。命中率最高,查找机制复杂,代价大。

直接映像:主存的一个块可能放置到Cache的唯一一块。失效率最高,查找机制简单,代价小。

组相联:主存的一个块可能映像到Cache的任何一组。命中率和查找机制介于前两者之间。

5.18答:有如下三个解决方法: ① 通写式(write through)

如果用这种方法,那么,每当CPU把数据写到Cache中时,Cache控制器会立即

把数据写入主存对应位置。所以,主存随时跟踪Cache的最新版本,从而,也就不会出现主存将新数据丢失的问题。此方法的优点是简单,缺点就是每次Cache内容有更新,就有对主存的写入操作,这样,造成总线活动频繁,系统速度较慢。 ② 缓冲通写式(buffered write through)

这种方式是在主存和Cache之间加一个缓冲器,每当Cache中作数据更新时,也对主存作更新,但是,要写入主存的数据先存在缓冲器中,在CPU进入下一个操作时,缓冲器中的数据写入主存,这样,避免了通写式频繁写主存而导致系统速度较低的缺点。不过用此方式,缓冲器只能保持一次写入数据,如果有两次连续的写操作,CPU还是要等待。

③ 回写式(write back)

用这种方式时,Cache每一个块的标记中都要设置一个更新位,CPU对Cache中的一个块写入后,其更新位置1。当Cache中的块要被新的主存块替换时,如更新位为1,则Cache控制器先把Cache现有内容写入主存相应位置,并把更新位清0,再作替换。所以,用回写式时,只要更新的块不被替换,那么就不会写入主存,这样,真正写入主存的次数可能少于程序的写入次数,从而,可以提高效率。但是,用这种方式,Cache控制器比较复杂。

习题6

6.1、 试说明一般中断系统的组成和功能。

6.2、 什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?

6.3、 什么是硬件中断和软件中断?在PC机中两者的处理过程有什么不同? 6.4、 试叙述基于8086/8088的微机系统处理硬件中断的过程。

6.5、 在PC机中如何使用“用户中断”入口请求中断和进行编程? 6.6、8259A中断控制器的功能是什么?

6.7、8259A初始化编程过程完成那些功能?这些功能由那些ICW设定?

6.8、8259A在初始化编程时设置为非中断自动结束方式,中断服务程序编写时应注意什么?

6.9、8259A的初始化命令字和操作命令字有什么区别?它们分别对应于编程结构中那些内部寄存器?

6.10、8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别? 6.11、80X86的中断系统有哪几种中断类型?其优先次序如何?

6.12、什么是中断向量表?若编制一个中断服务程序,其中断类型约定为80H,则它的入口地址(包括段地址和偏移地址)应放置在中断向量表中的哪几个单元?

6.13、简述80X86CPU对可屏蔽中断INTR的响应过程。

6.14、若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE24H,则对应该中断源的中断向量表内容是什么,如何定位?

6.15、试按照如下要求对8259A设定初始化命令字:8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。中断类型码为20H~27H,8259A的端口地址为B0H和B1H。 6.16、给定SP=0100H、SS=2010H、PSW=0240H,在存储单元中已有内容为(00084)=107CH、(00086H)=00A7H,在段地址为13C2H及偏移地址为0210H的单元中,有一条中断指令INT 21H。试指出在执行INT 21H指令,刚进入它的中断服务程序时,SS、SP、CS、IP、PSW的内容是什么?栈顶的3个字的内容是什么(用图表示)?

6.17、中断处理程序的入口处为什么通常需要使用STI指令?

6.18、试编写这样一个程序段,它首先读出8259A中IMR寄存器的内容,然后屏蔽掉除IR1以外的其它中断。设8259A的偶地址端口为20H,奇地址端口为21H。 6.19、假设某80X86系统中采用一片8259A芯片进行中断管理。设8259A工作在全嵌套工作方式下,采用非自动结束中断命令,中断请求采用边沿触发方式,IR0所对应的中断类型号为80H。8259A在系统中的端口地址为280H和281H,试编写该系统中8259A的初始化程序段。

习题六 参考答案

6.1、答:处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。系统中请求中断处理的I/O接口电路要有提供中断请求信号及接收中断响应信号的逻辑。

6.2、答:处理机可处理的每种中断的编号为中断类型码。中断向量是指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。

6.3、答:硬件中断是通过中断请求线输入电信号来请求处理机进行中断服务;软件中断是处理机内部识别并进行处理的中断过程。硬件中断一般是由中断控制器提供中断类型码,处理机自动转向中断处理程序;软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。

6.4、答:以INTR请求为例。当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,清除IF、TF;8086将类型码乘4后得到中断向量入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。

6.5、答:PC机中分配给用户使用的中断是IRQ9,经扩展插槽B4引出,故把用户的中断请求线连接到B4上。在应用程序中,利用25H号系统调用将中断服务程序的入口地址写入对应0AH类型中断对应的中断向量表中去。在应用程序中把主片8259A D2屏蔽位清0,把从片8259A D1屏蔽位清0,使主片的IR2、从片的IR1可以输入中断请求。中断服务程序结束前向主片8259A发中断结束命令。应用程序结束之前对主片的IR2和从片的IR1进行屏蔽,关闭用户中断请求。

6.6、答:8259A中断控制器可以接受8个中断请求输入并将它们寄存。对8个请

求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。8259A支持多种中断结束方式。8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A可以进行级连以便形成多于8级输入的中断控制系统。

6.7、答:初始化编程用来确定8259A的工作方式。ICW1确定8259A工作的环境:处理器类型、中断控制器是单片还是多片、请求信号的电特性。ICW2用来指定8个中断请求的类型码。ICW3在多片系统中确定主片与从片的连接关系。ICW4用来确定中断处理的控制方法:中断结束方式、嵌套方式、数据线缓冲等。 6.8、答:在中断服务程序中,在返回主程序之前按排一条一般中断结束命令指令,8259A将ISR中最高优先级位置0,结束该级中断处理以便为较低级别中断请求服务。

6.9、答:8259A的工作方式通过微处理器向其写入初始化命令字来确定。初始化命令字分别装入ICW1~ICW4内部寄存器。8259A在工作过程中,微处理器通过向其写入操作命令字来控制它的工作过程。操作命令字分别装入OCW1~OCW3内部寄存器中。8259A占用两个端口号,不同的命令字对应不同的端口,再加上命令字本身的特征位及加载的顺序就可以正确地把各种命令字写入对应的寄存器中。

6.10、答:IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。

6.12、 答:中断服务程序第一条指令所在的地址称为该中断服务程序的中断向

量。存放在00200H、00201H 、00202H、00203H四个内存单元中,其中00200H、00201H两个单元中存放的是偏移地址,00202H、00203H两个单元中存放的是段地址。

6.14、答:中断向量表入口地址为:0段的0090H地址。对应4FE24H中断服务程序入口,在向量表中定位情况:(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH。

6.15、答:ICW1=1BH (送B0H端口),ICW2=20H (送B1H端口),ICW4=03H (送B1H端口)

6.16、答:SS=2010H, SP=00FAH, CS=00A7H, IP=107CH, PSW=0040H。

栈顶三个字的内容为:

000FA12H H

000FB02H H

000FCC2H H

000FD13H H

000FE40H H

000FF02H H