【答】若当前(DS)=4002H,这六个数据的偏移地址为:0085H~008AH.如果要从存储器中读出 这些数据,需要访问4 次存储器,依次读出11H 和22H,33H 和44H,55H 和66H. 5.21 选择题:
(1)某微机具有16M 字节的内存空间,其CPU 的地址总线应有(E)条。 A.26 B.28 C.20 D.22 E.24
(2) 8086/8088 CPU 要求加到RESET 引脚上的复位正脉冲信号,其宽度至少要(4 ) 个时钟周期才能有效复位,如果是上电复位则要求正脉冲的宽度不少于( 50 )us 。 A.4,50 B.5,60 C.4,70 D.5,80
(3)当RESET 信号进入高电平状态时,将使8086/8088 CPU 的( D )寄存器初始化FFFFH。 A.SS B.DS C.ES D.CS
(4) 8086/8088 CPU 与慢速的存储器或I /O 接口之间,为了使传送速度能匹配,要 在(C)状态之间插入若干等待周期Tw。
A.T1 和T2 B.T2 和T3 C.T3 和T4 D.随机 5.22 填空题:
(1) 8086/8088 CPU 执行指令中所需操作数地址由(寻址方式和地址寄存器)计算出 ( 16 )位偏移量部分送( IP ),由(段地址加上偏移量部分)最后形成一个( 20 )位 的内存单元物理地址。
(2) 8086/8088 CPU 在总线周期的T1 ,用来输出(20)位地址信息的最高( 4 ) 位,而在其它时钟周期,则用来输出(状态)信息。
(3) 8086/8088 CPU 复位后,从(FFFF0H )单元开始读取指令字节,一般这个单元 在()区中,在其中设置一条(无条件转移)指令,使CPU 对系统进行初始化。
(4)8086 系统的存储体系结构中,1M 字节存储体分( 两)个存储体,每个存储体的
容量都是(512K )字节,其中和数据总线D15~D8 相连的存储体全部由(奇地址)单元组成, 称为高位字节存储体,并用( 高电平)作为此存储体的选通信号。
(5)8086/8088 系统中,可以有( )个段地址,任意相邻的两个段地址最短相距 (16)个存储单元,最长相距( )存储单元。
(6)用段基值及偏移地址来指明一内存单元地址称为(物理地址)。
(7)在8086/8088 最大方式系统中各微处理器都含有两条(RQ/GT0、RQ1/GT1)引脚, 其中( RQ/GT0 )比(RQ1/GT1 )具有更高的优先级。 习题六存储器
主要内容: 存储器的基本概念和半导体存储器的分类,重点掌握RAM、ROM 和Flash 的结构 和存储器在微机系统中的连接与扩充方法。 6.1 试说明存储器系统的主要性能指标。
6.2 术语“非易失性存储器”是什么意思? PROM 和EPROM 分别代表什么意思? 6.3 在选择存储器件时,最重要的考虑因素是什么?此外还应考虑那些因素? 6.4 存储器的存取时间是什么意思?它在系统设计时有什么实际意义? 6.5 什么是随机存储器?它在系统中起什么作用? 6.6 什么是只读存储器?它在系统中起什么作用? 6.7 试比较静态RAM 和动态RAM 的优缺点。
6.8 计算机的电源掉电后再接电时(系统中无掉电保护装置),存储在各类存储器中的信息 29
是否仍能保存?试从各类存储器的基本原理上来分析说明。
6.9 填空:对由8K×8 位,RAM 组成的存贮器系统,若某组的起始地址为08000H,则其末地 址为()H。
6.10 填空:用2K×4 位的存贮芯片组成6K×8 位的存储器,需用该片数量为()。
6.11 设计一个外设端口译码器,使CPU 能寻址四个地址范围:①0280~0287H,②0288~028FH, ③0290~0297H,④0298~029FH。
6.12 试画出容量为2K×8 的RAM 连接图,CPU 用8088,RAM 用2114,RAM 地址区为 0800H~0FFFH。
6.13 试画出容量为8K×8 的ROM 连接图,CPU 用8086,EPROM 用2716,ROM 地址区从4000H 开始。 本题答案
6.14 一台8 位微机系统,CPU 为8088,需扩展内存16KB,其中ROM 为8K,RAM 为8K。ROM
选用EPROM2716,RAM 选用2114,地址空间从0000H 开始,要求ROM 在低地址,RAM 在高地址。 试画出存储器组构图,并写出各芯片的存储分配范围。 本题答案 30
6.16 8086CPU 最小模式中,有8KB 的RAM,2KB 的ROM。ROM 采用EPROM 2716(2 K′8) ,RAM 采用Intel 2114(1K′4),画出硬件连接图。 本题答案
习题七CPU 与外设的输入输出方式
7.1 什么叫端口?通常有哪几类端口?计算机对I/O 端口编址时通常采用哪两种方法?在 8086/8088 系统中,用哪种方法对I/O 端口进行编址?
【答】CPU 和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存 器为端口。通常有:数据端口、状态端口、控制端口。对端口编址的两种方法为:计算机对 内存和I/O 端口统一编址;计算机对内存和I/O 端口分别进行编址。在8086/8088 系统中用 计算机对内存和I/O 端口统一编址。
7.2 CPU 和输入/输出设备之间传送的信息有哪几类? 【答】数据信息、状态信息、控制信息。
7.3 一般的IO 接口电路安排有哪三类寄存器?它们各自的作用是什么? 【答】数据寄存器:存放CPU 与外设之间传送的数据信息。 状态寄存器: 存放当前外设所处的工作状态。
控制寄存器: 存放CPU 通过接口向外设传送控制信息。 7.4 简述CPU 与外设进行数据交换的几种常用方式。
【答】CPU 与外设之间的数据传输有以下三种方式:程序方式、中断方式、DMA 方式。其中 程序方式又分为无条件传送方式和条件传送方式两种方式。无条件传送方式用于简单外设, 如LED 显示器。条件传送方式用于外设较少的情形,接口简单,但CPU 效率低。在实时系统 以及多个外设的系统中,采用中断传送方式。这种方式CPU 利用率高,速度快,但需要专门 的中断控制电路。如果要求实现高速数据传输,采用直接存储器传输方式,即DMA 方式。 7.5 无条件传送方式用在哪些场合?画出无条件传送方式的工作原理图并说明。
【答】无条件传送方式适用于对一些简单的外设的操作中,如:开关、七段LED 显示管等。 当CPU 执行输入指令是,读信号RD 有效,选择信号M/IO 处于低电平,因而三态缓冲器被选 通,使其中早已准备好的输入数据进入数据总线,再到达CPU。CPU 执行输出指令时,M/IO 和WR 信号有效,于是接口中的输出锁存器被选中,CPU 输出的信息经过数据总线打入输出锁 存器,输出锁存器保持这个数据,直到外设取走。
7.6 条件传送方式的工作原理是怎样的?主要用在什么场合?画出条件传送(查询)方式输 出过程的流程图。
【答】数据传送有三个环节:1、CPU 从接口中读取状态字。2、CPU 检测状态字的对应位
是否满足“就绪”条件,如不满足,则回到前一步读取状态字。3、如状态字表明外设已处于 31
就绪状态,则传送数据。主要用于非实时系统及单一外设系统。
7.7 现有一输入设备,其数据端口的地址为FFE0H,并于端口FFE2H 提供状态,当其D0 位 为1 时表明输入数据备好。请编采用查询方式进行数据传送的程序段,要求从该设备读取100 个字节并输入到从1 000H:2000H 开始的内存中,注意在程序中加上注释。 【答】
MOV SI,2000H ;初始化数据区地址 MOV AX,1000H MOV DS, AX
LL: MOV DX,0FFE2H IN AX,DX ;读状态
TEST AL,01H ;测试是否满足就绪? JZ LL ;不满足,继续读状态
MOV DX,0FFE0H ;就绪,准备输入数据 IN AX,DX ;从输入接口读取数据 MOV [SI],AX ;存数据 INC SI
LOOP LL ;数据没有输入完,继续
7.8 某字符输出设备,其数据端口和状态端口的地址均为80H,在读取状态时,当标志位D7 为0 时表明该设备闲。请编写采用查询方式进行数据传送的程序段,要求将存放于符号地址 ADDR 处的一串字符(以$为结束标志)输出给该设备,注意在程序中加上注释。 【答】ADDR DB ‘3FSDF3FFF$’ MOV SI,0
DO: IN AL,80H TEST AL,80H JNZ DO
MOV AL,ADDR[SI] CMP AL,’$’ JZ STOP OUT 80H,AL INC SI LOOP DO STOP :
7.9 查询式传送方式有什么优缺点?中断方式为什么能弥补查询方式的缺点?
【答】在查询方式下CPU 不断地读取状态字,如果状态字表明外设没准备好,则CPU 须等 待。这些过程占用了CPU 的大量工作时间,而CPU 真正用于传输数据的时间却很少。另外, 用查询方式工作时,如果一个系统有多个外设,那么CPU 只能轮流对每个外设进行查询,而 这些外设的速度往往并不同。这时CPU 显然不能很好的满足各个外设随机性的对CPU 提出的 输入/输出服务要求,所以,不具备实时性。使用中断传方式时,CPU 就不必花费大量时间去 查询外设的工作状态了,因为当外设就绪时,就会主动向CPU 发中断请求信号。那么在中断 允许标志为1 的情况下,CPU 保留下一条指令的地址和当前的标志,转到中断服务程序去执 行。 32
7.10 画一个用中断方式进行输出传输的接口电路。 【答】见课本
7.11 DMA 的意思是(直接存储器存取方式).进行DMA 传送一般过程是:外设先向DMA 控制器 提出( DMA 请求),DMA 控制器通过信号有效向CPU 提出DMA 请求,CPU 回以( 总线允许) 信号有效表示响应,此时CPU 的三态信号线将输出( 高阻)状态,即将它们交由( DMA 控 制器)进行管理,使数据在DMA 控制器的控制下完成外设和内存间的直接传送。 习题八中断控制器
8.1 8088/8086CPU 管理有哪些中断源?各种中断的产生条件是什么?
【答】NMI 中断和INTR 中断。INTR 中断产生的条件是:无总线请求、FR.IF=1、CPU 执行完 当前指令。
8.2 8088/8086 中断向量表的作用是什么?
【答】中断向量是中断服务程序的入口地址。将所有中断向量集中放在一起,形成中断向量 表。8086 系统有256 个类型的中断源。每个类型对应一个中断向量,一个中断向量由四个字 节组成:2 个高地址字节:存放中断服务程序的代码段的段值;2 个低地址字节:存放中断服 务程序的偏移地址。中断向量表放在内存的地段地址0 单元开始的单元:00000H~03FFFH。 8.3 什么叫中断向量?它放在哪里?对应于1CH 的中断向量在哪里?如1CH 中断程序从 5110H:2030H 开始,则中断向量应怎样存放?
【答】中断向量是中断处理子程序的入口地址,它放在中断向量表中,由1ch*4=70h 知中断 向量存放在0000:0070 处。由于中断处理入口地址为5110:2030 所以0070H,0071H, 0072H,0073H 这四个单元的值分别为30H,20H,10H,51H。
8.4 叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单 元中是什么内容?
【答】当CPU 在INTR 引脚上接受一个高电平的中断请求信号并且当前的中断允许标志为1,CPU 就会在当前指令执行完后开始响应外部的中断请求,具体如下:
1、从数据总线上读取外设送来的中断类型码,将其存入内部暂存器中; 2、将标志寄存器的值推入堆栈; 3、将标志寄存器中IF 和TF 清零; 4、将断点保护到堆栈中;
5、根据中断类型获取中断向量转入中断处理子程序; 6、处理完后恢复现场。
响应后堆栈的顶部4 个单元是IP,CS。
8.5 从8086/8088 的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什 么范围?
【答】从8086/8088 的中断向量表中可以看出,由于系统占用了部分中断类型码,主要包括: (1) 专用中断:0~4,占中断向量表000~013H。 (2) 系统备用中断:5~31H (3) 用户使用中断:32H~0FFH 33
如果一个用户想定义一个中断,可以选择中断类型码32H-FFH,其中断向量在中断向量表的 0C8H-01BFH。
8.6 非屏蔽中断处理程序的入口地址怎样寻找?
【答】非屏蔽对应类型2,它位于中断向量表0000:0008H-0000:000BH 处,4 个单元的值即为 非屏蔽中断处理程序的入口地址:08H、09H 放偏移量,0AH、0BH 放段地址。
8.7 类型号为20H 的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片断。
【答】中断向量的地址:20H×4=001 0 00 0000=80H 中断向量的装入参考程序: CLI PUSH DS XOR AX,AX MOV DS,AX
MOV AX,OFFSET INT-5 MOV WORD PTR [080H],AX MOV AX,SEG INT-5
MOV WORD PTR [082H],AX POP DS STI ??
INT-5 PROC NEAR ??. IRET
INT-5 ENDP
8.8 8259A 中IRR、IMR 和ISR 三个寄存器的作用是什么? 【答】中断请求寄存器IRR:保存对应位的中断请求 中断屏蔽寄存器IMR:屏蔽对应位的中断请求;
中断服务寄存器ISR:保存当前正在服务的中断申请。
8.9 填空:某时刻8259A 的IRR 内容是08H(00001000B),说明(_IR3 引脚有中断请求_)。 某时刻8259A 的ISR 内容是08H,说明(_IR3 引脚的中断请求正在服务_)。在两片8259A 级 连的中断电路中,主片的第5 级IR5 作为从片的中断请求输入,则初始化主、从片时,ICW3 的控制字分别是(00100000 和00000101)。
8.10 8529A 仅占用两个I/O 地址,它是如何区别4 条ICW 命令和3 条OCW 命令的?在地址 引脚A0=l 时读出的是什么? 【答】
A0=0 写ICW1、OCW2、OCW3,以其特征位区分。
A0=1 写ICW2、ICW3、ICW4、OCW1,写ICW1 后顺序写的是ICW2、ICW3、ICW4。
A0=0 读IRR、ISR、轮询字,由OCW3 的RR 和RIS 两位区分IRR 和ISR,通过OCW3 的P 位向8259 发轮询命令后读出的是轮询字。 A0=1 时,读IMR。 34
8.11 一个可屏蔽中断请求来到时,通常只要中断允许标志为1,便可在执行完当前指令后 响应,在哪些情况下有例外?
【答】如果发出中断请求信号时,正好碰到CPU 执行封锁指令,由于CPU 封锁指令和下一条 指令合在一起看成一个整体,所以必须等到下一条指令执行完后才响应中断。如果是执行往 寄存器传送数据指令,那一定要等下一条指令执行完后,才允许中断。无总线请求;CPU 执 行完当前指令。
8.12 一个可屏蔽中断响应时,CPU 要执行哪些读/写周期?对一个软件中断又如何? 【答】当一个可屏蔽中断被响应时,cpu 实际执行的总线时序如下:
第一步:执行2 个中断响应总线周期,之间用2 至3 个空闲状态搁开。被响应的外设
接口在第二个中断响应总线周期中通过低8 位数据线送回一个字节的中断类型码。cpu 接收