微机原理试题
MOV DX, 889Fh (控制寄存器的端口地址正确,可得1分) MOV AL, 01110110b (初始化控制寄存器的值正确,可得1分) OUT DX, AL MOV DX, 889Dh (计数器1的端口地址正确,可得1分) MOV AX, 2000
OUT DX, AL ;低8位 (低8位数据正确,可得1分) MOV AH, AL
OUT DX, AL ; 高8位 (高8位数据正确,可得1分) 或者
MOV DX, 889Fh (控制寄存器的端口地址正确,可得1分) MOV AL, 01110111b (初始化控制寄存器的值正确,可得1分) OUT DX, AL
MOV DX, 889Dh (计数器1的端口地址正确,可得1分) MOV AX, 2000h
OUT DX, AL ;低8位 (低8位数据正确,可得1分) MOV AH, AL
OUT DX, AL ; 高8位 (高8位数据正确,可得1分)
3. 下图是使用SRAM芯片,在ISA总线上扩充内存。图中SBHE为总线高字节允许信号,高有效;SA0~SA23和SD0~SD15分别为系统地址线和系统数据线,请回答如下问题:(本题8分)
(1)写出每片SRAM 的存储容量。(2分) 答:每片容量为64KB(Bytes)(或512kbit)。 (2)写出各片的地址范围。(2分)
答:SRAM0的地址为:0C0000H~0DFFFFH的128KB中的偶地址, SRAM1的地址为:0C0000H~0DFFFFH的128KB中的奇地址。 (3)该地址译码电路是全译码电路还是部分译码电路?(1分) 答:为全译码电路。
(4)说明信号SBHE和SA0在电路中的作用(按两信号的编码说明)。(3分) 答:SBHE和SA0的作用是对两个存储体如何选择的信号,编码如下: SBHE SA0
1 0 存取16位数据; 1 1 存取高8位数据; 0 0 存取低8位数据;
共27页第21页
微机原理试题
0 1 无操作
SA1~SA16地址译码器SA23SA22SA21SA20SA19SA18SA17A0~A15RDWRSRAM0CEA0~A15RDWRSRAM1CEMEMRMEMWCS1SA0SBHECS2SD0~SD7SD0~SD15SD8~SD15图1. 在ISA总线上扩充存储器
4. (10分)某人设计出一定时电路。该电路每隔1秒通过8259向8088请求一次中断,相应的中断服务程序(名为INTPR)只完成对中断的次数进行统计。此人已编写好了名为INCINIT的用于填写相应中断向量及相关8259初始化操作的子程序。试编写程序(包括中断服务程序),用DOS 2号功能显示系统时间(只需显示每小时内秒的变化情况)。设8259中断结束由如下两条指令完成:MOV AL,20H,OUT 20H,AL。要求写出完整的数据段与代码段。
* 注: DOS 2号功能 - 入口:AH置2,DL = 待显示字符的ASCII码。
DATA SEGMENT INCNUM DB 0
LTVAL DB 2 ;前次在屏幕上显示的数 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA ;中断服务程序
INTPR: PUSH AX ; 保护现场 PUSH DS
MOV AX, DATA
MOV DS, AX STI ;开中断 INC INCNUM ; 加1
MOV AL, 20H ;发EOI命令 OUT 20H, AL POP DS POP AX IRET
; 恢复现场
共27页第22页
微机原理试题
;主程序
START: MOV AX, DATA
MOV DS, AX
CALL INCINIT ;与中断相关的初始化 STI
;开中断
;检查数是否已达60,注意数据完整性
LOOP1: CLI
MOV AL, INCNUM CMP AL, 60
JC LT60
SUB AL, 60 ;设显示速度足够快,滞后小于1分钟 MOV INCNUM, AL CMP AL, LTVAL
数据段正确1分,中断服务程序3分,调用与中断相关的初始化子程序INCINIT 1分,其余5分
5. 看懂以下8086宏汇编程序,回答问题:(本题18分)
说明: 字符的ASCII编码,数字0-9为30h-39h,0dh为回车符,0ah为换行符。 data
segment org 100h
dw 5678h,0f588h ; (1) buf=100h dw ?,?
JZ LOOP1 MOV AH, 0 MOV BL, 10 DIV BL MOV BX, AX MOV AH, 2 INT 21H MOV DL, BL MOV AH, 2 INT 21H MOV DL, BH MOV AH, 2 INT 21H JMP LOOP1 END START
;显示秒值
;BH含秒的个位数,BL含秒的十位数
MOV DL, ‘ ’ ;为区分前一个显示,先显示空格
;该数已在屏幕上显示了
MOV LTVAL, AL
LT60: STI
CODE ENDS
buf sum
共27页第23页
微机原理试题
count ($-sum)/2 ; (2) count=? dstri db ‘sum=’ disp db 8 dup(?),’H’,’$’ data code
ends segment
assume cs:code, ds:data
start: mov ax, seg data mov ds, ax
mov si, offset buf
mov di,offset sum
xor dx,dx
mov ax, [si]
mov bx,[si+2] add ax, bx adc dx, 0
mov [di], ax mov [di+2],dx call h2asc
mov dx, offset dstri mov ah,09
int 21h
mov ah, 4ch
int 21h
h2asc
proc
mov si,offset sun+2 mov di,offset disp mov dl,count
begin : mov bx,[si] mov ch, 4
; dx清0 ; (3) ax=5678h
;(4) bx= 0f588h
; (5) ax= 4c00h ; (6) dx=0001 ; dos调用09号,以$为结束符的字符串输出显示。; dos调用4ch号,程序终止。
; 指向待处理的高位字地址 ; 指向处理后存放ASCII码的地址 ; 先处理高位字,再处理低位字 共27页第24页

