前言

答案制作方法参考这个文章

其他题库

第1章 微型计算机概述

  1. 微处理器、微型计算机和微型计算机系统三者之间有什么不同?
    答案:微处理器是中央处理单元(CPU),负责执行指令和处理数据。微型计算机是由微处理器、存储器和输入输出接口组成的计算机。微型计算机系统则包括微型计算机及其外围设备,如显示器、键盘、鼠标等,以及操作系统和其他软件。

第2章 16位和32位微处理器

  1. 8086基本总线周期是如何组成的?各状态中完成什么基本操作?
    答案:8086的基本总线周期通常由四个状态组成:T1、T2、T3和T4。在T1状态,8086发送地址信息到地址总线,并激活ALE(地址锁存允许)信号。在T2状态,8086释放地址总线,准备数据传输,并激活相应的控制信号。在T3状态,数据在总线上传输。在T4状态,总线周期结束,8086准备开始下一个总线周期。
  2. 结合8086最小模式下总线操作时序图,说明ALE、M/IO#、DT/R#、RD#、READY信号的功能。
    答案:ALE(地址锁存允许)信号用于锁存地址信息。M/IO#(存储器/输入输出)信号用于区分当前操作是访问存储器还是输入输出设备。DT/R#(数据发送/接收)信号指示数据传输的方向。RD#(读取)信号用于指示读操作。READY信号用于同步,当设备准备好时,它会被激活,以确保数据传输的正确性。
  3. 8086如何对中断进行响应的?
    答案:当8086检测到一个中断请求时,它会暂停当前的指令执行,并保存当前的程序计数器和状态寄存器。然后,8086会根据中断类型号从中断向量表中获取相应的中断服务程序的地址,并跳转到该地址执行中断服务程序。中断服务程序执行完毕后,8086会恢复之前保存的程序计数器和状态寄存器,并继续执行被中断的程序。

第5章 微型计算机和外设的数据传输

  1. CPU和外设之间有哪几种传输方式,他们之间有什么区别?

答案:CPU和外设之间的传输方式主要有以下几种:

  • 程序控制传输:通过程序指令直接控制数据的传输,包括无条件传输和查询传输。
  • 中断传输:外设在需要服务时向CPU发出中断请求,CPU响应中断后进行数据传输。
  • 直接存储器存取(DMA):外设直接与内存进行数据交换,不需要CPU的直接干预。

区别:

  • 程序控制传输依赖于CPU的指令执行,传输速度较慢,但实现简单。
  • 中断传输提高了系统的响应速度,但每次传输都需要中断处理,增加了系统开销。
  • DMA传输速度最快,减轻了CPU的负担,但需要额外的DMA控制器。
  1. 什么叫端口?通常有哪几类端口?计算机对I/O端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O端口进行编址?
    答案:端口是计算机与外部设备进行数据交换的接口。通常有以下几类端口:
  • 数据端口:用于传输数据。
  • 状态端口:用于传输设备状态信息。
  • 控制端口:用于传输控制命令。

计算机对I/O端口编址时通常采用以下两种方法:

  • 独立编址:I/O端口和内存地址分开编址,使用专门的I/O指令进行访问。
  • 统一编址:I/O端口和内存地址统一编址,使用相同的指令进行访问。

在8086/8088系统中,采用独立编址方法对I/O端口进行编址。

第6章 串并行通信和接口技术

  1. 什么叫波特率因子?什么叫波特率?设波特率因子为64,波特率为300,那么时钟频率为多少?

答案:波特率因子是指在串行通信中,用于控制数据传输速率的参数,通常是时钟频率与波特率的比值。波特率是指每秒钟传输的比特数。设波特率因子为64,波特率为300,那么时钟频率可以通过公式计算:时钟频率 = 波特率因子 × 波特率 = 64 × 300 = 19200 Hz。

  1. 若8251A的异步方式字为7AH,则发送的字符格式如何?为使接收和发送的波特率分别为600b/s和2400b/s,则收发时钟(RxC和TxC)的频率分别应为多少?
    答案:若8251A的异步方式字为7AH,则发送的字符格式为:7位数据位,1位停止位,偶校验。为使接收和发送的波特率分别为600b/s和2400b/s,收发时钟(RxC和TxC)的频率应分别为:
  • 接收时钟(RxC)频率 = 接收波特率 × 波特率因子 = 600 × 16 = 9600 Hz
  • 发送时钟(TxC)频率 = 发送波特率 × 波特率因子 = 2400 × 16 = 38400 Hz
  1. 已知8251发送的数据格式为:数据位7位、偶校验、1个停止位、波特率因子64。设8251控制寄存器的地址码是3FBH,发送/接收寄存器的地址码是3F8H。试编写用查询法和中断法收发数据的通信程序?
    答案:
  • 查询法通信程序:
1
2
3
4
5
6
7
8
9
10
11
12
MOV DX, 3FBH       ; 设置控制寄存器地址
MOV AL, 00011111B ; 设置控制字,使8251A处于发送准备状态
OUT DX, AL ; 写入控制寄存器

MOV DX, 3F8H ; 设置发送/接收寄存器地址
MOV AL, 'A' ; 要发送的数据
OUT DX, AL ; 发送数据

WAIT:
IN AL, DX ; 读取状态寄存器
TEST AL, 01H ; 检查发送缓冲区是否为空
JZ WAIT ; 如果不是空,继续等待
  • 中断法通信程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MOV DX, 3FBH       ; 设置控制寄存器地址
MOV AL, 00111111B ; 设置控制字,使8251A处于发送准备状态,并启用中断
OUT DX, AL ; 写入控制寄存器

MOV DX, 3F8H ; 设置发送/接收寄存器地址
MOV AL, 'A' ; 要发送的数据
OUT DX, AL ; 发送数据

; 中断服务程序
ISR:
PUSH AX ; 保存寄存器
PUSH DX
MOV DX, 3F8H ; 设置发送/接收寄存器地址
IN AL, DX ; 读取接收到的数据
; 处理接收到的数据
POP DX
POP AX
IRET ; 中断返回
  1. 若8251A的收、发时钟的频率为38.4KHz,它的RTS和CTS引脚相连,试完成满足以下要求的初始化程序:(8251A的地址为02C0H和02C1H)。
    (1)半双工异步通信,每个字符的数据位数是7,停止位为1位,偶校验,波特率为600B/s,发送允许。
    (2)半双工同步通信,每个字符的数据位数是8,无校验,内同步方式,双同步字符,同步字符为16H,接收允许。
    答案:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; 初始化程序
MOV DX, 02C1H ; 设置控制寄存器地址

; (1) 半双工异步通信初始化
MOV AL, 00011111B ; 设置控制字:7位数据位,1位停止位,偶校验,波特率因子16
OUT DX, AL ; 写入控制寄存器
MOV AL, 00110000B ; 设置控制字:发送允许,接收禁止
OUT DX, AL ; 写入控制寄存器

; (2) 半双工同步通信初始化
MOV AL, 00001111B ; 设置控制字:8位数据位,无校验,内同步方式,双同步字符
OUT DX, AL ; 写入控制寄存器
MOV AL, 16H ; 设置同步字符1
OUT DX, AL ; 写入同步字符1
MOV AL, 16H ; 设置同步字符2
OUT DX, AL ; 写入同步字符2
MOV AL, 00100000B ; 设置控制字:接收允许,发送禁止
OUT DX, AL ; 写入控制寄存器
  1. 如何设置8255A的A口方式1输出中断允许,8255A的端口地址为288~28FH,A1A0分别接地址总线A2A1?

答案:

1
2
3
MOV DX, 28BH       ; 设置控制寄存器地址
MOV AL, 10100000B ; 设置控制字:A口方式1输出,中断允许
OUT DX, AL ; 写入控制寄存器
  1. 若8255A的端口A定义为方式0,输入;端口B定义为方式1,输出;端口C的上半部定义为方式0,输出。试编写初始化程序。(8255地址为80H~83H)
    答案:
1
2
3
MOV DX, 83H        ; 设置控制寄存器地址
MOV AL, 10010010B ; 设置控制字:A口方式0输入,B口方式1输出,C上半部方式0输出
OUT DX, AL ; 写入控制寄存器

