2020 至 2021 学年第二学期

一、单选题(52 分)

1

选项( )是嵌入式系统必须具备的特性。

Ch1-P78(但是没写)

2

当前 8086 CPU 的状态标志位如下:CF=1,OF=0,执行( )指令后,指令队列中的指令会被放弃。

考察知识点控制跳转语句(Ch2-P110)

3

当 NMI 与 RESET 同时到来,8086CPU( )

考察8086 CPU的引脚及其总线结构内容(Ch2-P25, P131)

RESET 比 NMI 等级更高,先响应 RESET.

在8086CPU中,当NMI(非屏蔽中断)和RESET(复位)信号同时到来时,CPU会优先响应RESET信号。RESET信号是一个比NMI更高级别的信号,因为RESET信号会强制CPU进入复位状态,重新初始化并开始执行从地址0FFFF0H的指令。NMI信号虽然也非常重要,但在复位信号出现时会被忽略。

具体来说,当RESET信号被激活时,8086 CPU会执行以下操作:

  1. 复位内部寄存器:所有内部寄存器,包括指令指针(IP)、代码段寄存器(CS)等,都会被设置为初始状态。

  2. 初始化状态:CPU内部的控制逻辑和状态机将被重新初始化。

  3. 设置指令指针:IP寄存器被设置为0x0000,CS寄存器被设置为0xFFFF,使得CPU从物理地址0xFFFF0开始执行代码。

这个过程是硬件直接控制的,不涉及任何中断向量或中断处理程序。

By ChatGPT.

5

8086 执行 OUT 10H, AL 命令时,控制信号 RDWRM/IO 正确的是()

6

ADD [BX],10H 指令中目标操作数和源操作数分别使用了( )寻址方式

根据 Ch2-P92,ADD 格式为 ADD DST(目标操作数), SRC(源操作数)

因此目标操作数使用了寄存器间接寻址方式(Ch2-P62),源操作数使用了立即数寻址。

7

在多层次的存储器系统中,Cache 的作用是( )

8

8086 系统中,中断类型号 10H 的中断入口地址存放在( )单元中。

考察8086 CPU的中断系统,在 Ch2-P132 可知,存放在 00010H×4 的单元,即 00040H ~ 00043H

9

8086CPU 系统的总线周期( )。

读图 Ch2-P50,需要等待读写。

10

关于UART1 和UART2 间的异步串行通信,正确的是( )。

Ch5-串口通信的内容,

Ch5-P74 可见数据位最多 8 位,Ch5-P70 可见异步通信和是否为单工、半双工、全双工没关系。

ChatGPT:

这两个属性描述了通信系统的不同方面,可以组合在一起形成不同的通信方式:

11

IEEE754 单精度浮点数的二进制编码包括( )

12

在8086CPU 的微机中,如果将一片SRAM 62256(32kB)映射到存储器的 偶存储体所有高位未用地址不参与译码,则( )

考虑到 8086 具有 16 位数据总线和 20 位地址总线,32 kB 对应 15 个地址位。最低位为 0,因为存储在偶存储体。剩下 20151=4 个地址不参与译码,因此有 16 个地址编码。

13

8086 汇编程序中,用CMP X,Y 指令比较X、Y 两个无符号数后,用条件跳转指令( )可以判断 X、Y 的大小。

Ch2-P110 控制跳转指令。

14

关于CISC 和RISC,选项( )是正确的。

Ch2-8086指令系统 P126。

15

关于8086 的中断向量和中断向量表,选项( )是正确的。

16

8086 汇编程序中分别定义一个并口打印机中断子程序 PRNISR 和一个 NEAR 型的软件延时子程序 Delay10ms,选项( )是正确的。

17

在8086的一个汇编语言程序中定义了下列变量:

比较执行指令MOV AX,VAR1 和MOV AX,VAR2 所需的时间,选项( )是正确的。

