微机原理与接口技术期末自测题答案版Word文件下载.docx
《微机原理与接口技术期末自测题答案版Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术期末自测题答案版Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
微型计算机采用总线结构有什么优点?
分为地址总线,数据总线与控制总线三类,又称三总线。
微型计算机的三总线结构是一个独特的结构。
采用总线结构,系统中各功能部件之间的相互关系,变成了各功能部件面向总线的单一关系。
一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩展。
3、8086CPU在内部结构上由哪几部分组成?
其功能是什么?
8086的内部结构分成两部分。
总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。
4、8086的总线接口部件由那几部分组成?
其功能是什么?
8086的总线接口部件主要由下面几部分组成:
4个段寄存器CS/DS/ES/SS,用于保存各段地址;
一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址;
一个20位地址加法器,用于形成20位物理地址;
指令流字节队列,用于保存指令;
存储器接口,用于内总线与外总线的连接。
5、8086的执行单元(部件)由那几部分组成?
有什么功能?
8086的执行单元部件主要由下面几部分组成:
控制器、算数逻辑单元、标志寄存器、通用寄存器组。
(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。
(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。
(3)标志寄存器,使用9位,标志分两类。
其中状态标志6位,存放算数逻辑单元ALU运算结果特征;
控制标志3位,控制8086的3种特定操作。
(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。
6、简述8086CPU的流水线思想,与传统计算机有何不同。
在8086CPU中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,两个单元重叠并行工作,这种机制称为流水线,这种工作方式有力的提高了CPU的工作效率。
传统的计算机一般按照取指令、指令译码与执行指令的串行步骤工作。
7、8086和8088是怎样解决地址线和数据线的复用问题的?
ALE信号何时处于有效电平?
8086/8088采用时间分隔技术与地址锁存技术,通过地址锁存允许信号ALE锁存CPU送出的地址,有效解决地址线和数据线的复用问题。
ALE在T1状态有效,将CPU送出的20位地址锁存。
8、计算机对I/O端口编址时通常采用哪两种方法?
在8086/8088系统中,用哪种方法对I/O端口进行编址?
对端口编址的两种方法。
计算机对内存和I/O端口统一编址;
计算机对内存和I/O端口分别进行编址。
在8086/8088系统中用计算机对内存和I/O端口独立编址。
9、一般的IO接口电路安排有哪三类寄存器?
它们各自的作用是什么?
(1)安排数据寄存器、状态寄存器、控制寄存器。
(2)数据寄存器:
存放CPU与外设之间传送的数据信息。
状态寄存器:
存放当前外设所处的工作状态。
控制寄存器:
存放CPU通过接口向外设传送控制信息。
10简述CPU与外设进行数据交换的几种常用方式与特点。
CPU与外设之间的数据传输有以下三种方式:
程序方式、中断方式、DMA方式。
(1)程序方式又分为无条件传送方式和条件传送方式两种方式,接口简单。
无条件传送方式用于简单外设,如LED显示器。
条件传送方式用于外设较少、需要联络信号的情形。
(2)中断传送方式需要专门的中断控制电路。
CPU利用率高,速度快,用于外设较多的实时系统。
(3)DMA方式需要专用硬件电路。
外设直接和存储器进行数据传送,效率高,适合大量、快速数据传送,例如硬盘读写等。
11、简述条件传送方式的工作过程,主要适用的场合。
条件传送数据有三个环节:
(1)CPU从接口中读取状态字。
(2)CPU检测状态字的对应位是否满足“就绪”条件,如不满足,则回到前一步读取状态字。
(3)如状态字表明外设已处于就绪状态,则传送数据。
主要用于需要联络信号(如选通信号)的外设较少的系统。
12、8086CPU响应中断的条件?
8086CPU响应中断后自动完成的任务是什么?
(1)有中断源发出的中断请求信号,并保存在中断请求触发器中,直至CPU响应此中断请求之后才清除。
(2)开放总中断。
(3)在现行指令结束后响应中断。
关中断,断点保护,形成中断入口地址。
即获得中断服务程序的入口地址,从而进入中断服务程序。
13、软件中断有哪些特点?
硬件中断有那些特点?
软件中断是由CPU内部事件引起的中断,是确定的;
与硬件无关,不执行中断响应周期;
除单步中断外,软件中断(内部中断)不可屏蔽;
优先级高于硬件中断(外部中断)。
硬件中断由外部事件引起,是随机的,需要执行总线周期,中断类型码由中断控制器提供。
14、什么是中断向量?
它放在哪里?
对应于类型号1CH的中断向量在哪里?
如1CH中断程序从5110H:
2030H开始,则中断向量应怎样存放?
中断向量是中断处理子程序的入口地址,它放在中断向量表中。
由1ch*4=70H知中断向量存放在0000:
0070处。
由于中断处理入口地址为5110H:
2030H,所以2030H应放在0070H,0071H两个存储单元,5110H应放在0072H、0073H这2个单元。
15、简述定时器/计数器芯片8253的主要功能。
说明OUT、CLOCK与GATE信号的作用。
(1)具有3个独立的16位定时/计时器,采用二进制计数时最大计数范围为0~65535,采用BCD码计数时,最大计数值为0~9999
(2)每个定时/计数器都有自己的时钟输入CLK,定时的输出OUT和门控信号GATE(3)每个定时/计数器均可以按二进制或BCD码计数,计数频率可达2MHz(4)每个定时/计数器都有6种工作方式,通过编程设置,计数器可做计数用,也可做定时用(5)所有输入和输出电平都与TTL兼容
OUT是计数器的输出端,用于计数信号输出,CLOCK是计数器的时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号,GATE是门控输入端,用于外部控制计数器的启动或停止计数的操作
16、8253内部有几个独立通道?
8253有几种工作方式?
初始化8253的步骤是什么?
若8253端口地址为200H-203H,对应的端口是哪个?
8253内部有3个独立通道,8253有,6种工作方式,初始化8253的步骤是:
选择计数器,确定计数器数据的读写格式,确定计数器的工作方式,确定计数器计数的数制,写入计数初值,若8253端口地址为200H-203H,计数器0,1,2和控制字寄存器端口的地址分别为200H,201H,202H和203H
17、并行接口8255有几个数据端口?
若端口地址为300H-303H,对应的端口是哪个?
怎样初始化8255?
并行接口8255有4个数据端口,若端口地址为300H-303H,对应的端口是,:
端口A、B、C和控制端口的地址分别为300H,301H,302H和303H
18、假设8255A的端口A工作于方式0,外设需要提供两个联络信号,一个为输出选通,一个为外设就绪信号输入,试选择端口并说明理由。
若8255A的端口A工作于方式0输出,外设需要提供两个联络信号,把端口C的高4位某位,例如PC7规定为输出口,用来输出选通信号;
而把端口C的低4位规定为输入口,例如用PC0用来读入外设的状态。
就是这样,利用端口C来配合端口A和端口B的输入/输出操作。
19、中断控制器8259的主要功能?
简述8259的工作过程。
中断控制器8259具有8级优先权管理,可用9片扩展为64级中断系统,接受中断请求,提供中断类型号,具有屏蔽与开放中断的功能,可编程选择不同工作方式
8259的工作过程:
(1).有请求输入时,将IRR相应位置位;
(2).经IMR屏蔽电路处理后(IRR与IMR相与),送PR;
(3).PR检测出最高的中断请求位,并经嵌套处理考虑是否发送INT;
(4).若可发INT信号,则控制逻辑将INT信号送给CPU的INTR引脚
(6).若CPU处在开中断,则在当前指令完成后,发两个INTA信号;
(7).8259A接到第一个INTA信号后,使ISR位置位,IRR相应位复位;
(8).CPU启动另一个响应周期,输出第二个INTA脉冲,8259A
(9).向数据总线送出中断类型码;
同时,CPU取出此向量乘以4,
(10).得到中断服务程序的入口地址;
(11).中断响应周期完成,CPU执行中断服务程序,8259A工作
(12).在自动结束AEOI或普通结束EOI模式下,使ISR清0。
三、编程应用题
1、编程计算((X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。
DATASEGMENT
RESULTDW2DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX;
初始化
MOVBX,0
MOVAX,X
ADDAX,Y
JNCS0
MOVBX,1
S0:
MOVDX,0
MOVCX,10
MULCX
ADDDX,BX
ADDAX,Z
ADCDX,0
MOVBX,X
DIVBX
LEASI,RESULT
MOV[SI],AX
ADDSI,2
MOV[SI],DX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2、将BUF1开始的100字节传送到BUF2开始的单元,然后从中检索字符“#”,并将此单元换成空格字符。
BUF2DB100DUP(?
MOVAX,DATA
MOVES,AX
LEASI,BUF1
LEADI,BUF2
MOVCX,100
CLD
REPMOVSB
LEABUF2
S:
MOVAL,’#’
COMAL,[DI]
JNZCOUN
MOVAL,’’
MOV[DI],AL
COUN:
INCDI
LOOPS
MOVAH,4CH
INT21H
3、编写一段程序,比较两个5字节的字符串OLDS和NEWS,若相同,在RESULT置0,否则置0FFH。
DATASEGMENT
OLDSDB1,2,3,4,5
NEWSDB1,2,3,4,'
A'
N=$-NEWS
RESULTDB0
MOVAX,DATA
MOVDS,AX;
MOVSI,OFFSETOLDS
MOVDI,OFFSETNEWS
MOVCX,N
DON:
MOVAL,[SI]
CMPAL,[DI]
JNZNOEQU;
串不相等转
INCSI
INCDI
LOOPDON
MOVAL,0
JMPOUTPUT
NOEQU:
MOVAL,0FFH
OUTPUT:
MOVRESULT,AL
STOP:
JMPSTOP;
程序陷阱
4、累加数组中的元素,将和存于SUM开始单元,数据段定义如下
DATASEGMENT
ARRAYDW10,10,12,4,5,6,7,8,9,10
COUNTDW($-ARRAY)/2
SUMDW?
?
MOVDS,AX
MOVAX,COUNT
MOVBX,2
MULBX
MOVCX,AX
MOVAX,0
LEASI,ARRAY
S:
ADDAX,[SI]
LOOPS
LEASI,SUM
MOV[SI],AX
MOVAH,4CH
5、编写程序完成求1+2+3+……N的累加和,直到累加和超过1000为止。
统计被累加的自然数的个数送CN单元,累加和送SUM。
CNDW?
SUMDW?
MOVDS,AX
MOVCX,0
MOVBX,1
ADDAX,BX
INCCX
CMPAX,1000
JAOK
INCBX
JMPS
OK:
LEASI,SUM
MOV[SI],AX
LEADI,CN
MOV[DI],CX
INT21H
6、从给定串中寻找最大值,并放到MAX单元,元素放在BUFFER开始的字节单元中。
BUFFERDB10,32,56,11,90,56,89,21
NEQU$-BUFFER
MAXDB?
MOVDS,AX
MOVCX,N-1
LEASI,BUFFER
S:
MOVAL,[SI]
CMPAL,[SI+1]
JNAS1
XCHG[SI+1],AL
XCHG[SI],AL
S1:
INCSI
LOOPS
LEASI,MAX
MOVSI,AL
MOVAH,4CH
INT21H
ENDSTART
7、把BUF表中的字节元素按值的大小升序排列。
数据段定义如下:
BUFDB10,32,56,11,90,56,89,21
N=$-BUF
BUFDB10,32,56,11,90,56,89,21
NEQU$-BUF
MOVDX,N-1
MOVBL,0
MOVCXDX
LEASI,BUF
S2:
MOVAL,[SI]
JNANO
MOVBL,0FFH
NO:
LOOPS2
DECDX
CMPDX,0
JNES1
8、类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片断。
CLI
PUSHDS
PUSHAX
XORAX,AX
MOVDS,AX
MOVAX,OFFSETINT-5
MOVWORDPTR[080H],AX
MOVAX,SEGINT-5
MOVWORDPTR[082H],AX
POPAX
POPDS
STI
9、设一个8253的计数器0产生周期为20ms的定时信号,计数器1产生周期为100ms的定时信号。
设外部时钟频率为f=2MHZ,端口地址为330H~333H。
试对它进行初始化编程。
MOVAL,00110100B
MOVDX,333H
OUTDX,AL
MOVAX,40000
MOVDX,330H
OUTDX,AL
MOVAL,AH
MOVAL,01110100B
MOVAX,5
MOVDX,331H
10、已知某8253占用I/O空间地址为40H~43H,设定时器0、定时器1工作于方式3,外部提供一个时钟,频率f=2MHZ。
要求定时器1连续产生5ms的定时信号,定时器0连续产生5秒的定时信号。
MOVAL,00110110B
OUT43H,AL
MOVAX,1000
OUT40H,AL
OUT40H,AL
MOVAL,01110110B
MOVAX,5000
OUT41HAL
OUT41H,AL
11、用8255A控制三个发光二极管依秩序循环显示。
假设开关闭合时,点亮发光二极管,开关断开时息灭二极管。
(1)画出原理图,并说明工作原理;
(2)选择8255工作方式;
(3)编写8255初始化程序与控制程序。
见课本P226
12、8255连接一组开关与一组LED显示器,如图所示。
开关状态用LED显示,若闭合,则点亮。
8255端口地址为310H~313H。
(1)选择8255工作方式;
编写8255初始化程序与控制程序。
见课本P233
四、常用指令与读程序
1、8086CPU执行如下指令后的结果,以及标志CF、ZF的值。
MOVAL,80H
SUBAL,10H;
(AL)=70H
ADDAL,89H;
(AL)=F9H,CF=0,ZF=0
2、CPU执行如下指令后的结果。
MOVAX,1234H
MOVBX,5678H
PUSHAX
POPCX
AX=1234H,BX=5678H,CX=1234H
写出执行下列指令结果.
MOVAX,TABLE
MOVBX,OFFSETTABLE
MOVCX,N
MOVDX,LENGTHZER
AX=0BX=1000HCX=8DX=24
3、单独执行下列指令的结果
MOVAL,10110101BAL=10110101B
ANDAL,00011111BAL=00010101B
ORAL,11000000BAL=11010101B
XORAL,00001111BAL=11011010B
4、单独执行下列指令的结果
假设(AL)=10101111B,CF=0,CL=4,写出分别执行下列指令后的结果以及标志位CF、ZF的值。
SHLAL,CLAL=11110000BCF=0ZF=0
SHRAL,CLAL=00001010BCF=1ZF=0
ROLAL,CLAL=11111010BCF=0ZF=0
6、读程序,写出结果。
MOVAL,5BH
TESTAL,80H
JZLP
MOVBL,1
JMPSTOP
LP:
MOVBL