一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每题2分,共36分)
1.执行指令 MOV AL,[BP] 时,所读取的数据应在 ( )
A. 代码段中 B.数据段中 C. 堆栈段中 D. 附加数据段中 2.执行如下程序:MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A
执行后BX中的内容为 ( )。
A.99 B. 100 C. 101 D.102
3. .将AX中有符号数除以4的正确指令序列是( )。 A. SHR AX,1 B. SAR AX,1 C.IDIV 4 D.DIV 4 SHR AX,1 SAR AX,1
4.使8086/88的标志寄存器F中的中断标志IF置为关中断的命令是 ( ) A. CLI B. STD C. STI D. CLD
5.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是( ) A.ADD BH,01H B.OR BH,01H C.XOR BH,01H D.TEST BH,01H 6. 数据段定义如下: Data segments
V1 DB 4 DUP(2),1 COUNT EQU 10
V2 DD COUNT DUP(?) Data ends
则该数据段在内存中所占的存储字节数目是() A. 9 B. 45 C. 46 D. 10
7.在下列程序执行后,AL寄存器的值为 ( )。 A1 DB 5 DUP(2 DUP(2,0,1),3) MOV AL,A1+6
A. 2; B. 3; C. 0; D. 1 8.对于下列程序段:
AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI
LOOP AGAIN 也可用()指令完成同样的功能。
A. REP MOVSB B. REP LODSB C. REP STOSB D. REPE SCASB
9.若汇编语言源程序中段的定位类型设定为PARA,则该程序目标代码在内存中的段起始地址应满足什么条件?( )
A. 可以从任意地址开始 B. 必须是偶地址
C. 必须能被16整除 D. 必须能被256整除 10.指令 MOV BYTE PTR 〔 BX+SI 〕, 0 中目的操作数的寻址方式是 ( ) 。
A. 立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址 11.已知 SP=12EH ,执行段间返回指令 RET 后, SP 的值是 ( ) 。 A. 12AH B. 12CH C. 130H D. 132H
12.在汇编语言程序中,对END语句的叙述正确的是()。
A. END语句是一可执行语句 B. END语句表示程序执行到此结束 C. END语句表示源程序到此结束 D. END语句在汇编后要产生机器码
13.已知 CS=2300H,DS=2400H,执行下列指令序列PUSH CS ,POP DS后,CS 和 DS 值是 ( ). A. CS=0 DS=2300H B. CS=2400H DS=2300H C. CS=2400H DS=2400H D. CS=2300H DS=2300H
14.以寄存器DI间接寻址的存储器字节单元内容加1的指令是( )。
A. INC 〔DI〕 B. INC DI C. INC BYTE PTR〔DI〕 D. ADD 〔DI〕,1 15.有指令MOV AX, 1234H,指令中的立即数1234H是存储在( ) A. 数据段 B. 代码段 C. 附加段 D. 堆栈段 16.设数据段中已有:
DA1 DB 12H,34H DA2 DW 56H,78H 下面有语法错误的语句是()。 A. ADR1 DW DA1 B. MOV DA1+1,AX C. MOV BYTE PTR DA2+1,AL D. MOV WORD PTR DA1+1,AX 17.IBM PC微机中,有符号数是用()表示的 A.原码 B.补码 C.反码 D.BCD码 18.把汇编源程序变成代码程序的过程是() A.编译 B.汇编 C.编辑 D.链接 二、填空题 (每空1分,共14分) 1、请用一条指令实现如下操作: (1)将AX中划‘X’的位清0
15 5 4 0 ┏┳┳┳┳┳┳┳┳┳┳━┳━┳┳┳┳┓
┃┃┃┃┃┃┃┃┃┃┃X┃X┃┃┃┃┃指令:__【1】 ┗┻┻┻┻┻┻┻┻┻┻━┻━┻┻┻┻┛ (2)寄存器AX的低四位取反:____【2】_____________
2.已知X1 DW 0ABCDH,若要将X1用DB定义,原来数据区中的内容保持不变,则 X1 DB____【3】________,___【4】_________. 3.已知BX=1000H,执行:MOV AX,BX NEG AX
ADD BX,AX
则程序执行后,AX=___【5】___,BX=____【6】,CF=___【7】____。 4. 已知DS=2000H,CS=4000H,SI=1000H, (21000H)=78H,(21001H)=01H,(21002H)=00H,(21003H)=12H 则下面两条无条件转移指令转移目标的物理地址分别是【8】,和____【9】____。 JMP WORD PTR[SI] JMP DWORD PTR[SI]
5.假设程序中的数据定义如下: FLD1 DB 10DUP(?)
FLD2 DW 100H,200H,300H FLD3 DB 4,5,7,9
按要求写出合适的指令,每小题只能写一条指令。 (1)将FLD2的第4个字节送入AL。【10】。
(2)用伪指令写出FLD1和FLD2两者总字节数COUNT。【11】 6.调用程序与子程序之间的参数传递方法有四种,即堆栈法、(【12】)、(【13】)和(【14】)。 三、程序分析(共30分)
1. (4分,每空2分) MOV DL,AL NOT DL
TEST DL,04H JE NEXT
┇
NEXT:…
若上述程序段执行时产生分支,说明AL中的数第【1】位一定为1?程序段执行后CF 是【2】。 2.(2分)己知宏指令为: SHIFT MACRO RR,COUNT MOV AX,COUNT IF RR LE 64 MOV CL,3 SHR AX,CL IF RR LT 16 MOV CL,6 ENDIF ENDIF ENDM
宏调用为:SHIFT 15,7FFFH 写出宏扩展后的等效源程序段。【3】 3.(6分,每空2分)执行下列程序段后 ORG 1221H NUM DW 12H ┇
MOV BX,OFFSET NUM MOV CL,BYTE PTR NUM+1 MOV CH,TYPE NUM MOV AX,NUM 请问:(AX)=_【4】_____,(BX)=__【5】____,(CX)=_【6】_____。 4.(6分,每空2分)现有一子程序: SUB1 PROC
TEST AL,80H JE PLUS
TEST BL,80H