1、微机系统与接口技术复习 一、选择题 1.8086/8088系统中堆栈以 C 为单位进行操作的。 A.半字节 B. 字节 C. 字 D. 双字 2.在下列指令中,不影响堆栈内容的指令是 A 。 A. JMP B. POP C. CALL D. IRET 3.标志寄存器中的TF位可以用来屏蔽 A 。 A. 单步中断 B. INT n中断 C. 可屏蔽中断 D. 以上都不行 4.VAR是数据段中定义的变量,指令CMP VAR[BX][DI],AX中目的操作数的寻址方式是 C
2、 。 A.寄存器相对寻址 B.直接寻址 C.相对基址变址 D.比例变址寻址 5.下列指令执行后,不影响标志位的指令是 A 。 A.PUSH [1000h] B.DEC DX C.AND CX,AX D.IRET 6.下面关于PC机串行通信接口的叙述中,正确的是 A 。 A)异步通信时,一帧信息以起始位开始、停止位结束,起始位之后是数据的最高位。 B)系统A和系统B以半双工方式进行串行通信时,数据能从A传送到B,也能从B传送到A,并且可以同时进行。 C)PC机的串行通信接口采用同步通信方式。 D)PC机的串行通信接口
3、采用RS-232标准。 7.若82C55A组工作在方式1,输出,B组工作在方式0,输入,则其方式控制字为 B 。 A. 23H B. A3H C. 80H D. 85H 8. 在8086系统中,假设SS=2000H SP=0102H,则执行PUSH AX指令后,栈顶的物理地址是 C 。 A. 20104H B. 20102H C. 20100H D. 200FEH 9.设DS=6321H,SS=6232H,BP=1860H,指令DEC BYTE PTR [BP+3]操作数的物理地址是
4、 D 。 A. 64A73H B. 64183H C. 65073H D. 63B83H 10.循环指令LOOPNZ终止循环的条件是 C 。 A.CX=0,或ZF=1 B. CX=0,且ZF=0 C.CX≠0,且ZF=0 D. CX≠0,或ZF=1 11.BUFFER DW 10H DUP(3 DUP(2,?),1,2 DUP(?),100) 上述语句汇编后,为变量BUFFER分配的存储单元字节数是 D 。 A. 160 B. 22 C. 80 D. 320 12.要禁止8259A的I
5、R0的中断请求,则其中断屏蔽操作指令字OCW1应为 D 。 A. 80H B. 28H C. E8H D. 01H 13.在8086环境下,对单片方式使用的8259A进行初始化时,必须放置的初始化命令 字为 B 。 A. ICW1,ICW2,ICW3 B. ICW1,ICW2,ICW4 C. ICW1,ICW3,ICW4 D. ICW2,ICW3,ICW4 14.8255A的方式选择控制字应写入 D 。 A. A口 B. B口 C. C口 D. 控制口 15.当DMAC向CPU发出HOLD信号,CPU响应该请求后发出HLDA,表示CPU让
6、出 总线使用权,此时由 B 占有总线使用权。 A.CPU B.DMAC C.存储器 D.总线控制器 16.标准键盘接口电路中,8255从接口电路移位寄存器中获得按键的 C 。 A.串行扫描码 B.ASCII码 C.并行扫描码 D.汉字编码 17.编程使8255的C口按位置位/复位控制字为0DH、0AH、00H、07H、09H、02H、0FH、05H输出后,C口输出的值为 C 。 A.98H B.89H C
7、.DCH D.CDH 18.CPU可访问地址空间的大小取决于 C 。 A.CPU运行频率 B.系统存储容量 C.地址总线位数 D.数据总线位数 19.为了获得20位存储器地址,8086系统采用 B 。 A.直接使用段地址 B.段地址左移4位加上偏移量 C.直接使用偏移量 D.偏移量左移4位加上段地址 20.中断服务程序的入口地址简称为 B 。 A.中断优先级 B.中断向量 C.中断类型码 D.中断向量表 二、填空题 1.微处理器包括算术逻辑部件
8、寄存器、控制器部件,这三个基本部分由内部总线连接在一起。P8 2.微机接口是CPU和输入、输出设备之间进行连接和沟通的部件。P24 3.Intel 8086CPU内部结构按功能可分为两部分:总线接口单元BIU和执行单元EU。P26 4.CPU内部的寄存器分为程序可见的寄存器和程序不可见的寄存器两大类。前者可分为通用寄存器、专用寄存器和段寄存器三类。P29 5.堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进去,采用“先进后出”的规则。P36 6.8086系统工作于最小系统,即单处理方式,8086系统工作于最大系统,即多处理方式。P39/
9、41 7.计算机中的指令由操作码字段和操作数字段两部分组成。P57 8.指令中操作数通过如下三种方式提供:一个具体的数值,存放数据的寄存器,或指明数据在主存位置的存储器地址。P58 9.有效地址(EA)可由以下四种成分组成:位移量、基址、变址和比例因子。P59 10.与地址有关的寻址方式有:段内直接寻址、段内间接寻址、段间直接寻址和段间间接寻址。P66-69 11.ORG伪操作用来设置当前地址计数器的值。P125 12.DB用来定义字节,DW用来定义字同,DD用来定义双字。P121 13.通常中断源有以下几种:外部设备的I/O请求、实时时钟、硬件发生故障和软件中断。P203 1
10、4.实现定时或延时控制,通常有三种方法:软件定时、不可编程硬件定时和可编程硬件定时。P226 15.DMA方式是指不通过CPU的干预,直接在外设和内存之间进行数据传送的方式。P246 16.8255A有3个8位的数据端口,即端口A、端口B和端口C。P266 17.串行通信中有两种不同的通信方式:异步通信和同步通信。前者数据的传送以一个字符为单位,后者是用一串特定的二进制序列,以连续的形式发送,每个时钟周期发送一位数据。P283 18.8251A是一个通用串行输入/输出接口芯片,可用来将CPU传送给外设的信息以串行方式向外发送,或将外设输入给CPU的信息以串行方式接收并转换成并行数据传送
11、给CPU。P293 19.D/A转换器功能是将数字量转换为模拟量。DAC0832是8位数/模转换芯片,数据的输入方式有双缓冲、单缓冲和直接输入,适用于要求几个模拟量同时输出的情况。P381 20.A/D转换器功能是将模拟量转换为数字量。ADC0809是CMOS单片型逐次逼近式A/D转换器,具有8个通道的模拟量输入线,可在程序控制下对任意通道进行A/D转换,得到8位二进制数字量。P394-395 三、名词解释题 1.微机的字长 是指微处理器内部一次可以并行处理二进制代码的倍数。P4 2.存储容量 是衡量微机内部存储器能存储二进制信息量大小的一个技术指标。P5 3.微型计算机
12、 是指以微处理器为核心,配以内存储器以及输入、输出(I/O)接口和相应的辅助电路而构成的裸机。P9 4.微型计算机系统 是指由微型计算机配以相应的外围设备及其它专用电路、电源、面板、机架以及足够的软件而构成的计算机系统,简称MCS。P10 5.程序可见的寄存器 是指在汇编语言程序设计中用到的寄存器,它们可以由指令来指定。P29 6.IP 为指令指针寄存器,是存放下次将要执行的指令在代码段的偏移量。P31 7.中断技术 指在计算机的运行过程中,允许外部设备向CPU提出服务请求,当CPU接收到服务请求后,暂时停下当前正在运行的程序,转去执行外部设备服务程序,待外部设备服务程序运行完
13、毕后,再返回原程序的断点处继续往下执行的处理机制。P203 8.软件定时 指通过执行一段固定的循环程序来实现定时。P226 9.通用串行总线USB 它是基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目的,一种新型接口标准。P319 10.CRT显示器 它通过电子束轰击荧光屏而发光,在控制逻辑配合下可以显示字符、图形和图像。P342 四、简答题(每题7分,共28分) 1.伪指令语句与指令性语句的最大区别是什么? 答:伪指令语句经汇编后不产生任何机器代码,而指令性语句经汇编后会产生相应的机器代码;其次,伪指令语句所指示的操作是在程序汇
14、编时就完成了的,而指令性语句的操作必须在程序运行时才能完成。P110 2.一个完整的中断处理过程应包括哪五个基本阶段? 答:五个基本阶段是:⑴中断请求。⑵中断判优。⑶中断响应。⑷中断处理。⑸中断返回。P204 3.8253/8254内部有哪6个模块?有何作用? 答:六个模块是:⑴数据总线缓冲器。三态双向8位寄存器,三个功能:向8253写入确定8253工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。⑵读写逻辑,选择读出或写入寄存器,且确定数据传输方向,是读出还是写入。⑶控制字寄存器,用来选择计数器及相应的工作方式,只能写,不能读。⑷三个独立的计数器,实现计数/定时功能。P
15、229 4.一个完整的DMA操作工作过程通常包括哪五个阶段? 答:五个阶段是:⑴初始化。⑵DMA请求。⑶DMA响应。⑷DMA传送。⑸ DMA结束。P247-248 5. 在子程序调用时,试比较用堆栈传递参数和用寄存器传递参数各自的优缺点? 答:寄存器传递参数简单、速度快,但传递参数的个数受寄存器个数限制。 堆栈传递参数速度较寄存器传递参数慢,但数量不受限制。堆栈传递参数的方法具有标准化和层次化的优点。 6.请说出子程序调用和宏调用的特点。在编程中是如何应用它们的? 答:子程序调用是在执行时刻由CALL和RET指令实现的,需要堆栈支持的转移等额外代价,多次调用时可节省空间。宏调用是在
16、汇编时刻将宏体替换调用的宏展开过程,不节省空间、没有额外指令速度快。子程序适用于较复杂的功能封装,偏重于考虑程序结构;宏调用适合简单的功能的封装,偏重于节省编制和编制的一致性。 五、阅读程序,对后跟“;”的语句注释其功能 1.IBM-PC/XT微机8259A的初始化程序:(8259A的I/O端口地址为20H和21H)P220 MOV AL,00010011B ;ICW1,边沿触发,单片8259A,需ICW4 OUT 20H,AL MOV AL,00001000B ;设置ICW2,中断类型号高5位为00001 OUT 21H,AL MOV AL,00
17、001101B ;设置ICW4,非自动中断结束方式, ;完全嵌套方式,缓冲方式 OUT 21H,AL 2.如果要读出中断请求寄存器或中断服务寄存器ISR的内容,则通过设置OCW3来完成:(8259A的I/O端口地址为20H和21H)P221 MOV AL,00000010B OUT 20H,AL ;设置OCW3,发出读中断请求寄存器IRR命令 NOP ;延时,等待8259A操作结束 IN AL,20H ;读IRR内容 3.8253/8
18、254初始化程序:(8253的I/O端口地址为40H、41H、42H和43H)P235 mov al,0011 0110B ;计数器0为方式3,采用二进制计数,先低后高写入计数值 out 43h,al ;写入方式控制字 mov al,0 ;预置计数值为65536 out 40h,al ;写入低字节计数值 out 40h,ah ;写入高字节计数值 4.8253/8254初始化程序:(8253的I/O端口地址为40H、41H、42H和43H)P235 mov al,0101 0100B
19、 ;计数器1为方式2,采用二进制计数,定义只写低位字节 out 43h,al ;写入方式控制字 mov al,18 ;预置计数值为18 out 41h,al ;写入低字节计数值 5.异步方式下初始化编程如下:(假设8251A的两个端口地址分别为0C0H和0C2H)P299 MOV AL, 0FEH ;工作在异步方式,波特率系数为16,字符长度为8位,偶校验,2个停止位。则方式选择字为:11111110B=0FEH。 OUT 0C2H, AL ;设置方式选
20、择字 MOV AL, 37H ;使8251A工作状态要求:复位出错标志、使请求发送信号有效、使数据终端准备好信号有效、发送允许TxEN有效、接收允许RxE有效。则工作命令字应为37H。 OUT 0C2H, AL ;设置命令字 6.同步方式下初始化编程如下:(假设8251A的两个端口地址分别为0C0H和0C2H)P299-300 MOV AL, 40H ;使用8251A芯片,要先用内部复位命令40H,使8251A复位后,再写入方式选择控制字。 OUT 0C2H, AL ;复位8251A MOV
21、AL, 1CH ;8251A工作在同步方式,两个同步字符(内同步)、奇校验、每个字符8位,则方式选择字应为1CH。 OUT 0C2H, AL ;设置方式选择字 MOV AL, 0AAH ;又设第一个同步字符为0AAH, OUT 0C2H, AL ;写入第一个同步字符 MOV AL, 55H ;第二个同步字符为55H。 OUT 0C2H, AL ;写入第二个同步字符 MOV AL, 0B7H ;工作状态要求:使出错标志复位,允许发送和接收、使CPU己难备好且请求发送,启动搜索同步字符,则工作命令指令
22、应该是0B7H。 OUT 0C2H, AL ;设置命令字 7.从键盘接受一个十进制个位数N,然后显示N次问号“?”。 mov ah,1 ;接收键盘输入N int 21h and al,ofh ;只取低4 位 xor ah,ah ;异或ah清0 mov cx,ax ;N作为循环次数 jcxz done ;次数为0,则结束 again: mov dl,'?'
23、 ;循环体 mov ah,2 ;屏显“?” int 21h loop again ;循环控制 done: ;结束 8.BUFFER DW 1,2,$+4,3,4,$+4。假设汇编时BUFFER分配的偏移地址为0074H,则汇编后6个数据在相应存储单元的值是;1、2、7AH、3、4、7DH。 六、程序设计 1.8255A工作在置位/复位方式,要求在8255A芯片C口的PC3位产生一个方脉冲信号。写出满足功能要求的代码段。P264-281
24、 解:对PC3的置位控制字为 0 000 011 1B=07H 对PC3的复位控制字为 0 000 011 0B=06H MOV DX,PORTC ;送控制口地址 LP1: MOV AL,07H ;送控制字 OUT DX,AL ;初始化 CALL DELAY ;调用延时程序,输出维持一段时间 MOV AL,06H ;对PC3复位的控制字 OUT DX, AL CALL DELEY JMP LP1 2.假定8255A的端口A、B都工作在方式0下,端口A作为输入口,采集一组开关的状态,端口B作为输出口,把开关的状态通过指示灯显示。电路连接如右图所
25、示。写出满足功能要求的代码段。 (地址为04A0H~04A6H)P264-281 解:代码如下: MOV DX,04A6H ;控制口地址送DX MOV AL,10010000B ;A口输入,B口输出,方式0 OUT DX,AL MOV DX,04A0H ;A端口地址送DX IN AL,DX ;采集开关值 MOV DX,04A2H ;B端口地址送DX OUT DX,AL ;输出开关值 3.用异步串行输入方式输入2000个数据,存放到内存BUFFER开始的单元中。因为825
26、1A从外设接收一个字符RxRDY会自动置位,因此程序中不断对状态寄存器的RxRDY位进行测试,查询8251A是否已经从外设接收了一个字符。若RxRDY变为有效,即收到一个字符,CPU就执行输入指令取回一个数据存放到内存缓冲区,RxRDY在CPU输入一个字符后会自动复位。除了对状态寄存器的RxRDY位检测之外,程序还要检测状态寄存器的D3、D4、D5位,以判断是否出现奇/偶错、溢出错或帧错误,若发现错误就转错误处理程序。写出满足功能要求的代码段(程序中可不给出出错处里程序)。(设8251的地址为80H和81H)。P300 MOV AL,0FEH OUT 81H, AL
27、 ;写入方式选择字 MOV AL,37H OUT 81H, AL ;写入工作命令字 MOV BX, BUFFER ;BX指向缓冲区首址 MOV DI, 0 ;变址寄存器初值为0 MOV CX, 2000 ;设置计数器初值 WAIT:IN AL, 81H ;读状态字 TEST AL, 2 ;测RxRDY位 JZ WAIT ;为0,未收到字符 IN AL, 80H
28、 ;从数据口读入数据 MOV [BX][DI],AL ;将字符保存到缓冲区 INC DI ;缓冲区指针下移一个单元 IN AL,81H ;读状态字 TEST AL, 38H ;判断有无三种错误 JNZ ERROR ;有错,则转出错处理程序 LOOP WAIT ;没错,判是否结束循环 JMP EXIT ;结束 ERROR: CALL ERR_PRO ;转入错误处理程序 EXIT: …… 4.如右图所示,采用单缓冲方式,
29、通过DAC0832输出产生三角波,三角波最高电压5V,最低电压0V。(设DAC0832芯片地址为04A0H)请编写程序。P386 code segment assume cs:code start: mov cl,0 mov dx,04a0h lll: mov al,cl out dx,al inc cl push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch int 21h code ends end start 10






