
班级 学号 姓名
一、单项选择题
1.在数据传送指令执行过程中,不能直接与立即数进行传送的是( ② )。
① 通用寄存器 ② 段寄存器 ③ 存储器 ④ 通用寄存器和存储器
2.下列指令中,可以让IF标志为1的是( ② )。
① STD ② STI ③ CLD ④ CLI
3.在下列伪指令中定义4字节变量的是( ① )。
① DD ② DW ③ DB ④ DT
4. 下列指令中不属于逻辑运算指令的是( ② )。
① XOR ② CWD ③ NOT ④ OR
5.寄存器间接寻址方式中,操作数在( ③ )中。
① 通用寄存器 ② 堆栈 ③ 主存单元 ④ 段寄存器
6.80x86的(SS)=1060H,(SP)=0010H,(AX)=1234H,当执行一条PUSH AX指令时,1234H存放的实际地址是 ( ④ )。
① (10610H)=12H (10611H)=34H ② (10610H)=34H (10611H)=12H
③ (1060EH)=12H (1060FH)=34H ④ (1060EH)=34H (1060FH)=12H
7.若(DS)=1000H,(SS)=2000H,(BX)=1000H,MOV DI,[BX+37H]指令中源操作数的物理地址应是( ④ )。
① 3037H ② 2037H ③ 21037H ④ 11037H
8. 下列指令中,执行后影响标志位的( ③ )
① XLAT ② PUSH ③ ADD ④ XCHG
二、判断说明题(判断正误,正确的在题后括号内打“√”,错误的打“×”,并说明原因。)
1. JMP FAR PTR NEXT √
2. MUL 9 ×
3. CMP [BX],[SI] ×
4. XOR BX, AL ×
5. OUT 23H, AL √
6. MOV DS, DX √
7. POP CS ×
8. MOV BYTE PTR [BP],AL √
9. ADD 4,AL ×
10. IN AX, DX √
11. PUSH CH ×
12. OUT 255H,AL ×
13.CS和IP都不能作目的操作数。× 不一定
14. 某操作数如包含在指令中,则在指令中采用直接寻址方式。 ×
三、简答题
1.若要将键盘键入的‘9’这个字符存入BL寄存器中,利用DOS系统功能调用怎样实现?写出有关的程序段。 MOV AH,01H ;INT 21H; MOV BL,AL
2.若要向屏幕上输出“Who are you?”这个字符串,利用DOS系统功能调用怎样实现?写出有关的程序段。
MESS DB ‘Who are you?’,‘$’; LEA DX,MESS; MOV AH,09H; INT 21H
3. 数据段定义如下: 4.数据段定义如下:
NUM DB 65H,20,35H,47 DATA DB 2 DUP(‘A’,66H,18H, 3 DUP(11H,55H))
NUM1 DW ‘AB’,12H,76H, 请画出DATA存储区的数据分配图,并计算该区域所占用的单元数。
请画出内存分配图。 18个
四、分析题
1.阅读下面的程序段,当N=0AH时,该程序段执行后,RUT单元的值为多少?请分析该程序段所实现的功能。
TAB DB ‘01234567ABCDEF’
……
LEA BX, TAB
MOV AL, N
XLAT
MOV RUT, AL RUT=41H; 十六进制与ASCII码转换
2.阅读下列程序段,请分析总结该程序段的功能。
MOV AX,DATA
MOV DS,AX
LEA BX,N; N为某数据区首地址
MOV CX,16
MOV DL,00H
AGAIN: CMP [BX],0
JNZ NEXT1
INC DL
NEXT1: INC BX
DEC CX
JNZ AGAIN
MOV NUB,DL
HLT
统计以N起始的16个字节单元中0的个数,并将结果存入NUB中
3. 阅读下面程序段,请为每一条指令加上注释,并总结其功能 4.写出下列程序段的功能
MOV AL,N LP:MOV AH,1
AND N,0FH INT 21H
MOV BL,N CMP AL,‘Y’
SHR AL,4 JZ YES
MOV BH,AL CMP AL,‘N’
拆字:将N的高低四位X1X2分开,并以0X1,0X2 JZ NO
的形式分别存入BH和BL中 JMP LP
从键盘接收键入信息,键入‘Y’转YES处执行程序
键入‘N’转NO处执行程序,否则继续等待键盘键入信息
五、程序设计题
1.试编程实现:将50~0依次存放到以逻辑地址为1000H∶2000H起始的一片连续存储单元中。
MOV AX,1000H
MOV DS,AX
MOV BX,2000H
MOV CX,50
NEXT:MOV [BX],CL
INC BX
LOOP NEXT
MOV [BX],CL
2. 试编程实现:找出I、J、K三个无符号8位二进制数中的最大数,并存放于MAX单元。
I DB ?
J DB ?
K DB ?
MAX DB ?
…….
MOV AL,I
CMP AL,J
JNC NEXT
XCHG AL,J
NEXT:CMP AL,K
JNC DONE
XCHG AL,K
DONE:MOV MAX,AL
3.以下程序为统计从STRING单元开始存放的100个字节型带符号数中正数的个数,请完成该程序段的填空。
LEA SI, STRING
MOV CX, ① 100
MOV DL, 0
CMPNXT: MOV AL, [SI]
② CMP AL,0
JS NEG
INC DL
NEG: ③ INC SI
LOOP CMPNXT
