微机原理及应用试卷A试题及_2008答案
2007-2008
1 微型计算机原理及应用
7、8086的输入/输出控制方式包括程序控制方式 、中断控制方式 、 DMA 控制方式 和 输入/输出处理机控制方式 。
8、8086微机系统中的一个中断向量占4个存储单元,假定某中断对应的中断向量
存放在0000:002C H ;那么该中断向量对应的中断类型号为 0B H ,若该向量对应
的中断处理子程序放在0080:0402H 开始的内存区域中,则按照地址由低到高的顺
序写出其相应的存储单元的内容为 02H 、 04H 、 80H
00H 。
9、8259A 包括两种触发方式,即 电平触发方式和 脉冲触发 方式;8259A 中对中
断优先权的管理可分为三种方式,即 完全嵌套方式 、 自动循环方式 、和 中断屏
蔽方式 。
10、8086复位后如下寄存器的内容为:CS= FFFF H,IP= 0000 H 。
二、选择题(1—15题,每题1分,共15分。)
1、8086的工作方式为 A 。
(A)实地址方式 (B )保护地址方式 (C )虚拟8086方式 (D )实地址和保护地址方式 2、8086通过 A 信号和 控制连接在总线上的存储器和接口以何种方式传输数据。
(A) BHE A 0 (B) ALE A 0 (C) BHE A 1 (D) ALE A 1
3、MDR 表示的意思是 B 。
(A)累加器 (B )存储器数据寄存器 (C)存储器地址寄存器 (D )环形计数器
4、标志寄存器中标志IF =1表示的是 A 。
(A)CPU 可以接收可屏蔽中断请求 (B )运算结果低8位中所含1的个数为奇数
(C)运算结果超出了表示数的范围 (D) CPU 按跟踪方式执行指令
5、MOV AX ,[BX+SI]的源操作数的物理地址是 A 。
课程试题A
学期 学年
(A)16×(DS)+(BX)+(SI) (B)16×(ES)+(BX)+(SI)
(C)16×(SS)+(BX)+(SI) (D)16×(CS)+(BX)+(SI)
6、调试程序DEBUG中的指令U的含义是 D 。
(A)从指定地址显示内容(B)从指定地址执行程序(C)读并显示输入的字节(D)反汇编
7、8位二进制原码表示的整数数据范围是 B 。
(A) -128~+127 (B) -127~+127 (C) -128~+128 (D) -127~+128
8、环形计数器是组成 B 的一部分。
(A)总线接口单元 (B)控制部件 (C)算术逻辑单元 (D)运算器
9、IRET指令的功能为 A 。
(A)中断返回 (B) 有符号数小于时转移
(C)溢出时中断 (D) 过程返回
10、程序运行过程中进行了一次FAR转移,则 C 。
(A) CS改变IP不变 (B)CS和IP都不变 (C)CS和IP都改变 (D)CS不变IP改变
11、8086的第25引脚ALE的作用是 A 。
(A) 最小工作模式下地址锁存允许(B) 最大工作模式下地址锁存允许
(C) 最小工作模式下数据允许输出(D) 最大工作模式下数据允许输出
12、某条指令可以完成对指令中给出的操作数取补码的功能,这条指令为 A 。
(A) NEG (B)XCHG (C) XLAT (D) TEST
13、ROR指令的意义是 A 。
(A) 不带CF的循环右移 (B) 带CF的循环右移 (C) 算术右移 (D) 逻辑右移
14、假定DS=1000H,AX=2000H,[1234H]=30H,[1235H]=40H当执行完
MOV AX ,[1234H]指令后,AX的值为 A 。
(A) 4030H (B) 3040H (C) 1234H (D) 2000H
15、8086的数据总线的宽度是 C 位。
(A)4 (B)8 (C)16 (D)32
三、简答题(1—5题,每题6分,共30分。)
1、写出全加器的真值表,求出逻辑表达式并用其组成4位补码加/减法电路。
逻辑表达式为:
2、简述8086CPU总线接口部件(BIU)的功能及其组成。
总线接口部件的功能是负责与存储器、I/O端口传送数据,即BIU管理在存储器中存取程序和数据的实际处理过程。它主要由以下几部分构成:
1.4个段地址寄存器。即CS DS ES SS。
2.16位的指令指针寄存器IP。
3.20位的地址加法器。
4.6字节的指令队列。
3、试说明可屏蔽中断和非屏蔽中断的区别和联系。
可屏蔽中断和不可屏蔽中断都属于外部中断,是由外部中断源引起的;但它们也有区别:可屏蔽中断是通过CPU的INTR引脚引入,当中断标志IF=1时允许中断,当IF=0时禁止中断,不可屏蔽中断是由NMI引脚引入,不受IF标志的影响。
4、简述8259A芯片中与中断请求操作相关的寄存器的名称及其功能。
8259A中与中断请求操作相关的寄存器有:
1.中断请求寄存器IRR,它是一个8位的寄存器,用来存放外部输入的中断请求信
号IR0~IR7。
2.中断服务寄存器ISR,它是一个8位的寄存器,用来记录正在处理的中断请求。
3.中断屏蔽寄存器IMR,它是一个8位的寄存器,用来存放对各级中断的屏蔽信息。
4.优先级判别器PR,用来识别各中断请求信号的优先级别。
5、简述用汇编语言进行程序设计的步骤。
汇编语言程序设计步骤:
(1)分析问题:已知条件、要解决的问题、功能/性能要求等。
(2)建立数学模型:把问题数学化、公式化,便于计算机处理。
(3)确定算法:简单、速度快、精度高、代码量小、编程容易。
(4)绘制程序流程图:用箭头、框图、菱形图等表示程序结构。
(5)内存空间分配:为程序或数据分配内存空间。
(6)编制程序与静态检查:程序结构层次简单、清楚、易懂。
(7)程序调试:利用调试软件DEBUG进行调试。
四、程序分析题(1—3题,共15分。)
1、(6分)依次执行下述指令序列,请在空白处填上当左边指令执行完时该寄存器
的值。
MOV AL,0DH
MOV BH,5CH
MOV CH,04H
ADD AL,BH ;AL= 69 H
OR BH,CH ;BH= 5C H
XOR AL,AL ;AL= 00 H
AND CH,0FH ;CH= 04 H
MOV AX,0004H
MOV BX,00B7H
PUSH AX
PUSH BX
POP AX ;AX= 00B7 H
POP BX ;BX= 0004 H
2、(4分)当下列程序执行完后,AL、BX、DI、DS四个寄存器的内容分别是什么?假定存储器从2000H开始的内容分别为:[2000H]=04H,[2001H]=02H,[2003H]=06H, [2004H]=01H,[2005H]=08H,[2006H]=07H
MOV BX,2000H
MOV AL,03H
XLAT
LDS DI, [2000H]
AL=06H BX=2000H DI=0204H DS=0106H
3、(5分)阅读下面的程序,指出该程序完成的功能。
START: IN AL,71H
CLC
CMP AL,10
JC LP1
CMP AL,20
JC LP2
MOV BL,0FFH
LP3:OUT 73H,BL
HLT
LP1: MOV BL,00
JMP LP3
LP2: MOV BL,88H
JMP LP3
完成功能如下:从外设71H中取一个数,判断其值是否在10~20之间,如果是则送88H给外设73H,如果小于10则送00给外设73H,如果大于20,则送0FFH给外设73H。
五、应用题(1—2题,共 10分。)
按照汇编语言源程序的基本格式编写完整的汇编语言源程序,实现下述功能:
1、(5分)求两个多字节数之差,数据段定义如下:
DATA SEGMENT
NUM1 DB 88H,44H,77H,00H,55H
N1=$-NUM1
NUM2 DB 33H,55H,87H
N2=$-NUM2
NUM3 DB 5 DUP (?)
DATA ENDS
其中NUM1,NUM2为两个多字节无符号数,NUM3为运算结果,利用循环方式实现。(低地址存放数据的低字节)
参考程序:
MY_STACK SEGMENT PARA 'STACK'
DB 100 DUP(?)
MY_STACK ENDS
DATA SEGMENT
NUM1 DB 88H,44H,77H,00H,55H
N1=$-NUM1
NUM2 DB 33H,55H,87H
N2=$-NUM2
NUM3 DB 5 DUP (?)
DATA ENDS
MY_CODE SEGMENT
ASSUME CS:MY_CODE, DS:DATA, SS:MY_STACK
MY_PROC PROC FAR
START: PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA SI,NUM1
LEA DI,NUM2
MOV BX,N1
MOV CX,N2
MM: MOV AL,[DI]
SBB [SI],AL
INC DI
INC SI
DEC BX
LOOP MM
M1: JZ M2
JNC M2
SBB PYTE PTR [SI],0
INC SI
DEC BX
JMP M1
M2 RET
MY_PROC ENDP
MY_CODE ENDS
END START
(5分)利用微机原理实验箱上的8255A芯片,控制8个发光二极管的显示功能,要求如下:通过端口B的读入开关1的状态,若开关闭合,通过端口A点亮1、2、3、4灯,若开关断开,通过端口A点亮5、6、7、8灯。
其中:
1
D6D5=00:端口A方式0;D6D5=01:端口A方式1;D6D5=1X:端口A方式2。
D4=0:端口A输出;D4=1:端口A输入。
2、开关和灯的排列方式都为:
1 2 3 4 5 6 7 8(对应端口数据线由低位到高位排列)假定开关闭合时读入的值为1,开关断开时读入的值为0;端口输出为0时灯亮。MY_STACK SEGMENT PARA 'STACK'
DB 100 DUP(?)
MY_STACK ENDS
MY_DATA SEGMENT PARA 'DATA'
P8255_A DW 0180H
P8255_B DW 0181H
P8255_C DW 0182H
P8255_MODE DW 0183H
MY_DATA ENDS
MY_CODE SEGMENT PARA 'CODE'
ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK
MY_PROC PROC FAR
START: MOV AX,MY_DATA
MOV DS,AX
MOV DX,P8255_MODE ;设置8255控制字A口输入,B口输出
MOV AL,90H ;控制字为10010000即90H
OUT DX,AL
START1: MOV DX,P8255_B ;读取A口状态IN AL,DX
TEST AL,01H
JZ DEAL1
MOV DX,P8255_A ;输出
MOV AL,0FH
OUT DX,AL ;开关闭合点亮1234灯DEAL1: MOV DX,P8255_A
MOV AL,0F0H
OUT DX,AL ;开关断开点亮5678灯MY_PROC ENDP
MY_CODE ENDS
END START