课程代码:21043
适用专业:计算机应用、应用电子
一、填空题 (每空1分,共16分)
1.8086的I/O数据总线为____位,8088的I/O数据总线为____位。
2.MOV AX,[BP+SI],是对____段的基地址加变址寻址。
3.IDIV BYTE PTR [SI]指令执行后,余数在____中,商在____中,如果除法溢出,____为1。
4.输入/输出的控制方式共有三种,分别是___________________、___________________、___________________。
5.设CF=1,AX=1000H,执行RCL AL,1后,AX=__________,CF=_________。
6.设SS=1234H,SP=100H,执行PUSH AX后,则SP的值变为____________,栈顶的物理地址为____________。
7.设CS=2000H,IP=100H,SP=140H,BX=235H,执行JMP WORD PTR BX指令后,CS为________,IP为________,SP为_______。
二、判断题(每小题2分,共12分)
[判断下述指令的正误。正确的打“√”,错误的打“×”并说明理由]
1.SHR AX,2
2.MOV 300, DS:[BX+SI+100]
3.CMP DS:[BP+SI], BP
4.PUSH DS
POP CS
5.IN DX,AX
6.JUP DWORD PTR BX
三、简答题 (每小题5分,共15分)
1.解释下列指令序列完成的功能:
MOV AX, DATA2
MOV DX, DATA2+2
MOV DATA1, AX
MOV DATA1+ 2,DX
2.数据段定义如下:
DATAX SEGMENT PARA
ORG 102H
X1 DW 1,0
DATAX ENDS
现有一条指令为MOV AX,X1+1
问:在DEBUG下,经过U命令反汇编后,这条指令是什么样的?
3.有数据段定义如下:
DATAX SEGMENT
T1 DW 3(1,2 DUP(3,0))
T2 EQU $-T1
DATAX ENDS
问:执行MOV AX, T2后,AX=?
四、阅读程序,填空 (每空2分,共16分)
DATAX SEGMENT PARA
N EQU 16
A ________________ ; 定义长度为N的字数组
DATAX ENDS
CODE1 SEGMENT PARA
ASSUME CS:CODE1, DS:DATAX
____________
____________ ; 初始化DS
MOV CX, N
DEC CX
L1: _______________
MOV CX,N-1
MOV BX,0
L2: MOV AX,A[BX]
MOV AX,A[BX+2]
_______________ L3
_______________
L3: ADD BX,2
LOOP L2
_______________
LOOP L1
MOV AX,___________
INT 21H ; 返回DOS
CODE1 ENDS
END
五、编程实现 (共41分)
1.编写子程序GetString,从键盘上输入一个长度为N的字符串,该子程序的入口条件(已预置好)为:CX=N ,DS:SI=接收此串的首地址。(18分)
2.编写子程序DispDate,在屏幕上显示当前月份及日期,其格式为类似于Jan-01的形式(1月1日),即月份显示英文3个字母缩写,日期为两位阿拉伯数字,前加一横线('-')。已预置好的入口参数为:DH=月份(1-12),DL=日期(1-31)。(23分)
|