第四章汇编语言程序设计练习题 一、单项选择题(共40题)
1、 关于指令MOV [BX],AX,以下叙述正确的是: A、目的操作数是寄存器操作数 B、源操作数是内存操作数
C、目的操作数是内存操作数
D、源操作数是立即操作数
2、执行下列程序,设(SS)=2000H,执行后(SP)=?
MOV SP,2000H MOV AX,1234H PUSH AX
A.21FFEH B.20000H C.22000H D.22002H
3、 运算型指令的寻址和转移型指令的寻址,其不同点在于
A. 前者取操作数,后者决定程序的转移地址 B. 后者取操作数,前者决定程序的转移地址 C. 两者都是取操作数
D. 两者都是决定程序的转移地址 4、MOV ( ),300
A、WORD PTR [DX] B、BYTE PTR [BX] C、WORD PTR [BP] D、 AL
5、 汇编语言程序代码必须位于代码段中,形成代码段物理地址的寄存器对是 A.SS: SP B.CS: IP C. DS: BX D. CS: BX
6、若定义DAT DW 'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是() A.0041H B.4100H C.××41H D.4l××H
7、执行下面的程序段后,(AX)=()
TAB DW 1,2,3,4,5,6 ENTRY EQU 3 MOV BX,OFFSET TAB ADD BX,ENTRT MOV AX,[BX]
A.0003H B.0300H C.0400H D.0004H
8、下面表示段定义结束的命令是( )
A.ENDP B.ENDS C. ENDM D.END
9、设AL、BL,中都是带符号数,当AL<BL时转至NEXT处,在CMP AL,BL指令后应选用正确的条件转移指令是( )
A.JBE B.JL C.JNA D.JNLE
10、指令LOOPZ它的循环执行条件是 ( )
A.CX不等于0且ZF=0 B.CX不等于0或ZF=0 C.CX不等于0且ZF=1 D.CX不等于0或ZF=1
11、执行下列指令后,SP寄存器的值是( ) MOV SP,1000H PUSH AX
A.0FFEH B.0FFFH C.1001H D.1002H
12、完成将有符号数BX的内容除以2的正确指令是() A.SHR BX,1 B.SAR BX,1 C.ROR BX.1 D.RCR BX,1
13、汇编语言源程序经汇编后不能直接生成( ) A.OBJ文件 B.LST文件 C.EXE文件 D.CRF文件
14、执行下列程序(AL)= ( )。 DATA SEGMENT
TAB-DA DB ‘0123456789’ DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX
MOV BX,OFFSET TAB-DA MOV AL,04 XLAT
A.52 B.33H C.30H D.12
15、设BL=05H,要使结果BL=0AH,应执行的指令是( ) A.N0T BL B.AND BL,0FH C.XOR BL,0FH D.OR BL,0FH
16、用MOV指令将十进制数89以组合型BCD码格式送入AX,正确使用的指令是() A.MOV AX,0089 B.MDV AX,0809H C.MDV AX,0089H D.MOV AX,0809
17、完成BX—CX结果送AX的错误操作是()
A.SUB BX,CX MOV AX,BX B.SUB AX,BX SUB AX,CX C.XCNG AX,BX SUB AX,CX D.MOV AX,BX SUB AX,CX
18、表示一条指令的存储单元的符号地址称 ()
A.标号 B.变量 C.偏移量 D.类型
19、变量的类型属性如下,下面错误的类型是 ()
A.字节型 B.字型 C.字符型 D.双字型
20、 现用数据定义伪指令定义数据:
BUF DB 4 DUP(0,2 DUP(1,0));
定义后,存储单元中有数据0100H的字单元个数是() A.4 B.3 C.8 D.12
21、分析下面指令序列执行后的正确结果是( ) MOV BX,OFFFCH MOV CL,2 SAR BX,CL
A.3FFFH B.0FFFFH C 0FFFCH D.0FFF5H
22、下面指令序列执行后完成的运算,正确的算术表达式应是 ( ) MOV AL,BYTE PTR X; SHL AL,1; DEC AL;
MOV BYTE PTR Y,AL;
A. y=2x+1 B.x=y+1 C.y=2x-1 D.x=y-1
23、 TEST VAR,55H JZ ZERO ZERO:......
上述程序段中,当变量VAR的内容为何值时,执行JZ ZERO条件转移指令后,可满足条件转至ZERO处 ( )
A. (VAR)=0 B.(VAR)=55H C.VAR中第0,2,4,6位为0 D. VAR中第l,3,5,7位为0。
2
2
24、交换寄存器SI、DI的内容,正确的程序段是() A.PUSH SI B.PUSH SI PUSH DI PUSH DI POP SI POP DI POP DI POP SI
C.MOV AX,SI D.MOV AX,SI
25、完成41H送[2100H]、42H送[2101H]的正确程序段是 () A.MOV AL,41H B.MOV SI,2100H MOV [2100H],AL MOV[Sl],’A’ INC AL INC SI
MOV[2100H],AL MOV[S1],’B’ C.MOV AX,4241H D.MOV AX,‘AB’” MOV [2100H],AX MOV[2100H],AX 26、堆栈的工作方式是()
A.先进后出 B。后进先出 C.先进先出 D.后进先出
27、字变量ARRAY的偏移地址(或有效地址)送寄存器BX的正确结果是() A.LEA BX,ARRAY B.LEA BX,OFFSET ARRAY C.LES BX,ARRAY D.MOV BX.ARRAY
28、在用汇编语言开发软件过程中,首先用编辑程序建立扩展名为( )的文件,
经汇编生成扩展名为( F)的目标程序文件,最后连接生成扩展名为( )的可执行文件。 A.TXT B. DOS C.ASM D. EXE E.COM F. OBJ G. PRG H. BAK
29、DEBUG调试工具中,用来显示内存的命令是( ) A.E B.R C.T D.D
30、已知1000H处有一条指令JNC rel,其机器代码是××H、73H,CF=0,试问执行该指令后,(IP)= ( ) A.0FF8DH B.1073H
C. 0FF8BH D.1075H
31、执行下列程序,设(SS)=2000H,执行后AL中的数据在内存地址( )
MOV SP,2000H MOV AX,1234H PUSH AX
A.2000H B.22000H C.21FFEH D.21FFH
32、执行下列程序,设(SS)=2000H,执行后AH中的数据在内存地址( )
MOV SP,2000H MOV AX,1234H PUSH AX
A.20000H B.21FFFH C.22000H D.21FFEH 33、INC指令不影响( )标志位。
A.OF B.CF C.SF D.ZF
34、将AL中带符号数乘10送AL,正确的程序段是( )
A.SAL AL,1 B.ADD AL,AL MOV BL,AL MOV BL,AL SAL AL,1 ADD AL,AL SAL AL,1 ADD AL,AL ADD AL,BL ADD AL,AL C.MOV CL,4 D.ADD AL,AL MOV BL,AL ADD AL,AL SAL AL,CL ADD AL,AL ADD AL,BL ADD AL,AL ADD AL,AL
35、在ADD指令中,两个操作数的物理位置不可以安排在( )中。
A.两个主存储单元 B.一个主存储单元和一个数据寄存器 C.两个数据寄存器 D.一个堆栈单元和一个数据寄存器
36、下面表示汇编源程序结束的命令是( )
A.ENDP B.ENDS C. ENDM D.END
37、 在汇编语言中( )用于定义常数,变量,内存空间的分配和定位.
A.伪指令 B.机器指令 C.宏指令 D.微指令 38、伪指令一般在( )被解释。
A.程序运行时 B.编译程序时 C.连接时 D.编写源程序时
39、若定义DATA DB 0A5H,5BH,在指令 MOV BX,( )DATA中填充,使指令正确执行。
A.WORD B.BYTE PTR C.WORD PTR D.OFFSET
40、 若定义DATA DW 1234H,执行MOV BL,BYTE PTR DATA指令后,(BL)=( )
A.12H B.34H C.23H D.14H
二、填空题(共50个空)
1、立即数一定存放在(1)段中 2、 如果在一个程序开始执行以前CS=-A7F0H,IP=2B40H试问该程序的第一个字的物理地址是( 2 )
3、 已知1000H处有一条指令JNC rel,其机器代码是××H、73H,CF=0,试问执行该指令后,(IP)=( 3 ) 4、现有DS=2000H,BX=0100H,SI=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。