课程代码: 21043
适用专业: 计算机应用、应用电子
一、填空题 (每空1分,共19分)
1.用于控制字符操作地址增量方向的标志寄存器是________,表示加法结果溢出的标志寄存器是________,允许产生中断时,IF=_______。
2.在移位指令中,用于指定移位位数的操作数只能是 及 。
3.内存0005CH处4个字节为D2,EF,00,F0,它是中断________的入口地址存放处,它表示该中断处理程序的起始地址为________ :________。
4.一条指令为MOV BX,X1,其中X1的偏移地址为16 (十进制)。在DEBUG下,此指令会变为MOV BX,________。
5.用于表示无符号数大于或等于的条件转移指令是________;用于表示带符号数大于或等于的条件转移指令是________。
6.IBM PC 中规定中断优先级次序 (从高到低)依次为________、________、________、________。
7.在BIOS INT 10h中,定义了多种显示方式,其中06代表的是一种CGA图形方式,它的分辨率为________,可以有________种颜色;12h代表的是一种VGA图形方式,它的分辨率为________,可以有________种颜色。
二、判断题 (每小题2分,共12分)
[判断下述指令的正误。正确的打“√”,错误的打“×”并说明理由]
1.MOV MYDAT [BX] [SI],AX ( )
2.MOV BX,OFFSET MYDAT [SI] ( )
3.MOV SAVE_DS,DS ( )
4.DIV 12 ( )
5.RETF ( )
6.JMP WORD PTR [BX] ( )
三、简答题 (共13分)
1.指出下列各条指令单独执行后相应寄存器的值。 (4分)
DATAX SEGMENT PARA
X2 LABEL WORD
X1 DD 12345678h
X3 EQU $-X2
DATAX ENDS
⑴MOV AX,X2+1
⑵MOV BX,X3
2.简述IRET指令的执行过程。 (5分)
3.内中断共有哪几种? (4分)
四、编程实现 (共44分)
1.编写子程序ReadFile,读入文件”MyFile”至内存中 (文件长度<60KB)。子程序入口参数(已预置好)为DS:SI,它存放的是内存缓冲区的首地址。要求返回值为:AX=文件的实际长度。 (19分)
2.编写一个完整汇编程序,往按字典顺序存放的等长字符串表 (每个串长4个字符,各串中间以空格分隔,表以00h结尾)中插入一个新的串,并保持字典顺序。 (25分)
五、阅读程序,填充 (共12分)
3D3H及3D4H分别是某个外设的两个I/O端口 (设备寄存器)地址,其中3D3H为地址 (索引)寄存器,其索引值范围为0~15;3D4H为共用同一I/O地址的数据寄存器组。在对3D4H进行的每次访问前,要先在索引寄存器中指定索引值。如下程序完成对数据寄存器的初始化,请在4个空白处补上正确的内容。
InitPorts PROC NEAR
PUSH SI
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV SI,OFFSET VALUE_ARRAY
MOV CX,16
_______________ ;①
MOV DX,3D3H
MOV BL,0
L1: MOV AL,BL
_______________ ;②写索引寄存器
INC DX
LODSB
_______________ ;③写数字寄存器
_______________ ;④
INC BL
LOOP L1
POP DX
POP CX
POP BX
POP AX
POP SI
RET
InitPorts ENDP
|
|
|