适用专业:计算机应用、应用电子
一、填空题(每空1分,共17分)
1.在基址变址寄存器中,可用于基址的寄存器是_______、_______;其中_______是相对于SS段寻址的。
| |
2.执行加法时,如果两个操作数的符号相同,而结果的符号与之相反时,OF=_____。
3.PC机BIOS显示中断号类型为______,它在中断向量表中的物理地址为________。
4.用DEBUG调入一个数据文件后,寄存器______:______表示的是该文件的长度,其文件内容位于DS:_____开始的内存区域中。
5.VGA显示器的显示区域从物理地址_______处开始,CGA从________处开始,单色显示器MDA从______处开始。
6.PC机I/O设备的数据传送方式共有三种,分别是__________________________、______________、_____________。
7.可用DOS功能调用(INT21h)的功能号AH=__________来设置中断向量,用功能号AH=__________来获取中断向量。
二、指出下述指令的对与错(每空1分,共8分)
1.JMPFARPTRBX
2.CALLAX
3.MOVDS,2000H
4.SHLBP,3
5.PUSHBX
6.RET3
7.DIV10
8.CMPAX,SI+DI
三、简答题(共15分)
1.对于下面的数据定义,三条MOV指令分别汇编成什么(可用立即数方式表示)?(6分)
TABLEADW10DUP(?)
TABLEBDB10DUP(?)
TABLECDB1234
...
⑴MOVAX,LENGTHTABLEA
⑵MOVBX,SIZETABLEB
⑶MOVCX,TYPETABLEC
2.指出下列各条指令单独执行时,所涉及寄存器的值。(6分)
DATAXSEGMENT
X1DDh
X2LABELBYTE
X3DW1234h
ORG100h
X4EQU$-X1
DATAXENDS
⑴MOVBX,OFFSETX3;BX=
⑵MOVAX,X4;AX=
⑶MOVCX,WORDPTRX1+3;CX=
3.简述REPZCMPSB指令的执行过程(3分)
四、编程实现(共34分)
1.编写一子程序GetString,从键盘上输入一个字符串。入口条件是:CX中为允许的串最大长度,DS:SI为串的首地址。(17分)
2.在数据段有一字符缓冲区,首地址为Buffer,以1Ah字节结尾。编写一子程序WriteBuffer将此缓冲区内容写入文件MYFILE中。(17分)
五、阅读程序,回答问题(每空2分,共26分)
1.如下程序为一个中断驻留程序,请在空白处填入必需的内容。(14分)
CODEXSEGMENTPRAR
ASSUMECS:CODEX,DS:CODEX
ORG100H
P1PROCFAR;此为9Ah中断处理程序
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHSI
PUSHDI
PUSHBP
PUSHDS
PUSHES
____________
;此处为中断号为9Ah的中断处理程序处理部分
____________
POPES
POPDS
POPBP
POPDI
POPSI
POPDX
POPCX
POPBX
POPAX
_____________
P1ENDP
LENEQU$-0
P2PROCNEAR
MOVDX,_________
MOVAX,_________
MOVDS,AX
MOVAX,259AH
INT21H
MOVAX,3100H
MOVDX,_________
INT21H
P2ENDP
CODEXENDS
END___________
2.如下程序比较两个ASCII字符串(均为大写)按字典顺序排列的大小(AX=0,0表示结果)
CMPSTRSPROCNEAR
PUSHES
PUSHDI
PUSHSI
PUSHDS
POPES
MOVSI,_____________;SI=A串首地址(名为STRINGA)
MOVDI,_____________;DI=B串首地址(名为STRINGB)
_________
L0:LODSB
CMPAL,_______________;比较Ai及Bi
JZL1
JAL2
MOVAX,0
_______________
L1:CMPAL,0
JZL2
_________________
JMPSHORTL0
L2:MOVAX,1
L3:POPSI
POPSI
POPES
RET
CMPSTRSENDP
|