适用专业:计算机应用、应用电子
一、填空题(每空1分,共15分)
1.PC机BIOS键盘中断类型号为___________,在物理内存地址为___________处,存有此中断处理程序的入口地址。
| |
2.8088的地址线共有___________根,可寻址的范围为___________。
3.8088的I/O寻址范围为___________。
4.逻辑地址为1234h:1234h,其物理地址是___________。
5.字符0的ASCII码为___________;在汉字DOS下机内码为B1A2的汉字,它的区位码为___________。
6.执行IRET指令时,会依次将_____、_____、_____弹出堆栈。
7.在DEBUG下,将执行点从100h改至110h,先敲入_______,然后敲入_________。
8.8086中中断命令寄存器的I/O端口地址为______,中断屏蔽寄存器的I/O地址为_______。
二、指出下列指令的对与错。如果是错误的,请说明原因。(每小题2分,共10分)
1.JMPBL
2.CALLDWORDPTRBX
3.DIVBYTEPTRBX+SI+255
4.INDX,AX
5.PUSHWORDPTRBX
三、简答题(共15分)
1.简述硬中断N的中断过程。(5分)
2.定义数据段如下:
DATAXSEGMENTAT0B800h
ORG200h
X1DD3DUP(0,1)
X2EQU$-X1
X3LABELBYTE
X4DW0
DATAXENDS
问:(1)符号DATAX的物理地址是多少?(2分)
(2)X2的值是多少?(2分)
(3)X4的偏移地址是多少?(2分)
3.对于下面的数据定义,各条MOV语句指令单独执行后,有关寄存器的内容是什么?(4分)
FLDBDB?
TABLEADW20DUP(?)
TABLEBDBABCD
(1)MOVAX,TYPEFLDB;AX=
(2)MOVBX,WORDPTRTABLEB+1;BX=
(3)MOVCX,SIZETABLEA;CX=
(4)MOVDX,LENGTHTABLEB;DX=
四、编程(共35分)
1.编写一个完整的汇编程序,将内存中的X值(一个无符号整数),以十进制形式显示在屏幕上。(17分)
2.编写一子程序InsChar,在字符串String中某个位置插入两个字符,入口:DS:SI为串首地址,CX为串长度,DI中存放的是要插入的位置(相对于串的首地址),DX中存放的是要插入的两个字符。(18分)
五、阅读程序,回答问题(共25分)
1.下面是一个与显示有关的子程序,请读完后回答后面的问题。(本小题共13分)
P1PROCFAR
PUSHES;输入CX=0-24,DX=0-79
PUSHDI
MOVAX,3
INT10H;①
MOVDI,0
SHLCX,1;②
MOVAL,50H
MULCL
ADDDI,AX
ADDDI,DX
ADDDI,DX
MOVAX,0730H
MOVBX,0B800H
MOVES,BX
ORES:DS,AX;③
POPDI
POPES
RET
P1ENDP
(1)此子程序完成了什么功能?(6分)
(2)①处执行完后的物理意义(与显示有关)是什么?(2分)
(3)②处CX为什么要移位?(3分)
(4)③处AH中值的物理意义(与显示有关)是什么?(2分)
2.如下程序在一个文件后面追加一段内容,请在空白处补上必需的内容(本小题共12分)
DATAXSEGMENT
FNAMEDB________________;定义一个名为C:\TT1.DAT的文件名(4分)
FHANDLEDW?
LENEQU1024*10
BUFFDBLENDUP(?)
DATAXENDS
CODE1SEGMENT
ASSUMECS:CODE1,DS:DATAX
MOVAX,DATAX
MOVDS,AX
MOVDX,________
MOVAX,________;(2分)
INT21H;以读写方式打开指定文件
MOVFHANDLE,AX
MOVBX,AX
MOVCX,________
MOVDX,________
MOVAX,________;(3分)
INT21H;将文件位置指针移要文件尾
MOVBX,________
MOVAX,________
MOVDX,________;(3分)
MOVCX,LEN
INT21H;写入LEN个字节
MOVAH,3EH
INT21H
MOVAH,4CH
UBR21
CODE1ENDS
END
|