资源描述
-/
一、选择题
1. 中断处理中,返回到主程序是由哪条指令来完成?( D)
A.PUSH B. POP C.RET D. IRET
2.下列中断类型不属于内部中断的是( A )。
A.INTR B.INT 21H C.溢出 D.除以0
3. 假定 (SS)=3000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是( D )。
A.30102H B.30101H C.300FEH D.300FFH
答案:D ( 栈顶的PA=10H*3000H+0100H=30100H,压栈SP-2, 高字节21H放在高地址300FFH 里)
4、8086的存储器分段结构,每个段的长度不超过( D)
A.128KB B.32KB C.1MB D.64KB
5、 8086标志寄存器的标志位中,用来判断结果正负的是( B)
A、ZF B、SF C、DF D、CF
6、 必然使BH中的数变为奇数的指令是( )
A.ADD BH,01H B.OR BH, 01H
C.XOR BH,01H D.TEST BH,01H
7、BUF DB 12H DUP (0, 2 DUP (1, 2) , 3) 上述语句汇编后 , 为变量BUF分配的存储单元字节数是( B)
A.60H B.6CH C.12H D.24H
8、当8086引脚 时,表示8086CPU当前正在进行(D)操作。
A.读存储器 B.写存储器 C.写I/O口 D.读I/O口
9. 将累加器AX的内容清零的错误指令是( D )。
A.AND AX,0 B.XOR AX,AX
C.SUB AX,AX D.CMP AX,AX
10. 程序计数器PC存放的是 ( D ) 。
A.程序总的指令条数 B.程序已执行的指令条数
C.程序尚未执行的指令条数 D.下一条指令的存储地址
11、汇编语言源程序文件的扩展名为( C )。
A.exe B.doc C.asm D.C
12、段定义语句以( B )语句结束。
A.END B.ENDS C.ENDP D.ENDM
13、8086系统的15H号中断的中断向量存放在内存储器地址为( A ) 的单元中。
A. 0000:0054H~0000:0057H B. 0000:0060H~0000:0063H
C. FFF0:0054H~FFF0:0057H D. FFF0:0060H~FFF0:0063H
答案:A (15H*4=21D*4=84D=54H)
14、下列指令中正确的是( D )。
A. IN DX, AL B. IN AL, 265H
C. OUT AL, DX D. XOUT 24H, AL
15、要输入地址为1234H的 I/O端口中的 8 位数据,正确的指令
是( B )
A、 MOV DX, 1234H B、 MOV DX , 1234H
OUT DX, AL IN AL , DX
C、IN AX , 1234H D、 OUT DX , 1234H
16、运算结束后,标志位ZF=0,含义是( C )。
A.运算结果为正数 B.运算结果为负数
C.运算结果不为零 D.运算结果为零
17、下列8086CPU的四个段寄存器中,在程序设计中是不可省略的寄存器是( A )。
A、CS B、DS C、ES D、SS
18、占用CPU时间最长的数据传送方式是( C )。
A. DMA B. 中断 C.查询 D.无条件
19、指令MOV AX, [BX][DI]的源操作数的寻址方式是(C)
A、寄存器寻址 B、寄存器间接寻址
C、基址变址寻址 D、寄存器相对寻址
分析:见教材P48的例题3-9
20、设串行异步通信的数据格式是:1个起始位,7个数据位,1个校验位,1个停止位,若传输率为1200bps,则每秒钟能传输的最大字符数为( B )个。
A. 100 B.120 C.1200 D.240
二、填空
1、ADC0809是一个分辨率为( 8 )位,具有( 8 )路模拟量输入的A/D转换器。
2、按数据流的方向,串行通信可分为:单工、( 半双工 )、(双工) 三种方式。
3、微机系统中,I/O端口的编址方式有(统一编址)和(独立编址)两种。
4、 8086 CPU地址总线共有( 20 )条,可寻址空间( 1M )字节。
5、 8253A芯片有( 3 )个计数通道,每个通道可有( 6 )种工作方式。
每个计器的计数长度是(16)位。
6、IN和OUT指令中传送数据的寄存器是( AL )。
7、I/O接口内的状态字是通过( 控制 )端口传送到CPU。
8、 DAC0832的工作方式是(直通)方式、(单缓冲)方式、(双缓冲)方式。
9、 8086微处理器可访问的I/O地址空间大小为( 64KB )。
10、 DMA控制器8237A有( 40 )个引脚,其内部有( 4 )个DMA通道,每个通道一次传送 的最大长度为( 64 )KB 。
11、DAC0832 的VREF接输入电压+10V,则其分辨率为(10V/256=39.1)mV 。
三、名词解释
1、接口:位于计算机系统与外设之间,具有独立功能、用来协助完成数据传送和控制任务的逻辑电路。
2、采样:把一个连续变化的物理量(模拟量)按时间周期性地取出瞬时值的过程,也叫取样。
3、量化:用有限的n位二进制数码来近似逼近时间离散、幅值连续的采样瞬时值。
4、中断:当CPU执行程序过程中,由于随机事件引起CPU暂时停止正在执行的程序,而转去执行用于处理该事件的程序,处理完后,又返回被中止的程序断点出继续执行,这一过程称为中断。
5、 中断向量:即中断服务程序的入口地址。
四、编程
1、若8255A的端口地址为180H~183H,端口A方式0工作,输入;端口B方式1工作,输出; 端口C方式0工作,输出。编写初始化程序
MOV AL, 94H ; 94H=1001 0100 ,见下图
MOV DX, 1 83H ;控制口的地址
OUT DX, AL
2、8253的4个端口地址分别为310H、312H、314H、316H,输入脉冲CLK的频率为2MHz,用十进制计数,编写出用计数器0产生频率为2kHz方波的初始化程序。
分析:根据题目要求,采用计数器0、工作方式3(方波)、二进制计数。
计数初值为:N= 2MHz /2kHz =1000,方式控制字为00110111B,即37H。
8253的方式控制字
初始化程序:
MOV DX,316H ;设定控制端口
MOV AL,37H ;写入控制字
OUT DX,AL
MOV AX,1000 ;设定计数初值
MOV DX,310H ;计数器0的端口地址
OUT DX,AL ;写计数初值1000的低字节00
MOV AL,AH ;取出计数初值1000的高字节10
OUT DX,AL ;写计数初值1000的高字节10
3、用8251A串行发送数据时,编写8086CPU查询发送设备是否准备好的程序段(即:查询8251A 的TXRDY线的状态)。 给定8251A的状态口地址为309H ,8251A状态字格式如下所示。
L: MOV DX,309H ; 8251A状态口地址
IN AL,DX ;读入8251A状态字
AND AL,01H ;查状态字的D0位是否是 1(发送器是否准备好)
JZ L ;发送器没有准备好,继续查询
8251A状态字格式
4、 下图DAC0832以单缓冲方式工作,单极性输出,用8086汇编语言编写输出端 V0 产生三角波电压的程序
DAC0832的端口地址为278H
上升段:输入给DAC0832的数字量先从0开始,逐次加1,当输入数字量为0时, DAC0832输出的模拟量为0V。当输入数字量逐次加1,最终为FFH时, 则DAC0832输出的模拟量为+5V。
VO
+5V
时间
0
上升段
下降段
下降段:输入给DAC0832的数字量先从FFH开始,逐次减1,当输入数字量为FFH时, DAC0832输出的模拟量为+5V。当输入数字量逐次加1,最终为00H时, 则DAC0832输出的模拟量为0V。
输出端V0产生三角波电压的程序
MOV DX,278H ; 0832的端口地址送DX
A0: MOV CX,0FFH ;三角波电压的最大值
MOV AL, 00H ; 准备三角波电压的起始输出数据
A1: OUT DX, AL ;输出三角波电压的上升段
INC AL ;输出值加1(上升段三角波电压的递增步进值)
LOOP A1 ;CX-1后,CX不等于0,则继续输出下一个电压
MOV CX,0FFH
A2: DEC AL ;输出值减1(即:下降段三角波电压的递减步进值)
OUT DX, AL ;输出三角波电压的下降段
LOOP A2 ;CX-1后,CX不等于0,则继续输出下一个电压
JMP A0
HLT
5、编程实现键盘输入的小写字母转换成大写字母并在显示器显示出来。(要求完整程序)
CODE SEGMENT
ASSUME CS:CODE
START: MOV AH, 01H ;从键盘输入字符的DOS调用,见P104,
NT 21H
CMP AL,‘a ‘ ;AL(从键盘输入字符的ASCII码存在AL中)和小写字母a的ASCII码比
JB EXIT ;P68,从键盘输入字符的ASCII码小于小写字母a
CMP AL, ‘z’ ;从键盘输入字符的ASCII码和母z的ASCII码比较
JA EXIT ;P68,从键盘输入字符的ASCII码大于小写字母z
SUB AL, 20H ;小写字母转换成大写字母( ASCII码减去20H)
MOV DL, AL ;DOS调用入口参数送DL,见P104,
MOV AH, 02H ;显示字符的DOS调用的功能号02H送AH
INT 21H
EXIT: MOV AH, 4CH ;结束程序
INT 21H
CODE ENDS
END START
6、 编写程序,实现下列函数:
MOV AL,X
CMP AL,0
JGE L1 ;X大于等于0
MOV AL, -5 ;否则X小于0,给Y赋值-5
JMP NEXT ; 输出函数值Y
L1: JG L2 ;X大于0
MOV AL, 0 ;否则(X等于0)给Y赋值0
JMP NEXT ; 输出函数值Y
L2: MOV AL,5 ; X大于0,给Y赋值5
NEXT:
MOV Y, AL ; 输出函数值Y
MOV AH,4CH
INT 21H
五、接口应用题
1、某PC系列微机应用系统以8255A作为接口,采集一组开关S7~S0的状态,然后通过一组发光二极管LED7~LED0显示出来,(Si闭合,对应LEDi灭;Si断开,对应LEDi亮),电路连接如下图所示。已知8255A的A、B两组均工作在方式0。
(1)写出8255A四个端口地址;
(2)写出8255A的工作方式控制字;
(3)编写实现给定功能程序。
Si闭合,PAi=0, 编程:让输出PBi=0, 则对应LEDi灭;
Si断开, PAi=1, 编程:让输出PBi=1, 则对应LEDi亮,
答:(1)8255的A口地址为 0000 0111 1110 0000=07E0H,
B口地址为 0000 0111 1110 0001=07E1H,
C口地址为 0000 0111 1110 0010=07E2H,
控制口地址为 0000 0111 1110 0011=07E3H
(2)8255的控制字10010000;即90H。
分析: (见P232的图8-15)
D7=1 ,方式控制字
A口方式0, 得到D6D5=00;
A口做输入用,得到D4=1;
B口方式0, 得到D2=0,
B口做输出用,驱动发光二极管,得到D1=0;
C口没有使用,缺省为D3=D0=0
得到:8255的控制字为10010000;即90H。
(3)程序清单
MOV DX,07E3H
MOV AL,90H
OUT DX,AL ;把控制字写到8255的控制口
NEXT:
MOV DX,07E0H
IN AL, DX ;读 A口的开关状态
MOV DX, 07E1H
OUT DX, AL ;开关状态送B口,驱动发光二极管
JMP NEXT ;循环显示开关状态
HLT
题目拓展:电路连接图不变,Si闭合,对应LEDi亮;
Si断开,对应LEDi灭, 请重新完成上题。
解: (1)(2)不变
(3) MOV DX,07E3H
MOV AL,90H
OUT DX,AL ;把控制字写到8255的控制口
NEXT:
MOV DX,07E0H
IN AL, DX ;读 A口的开关状态
NOT AL ; 若PAi=0, 让输出PBi=1 (B口对A口反向后输出)
MOV DX, 07E1H
OUT DX, AL ;开关状态送B口,驱动发光二极管
JMP NEXT ;循环显示开关状态
HLT
2、编写实现下图中用ADC0809进行A/D转换的程序。要求8088CPU以查询方式把A/D转换结果送给寄存器BL, 8255A的端口地址为0FCH~0FFH 。
分析:由图可知,8255AA口为输入,B口为输出,均为方式0,PC4为输入。
D7~D0(A/D转换结果数据的输出)
通过8255A的PA0~PA7输出给CPU
8255A的PB0~PB3输出给ADDC、ADDB、ADDA(通道号选择)和ALE
(通道号锁存控制)。
EOC(A/D转换完成的结束信号)
由8255A的PC4输入
ORG 1000H
START: MOV AL,98H ;8255A初始化,方式0,A口输入,B口输出
MOV DX,0FFH ;8255A控制字端口地址
OUT DX,AL ;送8255A方式字
MOV AL,0BH ;送IN3输入端和地址锁存信号
MOV DL,0FDH ;8255A的B口地址
OUT DX,AL ;送IN3通道地址
MOV AL,1BH ;START=PB4=1
OUT DX,AL ;启动A/D转换
MOV AL,0BH
OUT DX,AL ;START=PB4=0
MOV DX,0FEH ;8255A的C口地址
TEST: IN AL,DX ;读C口状态
AND AL,10H ;检测EOC状态
JZ TEST ;PC4=0,未转换完,再查询测试PC4;
MOV DX,0FCH ;8255A的A口地址
IN AL,DX ;把A/D转换结果输入CPU,送给AL
MOV BX,AL
HLT
展开阅读全文
相关搜索