考察 8086 存储器系统(Ch2-P42),若字单元从奇地址开始,则需要访问两次存储器。

18

关于8086CPU 的标志寄存器中的控制位,( )是正确的

Ch2-P20, INTR 和 NMI 中断都属于不可屏蔽中断。

19

8086CPU 最多可以使用(32)片SRAM62256(32kB)作为内存。

20

8086系统中,下列指令正确的是( )。

21

选项(Cache)都是现代计算机多层次存储器系统的一个层级。

22

下列关于IEEE754 单精度浮点数编码的说法中,正确的有( )

Ch1-P65 尾数位数越多,数据表示的精度越高

23

关于SRAM 与DRAM,选项( )是正确的。

  1. 单位容量的SRAM 比DRAM 需要集成更多的晶体管

    • 这是正确的。SRAM每个存储单元通常需要6个晶体管(6T),而DRAM每个存储单元仅需要1个晶体管和1个电容(1T1C)。因此,SRAM比DRAM需要更多的晶体管,导致其单位容量成本更高。

  2. SRAM 和DRAM 都需要刷新

    • 这是不正确的。只有DRAM需要定期刷新来维持数据,因为其存储数据的电容会漏电。SRAM不需要刷新,因为它使用触发器电路来存储数据,只要电源持续供应,数据就能保持不变。

  3. 目前笔记本电脑中的 DDR 内存是SRAM

    • 这是不正确的。笔记本电脑中的DDR内存是DRAM的一种(例如DDR3、DDR4、DDR5)。SRAM通常用于缓存(如CPU缓存)而不是主内存。

  4. DRAM 更适合用作 Cache

    • 这是不正确的。SRAM更适合用作缓存(Cache),因为SRAM比DRAM速度更快,尽管它的成本更高、密度更低。DRAM适合作为主内存,因为它具有较高的存储密度和较低的成本。

24

8086 指令集中的指令( )能反映Intel8086 属于CISC。

CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)是两种不同的计算机处理器架构,它们在设计理念和指令操作数方面有显著的区别。以下是对CISC和RISC在指令操作数方面的详细解释:

CISC(Complex Instruction Set Computer)

  1. 丰富的指令集:CISC处理器具有复杂而丰富的指令集。每条指令可能执行多个低级操作(如加载、存储、算术运算等),甚至包含多个步骤的操作。

  2. 多操作数指令:CISC指令可以有多个操作数,且操作数可以是寄存器、内存地址、立即数(常数值)等。例如,一条指令可以直接从内存中读取数据、进行计算,然后将结果写回内存。

  3. 指令长度可变:CISC指令长度不固定,可以根据操作数和操作类型变化,这使得编码和解码指令更加复杂。

  4. 复杂寻址模式:CISC支持多种复杂的寻址模式,使得在一条指令中可以直接操作内存地址,从而减少了指令数量,但增加了每条指令的复杂性和执行时间。

RISC(Reduced Instruction Set Computer)

  1. 简化的指令集:RISC处理器具有简化的指令集,每条指令通常只执行一个简单的操作,设计目的是提高执行效率和简化处理器设计。

  2. 固定的操作数:RISC指令通常只有固定数量的操作数,通常是三个:两个源操作数和一个目标操作数。这些操作数通常都是寄存器。

  3. 固定指令长度:RISC指令长度固定(如32位),使得指令解码和执行更加高效。

  4. 简单寻址模式:RISC通常只有简单的寻址模式,大多数指令只对寄存器操作,内存访问(如加载和存储)是通过专门的加载/存储指令来实现的。这使得指令集更加简单和一致。

操作数的区别总结

例子

CISC示例(假设一个假想的CISC指令):

RISC示例(假设一个假想的RISC指令):

通过这些例子可以看到,CISC指令通常更复杂,操作数类型和数量更多,而RISC指令更简单和规范化。

25

一段汇编程序中定义了符号X1、X2,指令( )是正确的。

