微机原理部分试题
2023年10月25日发(作者:财务人员工作述职报告范文(精选15篇))
女尸不腐烂-
1.如图所示采用8255A 作为打印机接口。PA 口作为向打印机输
出的数据口,工作于方式0,采用程序查询的控制方式。由PC0
产生负脉冲选通信号,PC7 读取外没状态BUSY,8255A 的端口地
址为90H~93H。写出从内存2000H:3000H 开始取出100 个数据
送打印机的控制程序。
解:其控制程序为:MOV AX, 2000H MOV DS, AX MOV BX, 3000H
M OV CX, 100 MOV AL, 10001000B ;8255A 初始化 OUT 93H, AL
LOP:IN AL, 92H TEST AL, 80H JNZ LOP ;若BUSY 有效则继续查询
MOV AL, [BX] OUT 90H, AL ;A 口输出 MOV AL, 01H OUT 93H, AL
MOV AL, 00H OUT 93H, AL MOV AL, 01H OUT 93H, AL ;以上六行产生STB INC BX LOOP LOP MOV AH, 4CH INT 21H
2.下图为采用8253 产生定时中断信号IR2。已知Fclk0=1MHz,要求每隔1 小时发
出一个中断请求,8253 的端口地址为180H~183H,试编制8253 的初始化程序。
○ IR2 解:本题采用2 个计数通道串联使用,要求两个计数通道的计数初值乘
+5v 积为:n0×n1=TOUT1/TCLK0
TCLK0=1/fclk0=1/1MHz=1μs
n0×n1=3600s/1μs=36×108可选取n0=n1=6×104。因为n0和n1 大于10000,必须采用二进制计数。
设定二个计数器都工作于方式2。
8252 初始化程序如下:
MOV AL, 00110100B ;通道0 初始化 MOV DX, 183H OUT DX, AL
MOV AL, 01110100B ;通道1 初始化 OUT DX, AL MOV AX, 60000 ;通道0 写入计数初值 MOV DX, 180H OUT DX, AL MOV AL, AH
OUT DX, AL MOV DX, 181H MOV AX, 60000 ;通道1 写入计数初值
OUT DX, AL MOV AL, AH OUT DX, AL
3. 试说明在8088CPU 执行INT 40H 指令的过程?
答:CPU 取出INT 40H 指令,经指令译码获知这是一条中断指令。并且得到40H
就是该软件央断的中断向量码。接着就将PSW、CS 和IP 压入堆栈保护起来,并关中断。而后,将中断向量码40H 乘4 得到中断向量表地址,从该地址开始的顺序两个单元的内容送IP,下两个单元的内容送CS。这就转向了中断服务程序。当然,在此之前,中断服务程序的入口地址早已填入中断向量表中。
4.简述扫描法识别矩阵式键盘上闭合键的方法。
答:将行线接输出口,列线接输入口,采用行扫描法,先将某一行输出为低电平,
其它行输出为高电平,用输入口来查询列线上的电平,逐次读入列值,如果行线上的值为0 时,列线上的值也为0,则表明有键按下。否则,接着读入下一列,直到到该行有按下的键为止。如该行没有到有键按下,就按此方法逐行下去,直到扫描完全部的行和列。
5.一个异步串行发送器,发送具有8 位数据位的字符,在系统中使用一位作偶校验,2 个停止位。若每秒钟发送100 个字符,它的波特率和位周期是多少? 答:每个字符需要的发送位数是12 位(数据位8 位,校验位1 位,停止位2 位,
起始位1 位)。每秒发送100 个字符共1200 位。因此波特率为1200 波特,位周期= 1除以1200≈833μs
6、已知8253 的端口地址为40H~43H,CLK2 的时钟是4MHz。要求通过三个定时器级联,实现从OUT2 输出频率为1000Hz 的方波,从OUT1 输出频率为100Hz
的单时钟脉冲波,从OUT0 输出频率为1 Hz 的方波。
1、画出8253 各通道的GATE0~GATE2、CLK1、CLK2 的接线图;
2、选定各通道的工作方式,并计算各自的计数初值;
3、编写各通道的初始化程序段。(说明:方波用方式3,单时钟脉冲波用方式2)
附:8253 方式控制字
解:1、接线图
2、计数器2 工作在方式3,计数初值为:4MHz/1000Hz=4000=0FA0H
计数器1 工作在方式2,计数初值为:1000Hz/100Hz=10=0AH
计数器0 工作在方式3,计数初值为:1000Hz/1=1000=3E8H
3、编程:
计数器2
MOV AL ,10110110B OUT 73H,AL MOVAL,0A0H OUT 72H,AL MOVAL,0FH OUT 72H,AL
计数器1:
MOV AL ,01010100B OUT 73H,AL MOV AL,0AH OUT 71H,AL
计数器0:
MOVAL,00110110B OUT 73H,AL MOVAL,0E8H OUT 70H,AL MOVAL,03H OUT 70H,AL
7、用8255A方式0与打印机接口(如下图所示), STROBE 为打印机
选通信号,低电平有效;BUSY打印机忙状态信号,高电平有效。
1、8255A 的端口地址为80H~83H,编写8255A 的初始化程序段;
2、8255A 的PA 端口用查询方式向打印机输出数据,编写打印机子程序
解:1.分析:8255A 的A 口为方式0 输出,C 口高4 位为方式0 输出,C 口低4 位为方式0
输入,B 口未用,所以方式控制字为10000001B(81H),本接口采用状态查询输出控制方法。8255A 初始化程序如下:
mov al,10000001B ;方式控制字:81H
out 83H,al ;A 端口方式0 输出,C 端口上输出、下输入
mov al,00001111B ;端口C 的复位置位
out 83H,al; 控制字,使PC7=1
2.根据分析查询输出打印子程序如下:
printc proc push ax push dx prn: in al,82H ; 读取端口C,查询打印机状态 and al,04h ;PC2=BUSY=0? jnz prn ;PC2=1,打印机忙;则循环等待 mov al,ah ; PC2=0,打印机不忙;则输出数据 out 80h,al ;将打印数据从端口A 输出 mov al,00001110B ;从PC7 送出控制低脉冲,置STROBE =0 out 83h,al nop ;产生一定宽度的低电平 nop mov al,00001111B ;置=1 out 83h,al ;最终,STROBE*产生低脉冲信号 pop
dx pop ax ret printc endp
8.数据总线用来在CPU 与内存储器或I/O 设备之间交换信息,地址总线由CPU
发出,用来确定CPU 要访问的内存单元或I/O 端口的地址。
9、根据电路图及下表要求,编写完整的根据从开关读入的编码在数码管上显示相应数字的程序(包括在数据段中定义字形码的内容)
STACK SEGMENT STACH
DW 100DUP(?) STACK ENDS DATA SEGMENT X1 DB DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR
PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX
MOV BX,OFFSET X1 MOV AL,10001011B ;8255 工作在方式0,PA 输出,PC 输入
MOV DX,223H OUT DX,AL NEXT: MOV DX,222H IN AL,DX AND
AL,7 ;屏蔽掉PC 口读入的高5 位 XLAT MOV DX,220H OUT DX,AL
JMP NEXT MAIN ENDP CODE ENDS END MAIN
10 .通过8259A产生中断使8255A的端口A经过反相驱动器连接一共阴极七段发光二极管显示器;端口B是中断方式的输入口。设8259A的中断类型码基值是32H。8255A口地址为60H-63H,8259A端口地址为20H、21H。试完成以下任务:
1)设系统中只有一片8259A,中断请求信号为边沿触发方式,采用中断自动结束方式、全嵌套且工作在非缓冲方式,试完成8259A的初始化编程。
(2)若使LED上显示E,端口A送出的数据应为多少?如显示O端口A送出的数据又为多少?编写程序实现在LED上先显示E,再显示O的程序。
(1)MOV AL,0001011B
OUT 20H,AL MOV AL,00110010B OUT 21H,AL MOV AL,00010011B
OUT 21H,AL
(2)如果显示E,则端口A送出的数据是30H;
如果显示O,则端口A送出的数据是01H;
程序如下:
MOV AL,10000000B OUT 63H,AL MOV AL,30H OUT 60H,AL MOV AL,01H
OUT 60H,AL
DMAC8237A的主要性能:1、有4个独立的DMA通道,每个通道都充许开放或禁止DMA请求,都可以独立控制自动预置方式。2、具有三种基本的传输方式:单字节传送、数据块传送、请求传送。3、具有存储器到存储器的传送功能4、具有正常时序和压缩时序两种基本时序。5、8257A级联可扩充任意个DMA通道。6、有两种优先管理方式:固定优先级和循环优先级。7、有较高的数据传输速率。
11. 现在,计算机主板上一般都包括哪些I/O接口?I/O接口卡如何与主板相连?答:现在,计算机主板上一般包括串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器接口、光驱接口、USB接口等。象显示器适配器、网卡、modem卡等I/O接口卡一般通过总线插槽与主板相连。
12. 简述DOS操作系统各部分的作用及相互关系。答:DOS操作系统包括3个模块:DOS-Shell()、DOS-Kernel()、DOS-BIOS().DOS-Shell模块对用户输入的DOS命令行或应用程序行作出响应。即负责DOS命令的解释和任务的分配,具体工作则要靠DOS-Kernel模块所提供的系统功能完成。DOS-Kernel模块尽管提供了许多的系统功能,但由于执行每一个系统功能过程中,完全依赖各种设备实现指定的功能,因此,它还要进一步调用DOS-BIOS模块中的设备驱动程序才能工作. DOS-BIOS模块对DOS-Kernel传送的"请求"进行解释,最终转换为对固化在ROM-BIOS中的设备控制程序的请求并由它们去控制硬件,完成指定的操作。
13、从键盘敲入一个大写字母,如何转换为与其相对应的小写字母?从键盘敲入16进制数字符0~F,如何转换为其相对应的二进制数(00000000~00001111)? 答:从键盘敲入一大写字母后,将其ASCII码加上20H,就转换成了与其相对应的小写字母。从键盘敲入16进制数字符0~9后,将其ASCII码值减去30H,就转换成了与其相对应的二进制数.。从键盘敲入16进制数字符A~F后,将其ASCII码值减去37H,就转换成了与其相对应的二进制数。
14、锁存器和寄存器有什么不同? 答:锁存器与寄存器都是用来暂存数据的器件,在本质上没有区别,不过寄存器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化。