第7章 中断控制器

  1. 优先级全嵌套方式和优先级特殊全嵌套方式有什么差别?
    答案:优先级全嵌套方式中,中断优先级是固定的,高优先级的中断可以打断低优先级的中断。而优先级特殊全嵌套方式和优先级全嵌套方式的区别是前者允许在特定条件下,如果有同级中断请求,那么CPU也会作出响应,从而形成了对同一级中断的特殊嵌套。
  2. 8259A的优先级循环方式和优先级特殊循环方式有什么差别?
    答案:在优先级特殊循环方式中初始化的优先级是由程序控制的,而不是像优先级循环方式那样默认的IR0~ IR7。
  3. 8259A的特殊屏蔽方式和普通屏蔽方式相比,有什么不同之处?特殊屏蔽方式一般用在什么场合?
    答案:普通屏蔽方式通过屏蔽寄存器来屏蔽指定的中断请求,而特殊屏蔽方式允许在处理某个中断时,只屏蔽该中断,而不影响其他中断的响应。特殊屏蔽方式通常用于需要在中断处理过程中保持对某些中断的响应能力的场合。
  4. 8259A有几种结束中断处理的方式?各自应用在什么场合?除了中断自动结束方式以外,其他情况下如果没有在中断处理程序中发中断结束命令,会出现什么问题?
    答案:中断自动结束方式 ,这种方式仅适用于只有单片8259A****的场合

一般的中断结束方式 适用全嵌套方式的情况下。**

特殊的中断结束方式在非全嵌套模式下,系统无法确定哪一级中断为最后相应和处理的中断,也就是说,CPU无法确定当前所处理的是哪级中断。**

  1. 8259A对外部中断请求处理的过程和工作原理?
    答案:8259A对外部中断请求的处理过程如下:首先,外部设备通过INT请求线向8259A发送中断请求。8259A接收到请求后,检查中断请求寄存器(IRR)中是否有未处理的中断。如果有,8259A将根据当前的优先级规则选择最高优先级的中断请求,并将其发送给CPU。CPU接收到中断请求后,执行相应的中断服务程序(ISR)。在ISR执行完毕后,8259A需要接收到一个中断结束命令(EOI),以清除中断服务寄存器(ISR)中的相应位,从而允许新的中断请求被处理。
  2. 如果8259A按如下配置则ICW1的值为多少?不需要ICW4,单片以及边缘触发。如要求产生的中断类型码在70H~77H之间,则ICW2的值是多少?
    答案:根据题目要求,8259A配置为不需要ICW4,单片以及边缘触发。因此,ICW1的值应为0x13(二进制为00010011),其中D0位为1表示需要ICW4,D3位为1表示单片模式,D4位为1表示边缘触发。对于ICW2,要求产生的中断类型码在70H~77H之间,因此ICW2的值应为0x70(二进制为01110000),这样中断类型码将从70H开始,依次递增。
  3. IBMPC机中,只有一片8259A,可接受外部8级中断。在I/O地址中,分配8259A的端口地址为20H和21H,初始化为:边沿触发、缓冲连接、中断结束采用EOI命令、中断优先级采用完全嵌套方式,8级中断源的中断类型分别为08H—0FH,写出初始化程序
    答案:初始化程序如下:
1
2
3
4
5
6
7
8
MOV AL, 13H       ; ICW1: 边沿触发、单片模式、需要ICW4
OUT 20H, AL ; 写入端口20H

MOV AL, 08H ; ICW2: 中断类型码基址为08H
OUT 21H, AL ; 写入端口21H

MOV AL, 09H ; ICW4: 8086模式、缓冲连接、完全嵌套方式
OUT 21H, AL ; 写入端口21H

第8章 DMA控制器

  1. DMA控制器8237A什么时候作为主模块工作?什么时候作为从模块工作?在这两种情况下,各控制信号处于什么状态,试作说明。
  2. 试说明在DMA方式时内存往外设传输数据的过程。

第9章 定时器

  1. 8253的计数器2工作于方式2,其计数时钟CLK2,为100KHz,输出信号OUT2作定时中断申请,定时间隔为8ms,试计算其计数初值N?
    答案:计数初值N的计算公式为:N = (时钟频率 × 定时间隔) - 1。将已知值代入公式,N = (100,000 Hz × 0.008 s) - 1 = 800 - 1 = 799。因此,计数初值N为799。