《微机原理与接口技术》课后习题答案 下载本文

送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,可以是1位、1.5位或2位。停止位是一个字符数据的结束标志。在异步通信中,字符数据以图所示的格式一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“1”状态,每个字符数据的传送均以逻辑“0”开始。

15.什么是波特率?假设异步传输的一帧信息由1位起始位、7位数据位、1位校验位和1位停止位构成,传送的波特率为9 600,则每秒钟能传输的字符个数是多少?

解:波特率表示每秒钟传送二进制的位数。每秒钟能传输的字符个数为9600/10=960

16.一个异步串行发送器,发送的字符格式为:1位起始位,7位数据位,1位奇偶校验位和2位停止位,若每秒发送100个字符,则其波特率为多少? 解:波特率为100×11=1100。

17.RS一232C的逻辑电平是如何定义的?它与计算机连接时,为什么要进行电平转换? EIA-RS-232C 对电器特性、逻辑电平和各种信号线功能都作了规定。 在TxD和RxD上:

逻辑1(MARK)=-3V~-15V 逻辑0(SPACE)=+3~+15V

在RTS、CTS、DSR、DTR和DCD等控制线上: 信号有效(接通,ON状态,正电压)=+3V~+15V 信号无效(断开,OFF状态,负电压)=-3V~-15V

以上规定说明了RS-232C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。

EIA RS-232C 与TTL转换:EIA RS-232C 是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA RS-232C 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换。

17

第七章

1.在中断响应过程中,8086往8259A发的两个INTA#信号分别起什么作用?

解:59A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0; 当8259A接收到第二个/INTA有效的负脉冲后,就将其中断类型号送入数据总线。 2.8086最多可有多少级中断?按照产生中断的方法分为哪两大类?

解:8086最多可有8级中断。按照产生中断的方法分为硬件中断和软件中断两大类。 3.非屏蔽中断有什么特点?可屏蔽中断有什么特点?分别用在什么场合?

解:非屏蔽中断不受CPU中断标志的影响,无论中断标志是允许中断或禁止中断,在非屏蔽中断引线上的中断请求,CPU在当前指令执行完以后,都要影响此中断。可屏蔽中断则受中断标志影响,只是在开中断(允许中断)情况下,CPU才响应可屏蔽中断。非屏蔽中断,使用在CPU必须要响应的场合,例如电源故障等

4.什么叫中断向量?它放在哪里?对应于ICH的中断向量存放在哪里?如果1CH的中断处理子程序从5110H:2030H开始,则中断向量应怎样存放? 答:中断向量是用来提供中断入口地址的一个地址指针; 对应于lCH的中断向量存放在1CH×4=70H开始的4个单元

如果1CH的中断处理子程序从5110H:2030H开始,则中断向量应如下存放: 0070H:30H 0071H:20H 0072H:10H 0073H:51H

5.从8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么范围?

解:从8086/8088的中断向量表中可以看出,由于系统占用了部分中断类型码,主要包括: (1) 专用中断:0~4,占中断向量表000~013H。 (2) 系统备用中断:5~31H (3) 用户使用中断:32H~0FFH

如果一个用户想定义一个中断,可以选择中断类型码32H-FFH,其中断向量在中断向量表的0C8H-01BFH。

6.非屏蔽中断处理程序的入口地址怎样寻找?

解:非屏蔽对应类型2,它位于中断向量表0000:0008H-0000:000BH处,4个单元的值即为非屏蔽中断处理程序的入口地址:08H、09H放偏移量,0AH、0BH放段地址。

7.叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元中是什么内容?

解:当CPU在INTR引脚上接受一个高电平的中断请求信号并且当前的中断允许标志为1,CPU就会在当前指令执行完后开始响应外部的中断请求,具体如下: 1、 从数据总线上读取外设送来的中断类型码,将其存入内部暂存器中; 2、 将标志寄存器的值推入堆栈; 3、 将标志寄存器中IF 和TF清零; 4、 将断点保护到堆栈中;

5、 根据中断类型获取中断向量转入中断处理子程序; 6、 处理完后恢复现场。 响应后堆栈的顶部4个单元是IP,CS。

8.一个可屏蔽中断请求来到时,通常只要中断允许标志为1,便可在执行完当前指令后响

18

应,在哪些情况下有例外?

解:如果发出中断请求信号时,正好碰到CPU执行封锁指令,由于CPU 封锁指令和下一条指令合在一起看成一个整体,所以必须等到下一条指令执行完后才响应中断。如果是执行往寄存器传送数据指令,那一定要等下一条指令执行完后,才允许中断。无总线请求;CPU执行完当前指令。

9.在编写中断处理子程序时,为什么要在子程序中保护许多寄存器?

解:因为在用户程序运行时,会在寄存器中有中间结果,当在中断服务程序中要使用这些寄存器前要把这些寄存器的内容推至堆栈保存(称为保护现场)。在从中断服务程序返回至用户程序时把这些内容从堆找恢复至寄存器中(称为恢复现场)。 10.中断指令执行时,堆栈的内容有什么变化?中断处理子程序的入口地址是怎样得到的? 解:中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且SP减2。中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单元两个字节为中断入口地址的偏移地址 11.中断返回指令IRET和普通子程序返回指令RET在执行时,具体操作内容有什么不同? 解:因为在响应中断时,CPU保护标志寄存器和保护断点。所以,IRET指令要恢复断点和标志寄存器。

12.若在一个系统中有五个中断源,它们的优先权排列为:1、2、3、4、5,它们的中断服务程序的入口地址分别为:3000H、3020H、3050H、3080H、30A0H。编一个程序,使得当有中断请求CPU响应时,能用查询方式转至申请中断的优先权最高的源的中断服务程序。 13.设置中断优先级的目的是什么?

