1、一、选择题1. 中断处理中,返回到主程序是由哪条指令来完成?( D)APUSH B POP CRET D IRET2下列中断类型不属于内部中断的是( A ) 。AINTR BINT 21H C溢出 D除以 03. 假定 (SS)3000H,(SP)0100H ,(AX) 2107H ,执行指令 PUSH AX 后,存放数据21H 的物理地址是( D ) 。A30102H B30101H C300FEH D300FFH答案:D ( 栈顶的 PA=10H*3000H+0100H=30100H,压栈 SP-2, 高字节 21H 放在高地址300FFH 里)4、8086 的存储器分段结构,每个段的长度
2、不超过( D) A.128KB B.32KB C.1MB D.64KB5、 8086 标志寄存器的标志位中,用来判断结果正负的是( B)A、ZF B、SF C、DF D、CF6、 必然使 BH 中的数变为奇数的指令是( ) AADD BH,01H BOR BH, 01H CXOR BH,01H DTEST 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.读存储
3、器 B.写存储器 C.写 I/O 口 D.读 I/O 口9. 将累加器 AX 的内容清零的错误指令是( D )。AAND AX,0 BXOR AX,AXCSUB AX,AX DCMP AX, AX10. 程序计数器 PC 存放的是 ( D ) 。A程序总的指令条数 B程序已执行的指令条数 C程序尚未执行的指令条数 D下一条指令的存储地址11、汇编语言源程序文件的扩展名为( C ) 。Aexe Bdoc Casm DC12、段定义语句以( B )语句结束。A.END B.ENDS C.ENDP D.ENDM 13、8086 系统的 15H 号中断的中断向量存放在内存储器地址为( A ) 的单元中
4、。A. 0000:0054H0000:0057H B. 0000:0060H 0000:0063HC. FFF0:0054HFFF0 :0057H D. FFF0: 0060HFFF0:0063H 答案:A (15H*4=21D*4=84D=54H)14、下列指令中正确的是( D )。A. IN DX, AL B. IN AL, 265HC. OUT AL, DX D. XOUT 24H, AL15、要输入地址为 1234H 的 I/O 端口中的 8 位数据,正确的指令是( B ) A、 MOV DX, 1234H B、 MOV DX , 1234H OUT DX, AL IN AL , DX
5、 1,/0WRMIOC、IN AX , 1234H D、 OUT DX , 1234H16、运算结束后,标志位 ZF=0,含义是( C ) 。A运算结果为正数 B运算结果为负数 C运算结果不为零 D运算结果为零17、下列 8086CPU 的四个段寄存器中,在程序设计中是不可省略的寄存器是( A ) 。A、CS B、DS C、 ES D、SS18、占用 CPU 时间最长的数据传送方式是( C )。 A. DMA B. 中断 C.查询 D.无条件19、指令 MOV AX, BXDI的源操作数的寻址方式是(C)A、寄存器寻址 B、寄存器间接寻址C、基址变址寻址 D、寄存器相对寻址分析:见教材 P48
6、 的例题 3-920、设串行异步通信的数据格式是: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 )个
7、计数通道,每个通道可有( 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
8、)mV 。三、名词解释1、接口:位于计算机系统与外设之间,具有独立功能、用来协助完成数据传送和控制任务的逻辑电路。2、采样:把一个连续变化的物理量(模拟量)按时间周期性地取出瞬时值的过程,也叫取样。3、量化:用有限的 n 位二进制数码来近似逼近时间离散、幅值连续的采样瞬时值。4、中断:当 CPU 执行程序过程中,由于随机事件引起 CPU 暂时停止正在执行的程序,而转去执行用于处理该事件的程序,处理完后,又返回被中止的程序断点出继续执行,这一过程称为中断。5、中断向量:即中断服务程序的入口地址。四、编程1、若 8255A 的端口地址为 180H183H,端口 A 方式 0 工作,输入;端口 B
9、方式 1 工作,输出; 端口 C 方式 0 工作,输出。编写初始化程序MOV AL, 94H ; 94H=1001 0100 ,见下图MOV DX, 1 83H ;控制口的地址OUT DX, AL2、8253 的 4 个端口地址分别为 310H、312H 、314H、316H,输入脉冲 CLK 的频率为2MHz,用十进制计数,编写出用计数器 0 产生频率为 2kHz 方波的初始化程序。分析:根据题目要求,采用计数器 0、工作方式 3(方波) 、二进制计数。计数初值为:N= 2MHz /2kHz =1000,方式控制字为 00110111B,即 37H。8253 的方式控制字初始化程序: MOV
10、 DX,316H ;设定控制端口MOV AL,37H ;写入控制字OUT DX,ALMOV AX,1000 ;设定计数初值MOV DX,310H ;计数器 0 的端口地址OUT DX,AL ;写计数初值 1000 的低字节 00MOV AL,AH ;取出计数初值 1000 的高字节 10OUT DX,AL ;写计数初值 1000 的高字节 103、用 8251A 串行发送数据时,编写 8086CPU 查询发送设备是否准备好的程序段(即:查询 8251A 的 TXRDY 线的状态) 。 给定 8251A 的状态口地址为 309H ,8251A 状态字格式如下所示。L: MOV DX,309H ;
11、 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。下降段:输入给 DAC0
12、832 的数字量先从 FFH 开始,逐次减 1,当输入数字量为 FFH 时, DAC0832 输出的模拟量为+5V。当输入数字量逐次加 1,最终为 00H 时, 则 DAC0832 输出的模拟量为 0V。VO+5V时间0上升段 下降段输出端 V0 产生三角波电压的程序MOV DX,278H ; 0832 的端口地址送 DXA0: MOV CX,0FFH ;三角波电压的最大值MOV AL, 00H ; 准备三角波电压的起始输出数据A1: OUT DX, AL ;输出三角波电压的上升段INC AL ;输出值加 1(上升段三角波电压的递增步进值)LOOP A1 ;CX-1 后,CX 不等于 0,则继
13、续输出下一个电压MOV CX,0FFHA2: DEC AL ;输出值减 1(即:下降段三角波电压的递减步进值 )OUT DX, AL ;输出三角波电压的下降段LOOP A2 ;CX-1 后,CX 不等于 0,则继续输出下一个电压JMP A0HLT5、编程实现键盘输入的小写字母转换成大写字母并在显示器显示出来。 (要求完整程序)CODE SEGMENTASSUME CS:CODE START: MOV AH, 01H ;从键盘输入字符的 DOS 调用,见 P104,NT 21HCMP AL,a ; AL(从键盘输入字符的 ASCII 码存在 AL 中)和小写字母a 的 ASCII 码比JB EX
14、IT ; P68,从键盘输入字符的 ASCII 码小于小写字母 aCMP AL, z ;从键盘输入字符的 ASCII 码和母 z 的 ASCII 码比较JA EXIT ; P68,从键盘输入字符的 ASCII 码大于小写字母 zSUB AL, 20H ;小写字母转换成大写字母( ASCII 码减去 20H)MOV DL, AL ;DOS 调用入口参数送 DL,见 P104,MOV AH, 02H ;显示字符的 DOS 调用的功能号 02H 送 AHINT 21HEXIT: MOV AH, 4CH ;结束程序 INT 21HCODE ENDSEND START6、 编写程序,实现下列函数:MOV
15、 AL,XCMP AL,0JGE L1 ;X 大于等于 0MOV AL, -5 ;否则 X 小于 0,给 Y 赋值-5JMP NEXT ; 输出函数值 YL1: JG L2 ;X 大于 0MOV AL, 0 ;否则(X 等于 0)给 Y 赋值 0JMP NEXT ; 输出函数值 YL2: MOV AL,5 ; X 大于 0,给 Y 赋值 5NEXT:MOV Y, AL ; 输出函数值 YMOV AH,4CH INT 21H五、接口应用题1、某 PC 系列微机应用系统以 8255A 作为接口,采集一组开关 S7S0 的状态,然后通过一组发光二极管 LED7LED0 显示出来, (Si 闭合,对应
16、 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=0
17、7E2H,控制口地址为 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,07E3HMOV AL,90HOUT DX,AL ;把控制字写到 8255 的控制口NEXT:MOV DX,07E0HIN
18、 AL, DX ;读 A 口的开关状态MOV DX, 07E1HOUT DX, AL ;开关状态送 B 口,驱动发光二极管JMP NEXT ;循环显示开关状态HLT题目拓展:电路连接图不变,Si 闭合,对应 LEDi 亮;Si 断开,对应 LEDi 灭, 请重新完成上题。解: (1) (2)不变(3) MOV DX,07E3HMOV AL,90HOUT DX,AL ;把控制字写到 8255 的控制口NEXT:MOV DX,07E0HIN AL, DX ;读 A 口的开关状态NOT AL ; 若 PAi=0, 让输出 PBi=1 (B 口对 A 口反向后输出)MOV DX, 07E1HOUT D
19、X, AL ;开关状态送 B 口,驱动发光二极管JMP NEXT ;循环显示开关状态HLT2、编写实现下图中用 ADC0809 进行 A/D 转换的程序。要求 8088CPU 以查询方式把 A/D转换结果送给寄存器 BL, 8255A 的端口地址为 0FCH0FFH 。分析:由图可知,8255AA 口为输入,B 口为输出,均为方式 0,PC4 为输入。D7D0(AD 转换结果数据的输出)通过 8255A 的 PA0PA7 输出给 CPU8255A 的 PB0PB3 输出给 ADDC、ADDB、ADDA (通道号选择)和 ALE(通道号锁存控制) 。EOC(A/D 转换完成的结束信号)由 825
20、5A 的 PC4 输入ORG 1000HSTART: 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 1OUT 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,送给 ALMOV BX,ALHLT