《汇编语言程序设计》复习题.doc
汇编语言程序设计复习题一、单项选择题1.在微机系统中分析并控制指令执行的部件是( )A. 寄存器 B. 数据寄存器 C. CPU D. EU2.已知X补=80H, 则X=( )A. 80H B. 0 C. 0FFH D. -80H3.已知X补=98H, 则X补/2=( )A. 0CCH B. 4CH C. 49H D. 31H4.在计算机的CPU中执行算术逻辑运算的部件是( )A. ALU B. PC C. AL D. AR5.将125转换成二进制数的结果( )A. 7DH B. 7CH C. 7EH D. 7BH6.执行指令PUCH CX后堆栈指针SP自动( )A. +1 B. 不操作 C. -2 D.-17.在标志寄存器中表示溢出的标志( )A. AF B.CF C. OF D.SF8.将93H看成一个组合BCD码,其结果是( )A. 10010101 B.10010011 C. 10000011 D.100000019.CPU要访问的某一存储单元的实际地址称()A.段地址 B.偏移地址 C.物理地址 D.逻辑地址10.执行后使BX=0的指令是()A. XOR BX,BX B. OR BX,BX C. AND BX,BX D. NOT BX11.取变量偏移属性的分析运算符是( )A.OFFSET B.TYPE C.SIZE D.SEG12.已知X=76, 则X补=( )A. 76H B. 4CH C. 0B4H D. 0CCH13.完成对CL寄存器的内容乘以4的正确操作是()A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,214.下面各传送指令中,正确的是()A. MOV DI,SI B. MOVDX+DI,AL C. MOV WORD PTR BX,0100H D. MOV AL,BX15. MOV AX,ES:1000H 源操作数的寻址方式是( )A. 立即寻址 B. 直接寻址 C. 变址寻址 D. 基址寻址16.对AND,OR,XOR,NOT四条逻辑运算指令,下面正确的是()A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C.指令AND AX,OFH执行后,分离出AL低四位D.NOT AX,执行后,将AX清017.若AX=1020H, BX=1200H,CF=1,则SBB AX,BX的执行结果为( )A. 0EF1FH B. 0FEFFH C. 0FE1FH D. 0FE21H18.指令MOV BX,MASKBP,若MASK=3500H, SS=1200H, DS=1000H, BP=1000H,那么物理地址为( )A. 17500H B. 16500H C. 14500H D. 13500H19.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是()A. ADD BH,01H B. OR BH,01H C. XOR BH,01H D. TEST BH,01H20.下列指令中不等价的是( )A. JA和JNBE B. JG和JNLE C. JL和JNG D. JBE和JNA21.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为()A. ZF=1 B. ZF=0 C. SF=1 D. SF=022.在段定义中,( )是默认的定位类型。A. PAGE B.PARA C.WORD D.BYTE23.下列地址表达式正确的是( ) A.BX-SI B.BP-DI C.BX+2 D.BP+BX24.MOV AX,ES:1000H 源操作数的寻址方式是( )A. 立即寻址 B. 直接寻址 C. 变址寻址 D. 基址寻址 25.MOV AX,ES:COUNTDI 源操作数的寻址方式是( )A. 基址寻址B. 立即寻址 C. 变址寻址 D. 基址变址寻址26.MOV DX,COUNTBPDI的源操作数的寻址方式是( )A. 变址寻址B. 基址寻址 C. 直接寻址 D. 基址变址寻址 27.若AX=1020H,BX=1200H,CF=0,则SBB AX,BX的执行结果为( )A. 0EF20H B. 0FEFFH C. 0FE20H D. 0FE21H 28.若AX=2000H,CL=90H,则DIV CL执行后,AX=( )A. 8038H B. 8039H C. 9138H D. 8138H 29.若BL=83H,CF=1,则ADC BL,90H执行后,BL=( )A. 15H B. 16H C. 17H D. 14H 30.若DX=1010H,则AND DX,DX的执行结果为( )A. 0000H B. 1111H C. 1010H D. FFFFH 31.指令MOV BX,SIBX,若(SI)=3500H, SS=1200H, DS=1000H, BX=1000H,那么物理地址为( ) A. 17500H B. 16500H C. 14500H D. 13500H 32.指令MOV AX,COUNTBX,若COUNT=0400H, SS=1200H,DS=1000H,BX=5000H,那么物理地址为( )A. 17400H B. 17000H C. 15400H D. 14500H 33.指令MOV DX,DELTABXSI,若DELTA=1300H, SS=7200H, DS=5400H, BX=0500H,SI=4000H,那么物理地址为( ) A. 6F300H B. 77800H C. 59800H D. 78700H 34.源程序结束语句为( )A、ENDPB、ENDS C、END MAIN D、END 35.SKY: MOV AL,20H中操作数为( )A、MOV B、SKY C、AL或20H D、AL和20H 36.下列为不合法的标志符的是( )A、AXYZB、5SKY C、ATT D、?ABC 37.下列地址表达式正确的是( )A、BX-SI B、BP-DI C、BX+2 D、BP+BX 38.NEAR标号的类型值为( )A、2 B、-1 C、4 D、-2 39.组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是( )A、NONE B、PUBLIC C、COMMON D、STACK 40.分析运算符LENGTH只有用( )定义的变量才有意义。A、表达式 B、字符串 C、DUP D、疑问号 41.在段定义中,( )是默认的定位类型。A、PAGE B、PARA C、WORD D、BYTE 42.汇编语言指令中唯一不可缺少的域是( )A、标号名字域 B、助记符域 C、操作数域 D、注释域43.段内直接转移指令采用的寻址方式是( )A、直接寻址B、相对寻址 C、绝对寻址D、间接寻址 44.下列指令中等价的是( )A、JC和JO B、JNC和JNO C、JP和JPE D、JA和JG 45.在MOVB指令中,其目的串的物理地址为( )A、DS*2*2*2*2+SI B、DS*2*2*2*2+DI C、ES*2*2*2*2+SI D、ES*2*2*2*2+DI46.条件转移指令的转移范围( )A、-128 - +127 B、-32768 - +32767 C、0 - +255 D、0 - +65535 47.执行段间调用指令CALL时,首先保护断点的( )A、段地址和偏移地址 B、段地址 C、偏移地址 D. 不用保存二、填空题1.十六进制数0F8H表示的十进制正数为_,表示的十进制负数为_。2.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,(SI+COUNT)中,源操作数的有效地址EA为_,其物理地址为_。3.当标志位_=1时表示无符号数运算产生溢出,而当标志位_=1是表示带符号数运算产生溢出。4.设SS=1234H,SP=100H,执行PUSH AX后,则SP的值变为_,栈顶的物理地址为_。5.在串操作指令MOVSB中,用于目的地址的寄存器是_,源地址的寄存器是_,方向标志寄存器是_。6.指令MOV AL, BYTE PTR BX+SI中,源操作数的寻址方式是_。7.设CF=0,AX=8000H,执行ROR AX,1后,AX=_,CX=_。8.用于表示无符号数大于或等于的条件转移指令是_;用于表示带符号数大于或等于的条件转移指令是_。9.在移位指令中,用于指定移位位数的操作数只能是_及_。10.MOV AX,BP+SI,是对_段的基地址加变址寻址。11.IDIV BYTE PTR SI指令执行后,余数在_中,商在_中。三、简答题1.指出下列各条指令单独执行时,所涉及寄存器的值。DATAX SEGMENT PARAX1 DD 12345678hX2 LABEL BYTEX3 DW 1234hORG 100hX4 EQU $-X1DATAX ENDS(1)MOV BX,OFFSET X3 ; BX=(2)MOV AX,X4 ; AX=(3)MOV CX,WORD PTR X1+3 ; CX=2.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,试说明下列各条指令执行完后AX寄存器的内容。(1)MOV AX,1200 (2)MOV AX,BX (3)MOV AX,1100BX (4)MOV AX,BXSI3.指出下列指令的错误:(1)MOV AH,BX (2)MOV BX,SI (3)MOV AX,SIDI (4) MOV CS,AX4. 下列语句在存储器中分别为变量分配多少字节?(1)AD2 DW 10 DUP(?),10 (2)AD3 DB 100 DUP(?),computer5.解释下列指令序列完成的功能:MOV AX, DATA2MOV DX, DATA2+2MOV DATA1, AXMOV DATA1+ 2,DX6.有数据定义如下:X1 DW ?X2 DB ?X3 DW ?编写程序块实现X3=X2+X1。7.下列指令序列执行完后,BX寄存器的内容是什么?MOV CL,3MOV BX,0B7HROL BX,1ROR BX,CL8.设置一个数据段为DATAX,在此段中按顺序定义以下内容:(1) X1为一个显示串“Display string”,加回车,最后以$结尾。(2) X2存放一个逻辑地址A000H:0122H。9. 已知数据段有如下定义: ORG 1000H X DB 12H Y DW XZ DD Y (DS)=3879H, (BX)=1000H, (SI)=0002H 求下列指令执行完后指定寄存器的内容 MOV AX, 1000H ; (AX)=( )MOV BX, BX; (AX)= ( )MOV AX, BX+SI; (AX)= ( )MOV AX, Y+1; (AX)= ( )LEA DX, X; (DX)= ( )10. 说明下述四条指令中哪些需要加上PTR伪操作?X1 DW 10H, 20HY1 DW 1000HMOV BX, OFFSET X1(1) MOV AL, X1(2) MOV DL, BX+2(3) SUB BX,2(4) ADD AL, Y1+1四、编程题1.编写程序段实现将BL、DL中的有符号数相除,商送BL,余数送CL中。2已知在AX、BX中放有一32位有符号二进制数,编写程序段实现将其绝对值送入CX、DX中。其中AX、CX放高位。3编写程序段实现将AX、BX与SI、DI中的两个双精度数相减,差值送CX、DX。4编写程序段实现将AL寄存器的高4位和低4位互换。5.编写程序段实现计算1-100各数的累加和。6.编写程序段实现,若寄存器AL中是字母Y或y,则令AH0;否则令AH1。7.编写程序段实现用二进制显示从键盘输入的一个字符的ASCII码。8.编写一个完整的汇编程序,将内存中的X值(一个无符号整数),以十进制形式显示在屏幕上。