解:若有多个外设同时请求中断,它们之间是有轻重缓急的,设置中断优先级就能使CPU按照轻重缓急的要求来响应中断。而且,设置了中断优先级可以使优先级高的中断比优先级低的中断优先处理,实现中断嵌套。

14.可编程中断控制器8259A在中断处理时,协助CPU完成哪些功能? 解:在中断响应周期,8259A可为CPU提供响应的中断类型码 15.8259A具有哪些中断操作功能?指出与这些功能相对应的控制字(ICW/OCW)的内容? 解:ICW1的D4必须为1。D0确定是否送ICW4,若根据选择ICW4的各位应为0,则可令D0位(即IC4)为0,则不送ICW4。D1位SNGL,规定系统中是单片8259A工作还是级连工作。D2位ADI,规定CALL地址的间隔,D2=1,则间隔为4,这适用于建立一个转移指令表;D2=0,则间隔为8。D3位LTIM,规定中断请求输入线的触发方式,D3=1为电平触发方式,此时边沿检测逻辑断开;D3=0则为边沿触发方式。解] ICW1的D4必须为1。D0确定是否送ICW4,若根据选择ICW4的各位应为0,则可令D0位(即IC4)为0,则不送ICW4。D1位SNGL,规定系统中是单片8259A工作还是级连工作。D2位ADI,规定CALL地址的间隔,D2=1,则间隔为4,这适用于建立一个转移指令表;D2=0,则间隔为8。D3位LTIM,规定中断请求输入线的触发方式,D3=1为电平触发方式,此时边沿检测逻辑断开;D3=0则为边沿触发方式。

16.什么是中断响应周期?在中断响应中8086CPU和8259A–般完成哪些工作? 解:中断响应周期是从用户程序至中断服务程序的过渡周期。在第一个中断响应周期,8259A确定中断的优先级;在第二个中断响应周期,8259A送出中断向量,CPU获取此向量转至中断服务程序的入口。

17.8086有哪几种中断?哪些是硬件中断?哪些是软件中断?

解:8086CPU有两种中断:软件中断——由指令的执行所引起的;硬件中断——由外部(主

19

要是外设)的请求所引起的。(1)外部中断8086有两条外部中断请求:NMI——non maskable interrupt (非屏蔽中断)和INTR(可屏蔽中断)。(2)内部中断8086可以有几种产生内部中断的情况:DIV或IDIV指令、INT指令、INTO指令和单步执行。 18.什么是8086的中断向量?中断向量表是什么?8086的中断向量表放在何处?

解:中断向量表是存放中断服务程序入口地址的表格。8086系统的中断向量表存放在存储器的最低端,占用1024个字节单元。(或中断向量表在存储器中占用的地址范围为0000H~003FFH) 19.8259A的初始化命令字和操作命令字有什么差别?它们分别对应于编程结构中哪些内部寄存器?

解:8259A的初始化命令字是使8259A在开始前处在正确的起始状态。初始化命令主要规定8259A的工作模式和中断向量。初始化命令字写至ICW1——ICW4.

8259A操作命令字主要用于规定8259A的工作方式,例如中断屏蔽、结束中断、优先权旋转和中断状态。工作命令字可在8259A已经初始化以后的任何时间写入。

20.8259A的中断屏蔽寄存器IMR和8086/8088的中断允许标志IF有什么差别?在中断响应过程中,它们怎样配合起来工作?

答:1.若IMR的某位为0则该位对应的引腿上的中断请求未加屏蔽,让它通过而进入中断优先级裁决器作裁决。若IMR的某位为1则屏蔽该位对应的引腿上的中断请求,不让它进入中断优先级裁决器。而8086/8088CPU的中断允许标志IF为1则允许INTR引腿进入的中断,IF为0则屏蔽INTR引腿进入的中断。与8259A的IMR位为0为1正好相反。2.在中断响应过程中,IMR用于对外设向8259A发中断申请的允许/屏蔽,而CPU的IF用于对8259A由INT向CPU的INTR引腿发中断申请的允许/屏蔽。

21.8259A有几种结束中断处理的方式?各自应用在什么场合?除了中断自动结束方式以外,其他情况下如果没有在中断处理程序中发中断结束命令,会出现什么问题? 解: 8259A结束中断处理的方式有:

一般EOI方式:只有在当前结束的中断总是尚未处理完的级别最高的中断时,才能使用这种结束方式。制定EOI方式:适合于在任何情况下使用。自动EOI方式:只有在一些以预定速率发生中断,且不会发生同级中断互相打断或低级中断打断高级中断的情况下,才使用自动EOI方式。

22.8259A引入中断请求的方式有哪几种?如果对8259A用查询方式引入中断请求,那会有什么特点?中断查询方式用在什么场合?

答:1.引入中断请求的方式有:边沿触发方式、电平触发方式、中断查询方式三种。 2.中断查询方式的特点:

①设备仍然通过往8259A发中断请求信号要求CPU服务,但8259A不使用 INT信号向CPU发中断请求信号。 ② CPU内部的中断允许触发器复位,所以禁止了外部对CPU的中断请求。 7.2 7.3 7.4 7.5 7.6 7.7

③ CPU要使用软件查询来确认中断源,从而实现对设备的中断服务。 23.8259A的初始化命令字有哪些?它们各自有什么含义?哪几个应写入奇地址?哪几个应写入偶地址?

答:1、8259A的初始化命令字有ICW1、ICW2、ICW3、ICW4共四个。 2、ICW1——芯片控制初始化命令字。ICW2——设置中断类型码的初始化命令字。ICW3——标志主片/从片的初始化命令字。ICW4——方式控制初始化命令字。 3、ICW2、ICW3、ICW4必须写入奇地址端口中。 4、ICW1必须写入偶地址端口中。

20