26

关于Flash存储器,选项( )是正确的。

NOR闪存在需要快速读取和高可靠性的应用中具有重要作用,而NAND闪存则在需要大容量和频繁读写的数据存储中更为常见。

二、判断题

三、分析填空题

假设 8086 的系统时钟频率 5Mhz,某同学设计了一个延时 1ms 延时子程序如下。

  1. Delay1ms 子程序中空格(1)中应填入:( )H (精确到0.1ms)

    因为时钟频率 5MHz,所以 1ms 执行 5×106×103 个指令,相当于 5000 个。填入 1388H.

  2. 该同学还设计了 Delay10ms 的 10ms 延时子程序如下,但调试发现 Delay10ms 的实际延时不是 10ms。

    试问:Delay10ms 实际延时约为()ms.

    注意到 CALL Delay1ms 后,CX 寄存器的值为 0,此时再执行 LOOP,则 CX 变为 65535,反复循环,因此程序死循环。

  3. 如果要保证Delay10ms 延时10ms, 需要修改Delay1ms 子程序。请在下面的空白处填写正确的Delay1ms 子程序代码。

    只要暂存 CX 的值即可。

四、综合题

请阅读最小模式下8086CPU 与存储器的连线图,其中D0~D15 为总线驱动后的数据总线,A0~A19为锁存后的地址总线,回答下述问题。

  1. 图中右下角标示的接线端A 应与8086CPU 引脚(WR)相连;接线端B 应与8086CPU 引脚(RD)相连。

    可以参考课件上的Proteus电路图

  2. 图中存储器芯片6264的容量为(8)kB。两片6264的存储器寻址范围为(20000)H~(23FFF)H。芯片U1 的存储器地址均为(偶)(选择:奇、偶、奇偶混合)地址。

    容量:213 Byte=8 kB.

    两片 6264 的存储器寻址范围:

    A19~16A15~12A11~8A7~4A3~0
    001000XXXXXXXXXXXXXX

    因此寻址范围为 20000~23FFF.

  3. 下述程序完成的功能为:芯片U1 中的单元全部写入00H,芯片U2 中的单元全部写入0FFH。试完善程序。

如图所示为8086CPU、8255A、8253A 等芯片构成的接口电路,试根据电路连线图回答问题。(20分,每空1 分)

  1. 设定8255A 的端口均工作于方式0。试根据硬件电路完善下述8255A 初始化程序。

    8255 的控制字:在 Ch5-P37

    判断输入输出:A口高4位和低4位都是输出;B口高4位是输出;C口低4位是输入,高4位是输出。C 口用于输入输出数据,因此处在工作方式0.

    控制字:

    10000001
  2. 现要求完成如下功能:8253A 的三个计数器分别输出100kHz、10Hz、0.1Hz 的方波。试完善硬件连接和软件编程。

    硬件电路连线:应将8253A 的CLK1 与8253A 的第(10 或OUT1)号引脚相连,将8253A 的CLK2与8253A 的第(13 或OUT2 )号引脚相连。

    功能程序:

    Ch5-P61 8253 的控制字。

    SC1SC2RW1RW2M2M1M0BCD
    0000X111

    参考答案:10 或0AH

    参考答案:10000 或2710H

  3. 现要求完成如下功能:向打印机端口(PRINTER PORT)输出字符串'Hi, Have a good day!'供打印机打印。字符串存放于数据段中变量String 开始的单元。打印机接口的握手信号分别为忙信号(BUSY)、选通信号(STROBE)。当CPU 输出完打印数据后,CPU 需向打印机送一个 STROBE 脉冲,启动打印机开始打印;在打印过程中状态信号BUSY=1,CPU 需等待BUSY 变为0 后再发送新的打印数据,其工作时序如图所示。试完善下述程序。

    参考 Ch5-P42 打印一批字符的程序段,Ch5-P38 C口的位控制字。