一、单选题(30)1C 2B 3C 4A 5C 6C 7A 8D 9A 10D11B 12D 13C 14A 15B 16C 17D 18A 19B 20A21C 22D 23A 24D 25C 26A 27B 28C 29D 30C二、判断题(20)1√2 X 3 X4√5 X6 X7√8 X9√10 X11X12 X13√14√15√16√17 X18 X19 X20 X三、简答题(10)1 课本P368。
2WR# RD# M/IO# BHE# DT/R#mov ah, DS:[1001] : 1 0 1 0 0mov ah, DS:[1000] : 1 0 1 1 0mov ax, DS:[1000] : 1 0 1 0 03答案要点:INTR信号有效,中断允许标志位1;CPU执行完当前指令。
4答案要点:采用先进的超标量流水线机制,以并行方式在U、V两条流水线上同时执行两条指令。
在U 流水线上可以执行任意指令,但是在V流水线上只能执行和当前U流水线上执行的指令符合配对规则的指令。
5答案要点:逻辑地址、线性地址、物理地址;逻辑地址=段选择子:偏移量,通过逻辑地址可得到段描述,之后将得到线性地址。
线性地址=段基址+偏移量,线性地址通过相应的页面映射规则(如果有)就可以得到实际的物理地址。
物理地址=页基址+页内偏移量,通过线性地址相应的页面映射规则得到。
6答案要点:GDT/IDT为所有任务共享;LDT为每个任务私有。
7答案要点:需要16Kx8/8Kx4=4,一共需要4片1#和2#芯片构成bank0,3#和4#芯片构成bank1bank0:8Kx8,2^13,A0=0bank1:8Kx8,2^13,BHE#=08答案要点:2个总线周期。
第一个总线周期:8086触发一个INTA脉冲,告诉中断控制器,它的INTR予以确认。
第二个总线周期:CPU出发一个INTA脉冲,让中断控制器将中断类型号放在数据总线上,并在T4拍开始的下降沿采集中断类型号。
9答案要点:包含两个方面:(1)初始化数据缓冲区的起始地址(2)初始化传输的字节数10答案要点:在设置特殊屏蔽方式后,在用OCW1对屏蔽寄存器的的某一位置1时,会同时使当前中断服务寄存器的对应位置0,这样,不止屏蔽了当前正在处理的这级中断,并且开放了其它级别较低的中断。
四、填空题(10)1、程序方式、中断方式、DMA方式2、分辨率、转换精度、转换速率和建立时间、线性误差3、I/O空间、内存空间、配置空间4、实模式、保护模式、虚拟8086模式5、总线周期6、指令周期7、可屏蔽中断、非屏蔽中断8、逻辑地址、线性地址、物理地址9、宽度、总线频率、传输率10、全嵌套、特殊嵌套、优先级自动循环、优先级特殊循环五、8253第一题题目:欲使8253的计数器2产生600 Hz的方波,经滤波后送至扬声器发音,当按下任一键时声音停止。
试编写此程序。
8253的端口地址为40H-43H,8255A的端口地址为60H-63H。
8253的输入时钟CLK的频率为1.19MHz。
解答:计数器2的时钟输入:T2=1/f2=1/1.19 MHz840 ns方波发生器OUT2的输出周期为:1/600 Hz1665 ms计数器2方波发生器的计数初值为:1665 ms / 840 ns1983利用上述办法,编制的源程序如下。
STACK SEGMENT PARA STACK ‘STACK’DB 256 DUP(0)STACK ENDSDATA SEGMENT PARA PUBLIC ‘DATA’FRED DW 1983DATA ENDSCODE SEGMENT PARA PUBLIC ‘CODE’ASSUME CS:CODE, DS:DATA, SS:STACKSTART PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DX,AXIN AL,61HOR AL,03HOUT 61H,ALMOV AL,10110110BOUT 43H,ALMOV BX,FREDMOV AL,BLOUT 42H,ALMOV AL,BHOUT 42H,ALMOV AH,0INT 16HIN AL,61HAND AL,11111100BOUT 61H,ALRETSTART ENDPCODE ENDSEND START8253第2题题目:利用8253的计数器0对外部事件计数10次。
如图1,外部事件用单稳电路输入,单稳电路的输出接至CLK,GATE接+5V。
试编写此程序。
图1 8253对外部事件计数电路图解答:由于计数器的CLK接至单稳电路,因而计数初值写入计数器后要由外接的单稳电路输入一个脉冲把计数初值装入减1计数器,才能对外部事件进行计数。
所以,外部事件要输入11次,用查询计数器的初值和最终值编制的程序如下。
STACK SEGMENT STACK ‘STACK’DW 32 DUP(0)STACK ENDSDATA SEGMENTDA1 DB ‘WAIT LOAD’,0AH,0DH,’$’DA2 DB ‘PLEASE INPUT’,0AH,0DH,’$’DA3 DB ‘PROGRAM TERMINATED NORMALLY’,0AH,0DH,’$’DATA ENDSCODE SEGMENTBEGIN PROC FARASSUME SS:STACK,CS:CODE,DS:DATAPUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV DX,383HMOV AL,11HOUT DX,ALMOV DX,380HMOV AL,10HOUT DX,ALMOV DX,OFFSET DA1MOV AH,9INT 21HMOV DX,380HLOAD: IN AL,DXCMP AL,10HJNE LOADMOV DX,OFFSET DA2MOV AH,9INT 21HMOV DX,380HCONTIN: IN AL,DXCMP AL,0JNZ CONTINMOV DX,OFFSET DA3MOV AH,9INT 21HRETBEGIN ENDPCODE ENDSEND BEGIN8255 第一题题目:利用8255A作为并行打印机的接口。
要求:用8255A的A口连接打印机,工作方式1输出,用查询方式将内存缓冲区OBUF的100H 个字节数据送打印机输出,打印机接口电路如图2所示,试编制打印驱动程序。
图2解答:打印驱动程序编制如下:DATA SEGMENTOBUF DB 100H DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,0A8HOUT 43H,ALMOV CX,100HMOV SI,OFFSET OBUFL1: IN AL,42HAND AL,10HJNZ L1MOV AL,[SI]OUT 40H,ALINC SILOOP L1MOV AX,4C00HINT 21HCODE ENDSEND START8255 第2题题目:利用8255A作为简单的输入/输出接口实现同步传送。
设在IBM PC的扩展板上有一片8255A,其端口B连接8位二进制开关,端口C接8位LED发光二极管,电路连接如图3所示。
运行程序时,可观察到LED的显示将反映二进制开关的状态,并且,按下任意键时,可退出运行。
假设8255A的端口地址为:端口A:218H,端口B:219H,端口C:21AH,控制端口:21BH。
图3解答:源代码如下:DATA SEGMENTMESS DB ’ENTER ANYKEY TO EXIT TO DOS!’,0DH,0AH,’$’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09INT 21HINIT: MOV DX,21BHMOV AL,10000010BOUT DX,ALREAD: MOV DX,219HIN AL,DXWRITE: MOV DX,21AHOUT DX,ALMOV DL,0FFHMOV AH,06HINT 21HJNZ QUITTJMP READQUITT: MOV AH,4CHINT 21HCODE ENDSEND START。