更多“指出MOV AL,A2H指令的错误,并加以改正。”相关问题
  • 第1题:

    判断下列指令是否正确。若不正确,指出错误原因。 (1)MOV SI, DL (2)MOV ES, 1000H (3)LEA AX, 3006H (4)MOV [BP][DI], 0 (5)MOV [SI], [DI] (6)MOV [DI],[BX] (7)MOV [DX+SI],AL (8)MUL AL , 58H (9)MOV DS,SEG DAT (10)MOV WORD PTR [BX],-1


    正确答案: (1)指令MOV SI, DL是错误的,两个操作数类型不匹配。
    (2)指令MOV ES, 1000H是错误的,装载段寄存器时,源操作数不能为立即数。
    (3)指令LEA AX, 3006H是错误的,LEA指令的源操作数必须为内存操作数。
    (4)指令MOV [BP][DI], 0是错误的,操作数类型无法确定。
    (5)指令MOV [SI], [DI] 是错误的,不能同时出现两个内存操作数。
    (6)MOV [DI],[BX] ;错,存储器不能传存储器
    (7)MOV[DX+SI],AL; 错,DX不能用作基址寻址
    (8)MUL AL , 58H ;错,乘法指令不能用立即数
    (9)MOV DS,SEG DAT;错,立即数不能送段寄存器
    (10)MOV WORD PTR [BX],-1 ;正确 ,-1送BX指示的字单元

  • 第2题:

    下列指令中错误指令是()

    • A、MOV AX,DS
    • B、MOV CS,1500H
    • C、MOV SI,BX
    • D、MOV [3000H],AL
    • E、MOV [DI+32H],[1845H]
    • F、MOV AL,1000H

    正确答案:B,E,F

  • 第3题:

    请指出MOV AL,1400指令中的错误。


    正确答案:1400超过了一个字节所能表示的范围

  • 第4题:

    指出MOV [AX],[SI]指令的错误,并加以改正。


    正确答案:不能在存储器单元之间传送数据,改为MOV AX,[SI]

  • 第5题:

    指出下列指令是否正确,若不正确说明原因:MOV 64H,AL


    正确答案: 错,立即数不能做为目的操作数

  • 第6题:

    判断MOV [BX],[DI]指令的正误,错误的请改正。


    正确答案:错误,不能在存储器单元之间传送数据,改为MOV BX,[DI]

  • 第7题:

    分析下列指令的正误,对于错误的指令要说明原因并加以改正。 (1) MOV AH,BX (2) MOV [BX],[SI] (3) MOV AX,[SI][DI] (4) MOV MYDAT[BX][SI],ES:AX (5) MOV BYTE PTR[BX],1000 (6) MOV BX,OFFSET MAYDAT[SI] (7) MOV CS,AX (8) MOV DS,BP


    正确答案: (1)MOVAH,BX
    错误,寄存器类型不匹配,可改为MOVAX,BX
    (2)MOV[BX],[SI]
    错误,两个操作数不能都为存储单元,可改为MOVBX,[SI]或MOV[BX],SI
    (3)MOVAX,[SI][DI]
    错误,寻址方式中只能出现一个变址寄存器,可改为MOVAX,[BX][DI]。
    (4)MOVMYDAT[BX][SI],ES:AX
    错误,AX签不能有段跨越前缀,去掉ES:,改为MOVMYDAT[BX][SI],AX
    (5)MOVBYTEPTR[BX],1000
    错误,1000超出字节空间存储范围
    (6)MOVBX,OFFSETMAYDAT[SI];正确
    (7)MOVCS,AX
    错误,MOV指令CS不能做目的操作数,可改为MOVDS,AX
    (8)MOVDS,BP;正确

  • 第8题:

    指出下列指令的错误: MOVAH,CX; MOV33H,AL; MOVAX,[SI][DI]; MOV[BX],[SI]; ADDBYTEPTR[BP],256; MOVDATA[SI],ES:AX; JMPBYTEPTR[BX]; OUT230H,AX; MOVDS,BP; MUL39H。


    正确答案: (1)指令错。两操作数字长不相等
    (2)指令错。MOV指令不允许目标操作数为立即数.
    (3)指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。
    (4)指令错。MUV指令不允许两个操作数同时为存储器操作数。
    (5)指令错。ADD指令要求两操作数等字长。
    (6)指令错。源操作数形式错,寄存器操作数不加段重设符。
    (7)指令错。转移地址的字长至少应是16位的。
    (8)指令错。对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址。
    (9)指令正确。
    (10)指令错。MUL指令不允许操作数为立即数。

  • 第9题:

    指出MOV CS,2000H指令的错误,并加以改正。


    正确答案:码段寄存器不能赋初值,其他段寄存器可以,改为MOV DS,2000H

  • 第10题:

    完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()

    • A、MOV   AL,00H
    • B、AND  AL,00H
    • C、XOR  AL,AL
    • D、SUB  AL,AL

    正确答案:A

  • 第11题:

    指出MOV CS,AX指令的错误原因。


    正确答案:CS值不能由程序员编程改变。

  • 第12题:

    问答题
    判断下列指令是否正确。若不正确,指出错误原因。 (1)MOV SI, DL (2)MOV ES, 1000H (3)LEA AX, 3006H (4)MOV [BP][DI], 0 (5)MOV [SI], [DI] (6)MOV [DI],[BX] (7)MOV [DX+SI],AL (8)MUL AL , 58H (9)MOV DS,SEG DAT (10)MOV WORD PTR [BX],-1

    正确答案: (1)指令MOV SI, DL是错误的,两个操作数类型不匹配。
    (2)指令MOV ES, 1000H是错误的,装载段寄存器时,源操作数不能为立即数。
    (3)指令LEA AX, 3006H是错误的,LEA指令的源操作数必须为内存操作数。
    (4)指令MOV [BP][DI], 0是错误的,操作数类型无法确定。
    (5)指令MOV [SI], [DI] 是错误的,不能同时出现两个内存操作数。
    (6)MOV [DI],[BX] ;错,存储器不能传存储器
    (7)MOV[DX+SI],AL; 错,DX不能用作基址寻址
    (8)MUL AL , 58H ;错,乘法指令不能用立即数
    (9)MOV DS,SEG DAT;错,立即数不能送段寄存器
    (10)MOV WORD PTR [BX],-1 ;正确 ,-1送BX指示的字单元
    解析: 暂无解析

  • 第13题:

    指出下列指令中哪些是错误的,错在什么地方。  (1)MOV DL,AX  (2)MOV 8650H,AX  (3)MOV DS,0200H  (4)MOV [BX],[1200H]  (5)MOV IP,0FFH  (6)MOV [BX+SI+3],IP  (7)MOV AX,[BX][BP]  (8)MOV AL,ES:[BP]  (9)MOV DL,[SI][DI]  (10)MOV AX,OFFSET 0A20H  (11)MOV AL,OFFSET TABLE  (12)XCHG AL,50H  (13)IN BL,05H  (14)OUT AL,0FFEH


    正确答案:(1)长度不匹配
    (2)立即数不能做目的操作数
    (3)段寄存器不能用立即数赋值
    (4)两个内存单元不能直接传送数据
    (5)IP 不能用指令直接修改
    (6)指令中不能出现 IP
    (7)BX/BP 应与 SI/DI 搭配
    (8)正确
    (9)SI/DI 应与 BX/BP 搭配
    (10)OFFSET 后应跟内存单元
    (11)偏移地址为16 位,AL 长度不够
    (12)立即数不能用于XCHG
    (13)IN 必须用 AL/AX
    (14)操作数顺序反向;地址应为 8 位

  • 第14题:

    判断下列指令中哪些是错误的,并说明错的原因。 (1)MOV  BL, AX  (2)MOV  AL, BX  (3)MOV  AL, BL  (4)MOV  BP, BYTE PTR[BX]


    正确答案:(1)(2)和(4)均是错误的,因操作数类型不匹配。

  • 第15题:

    指出以下指令中,哪些指令是非法的,并说明为什么(8086系统)。 (1) PUSH 1234H (2) MOV CS,AX (3) IN AX, 300 (4) MOV AX,[DX+12] (5) MOV BX,[BX] (6) MOV DS,1000H (7) XCHG AL,AL (8) MOV AL,100H (9) MOV DX,AL (10)LEA BL,[BX+5] (11)LEA DX,BX (12)MOV [1000H],12H (13)ADD AX,DS (14)SUB [0100H],BYTE PTR [0001] (15)SHL BL,2 (16)SHR CL,CL (17)MUL AL,BL (18)INT 400


    正确答案: (1)非法,8086系统不允许PUSH指令的操作数为立即数;
    (2)非法,MOV指令中CS不能作为目的操作数;
    (3)非法,端口号大于0FFH;
    (4)非法,DX不能出现在中括号[]内;
    (5)合法;
    (6)非法,不能把立即数赋给段寄存器;
    (7)合法;
    (8)非法,源操作数大于0FFH,不能赋给8位寄存器AL;
    (9)非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配;
    (10)非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器;
    (11)非法,LEA指令的源操作数只能是存储器操作数;
    (12)非法,指令存在歧义,无法确定传送的是字节还是字;
    (13)非法,段寄存器不能参与算术运算;
    (14)非法,源和目的寄存器不能同为存储器操作数;
    (15)非法,在8086系统中,移位次数大于1时需要将移位次数存放到CL中;
    (16)合法;
    (17)非法,在8086系统中MUL指令没有双操作数的用法;
    (18)非法,中断类型号大于0FFH。

  • 第16题:

    请指出MOV CX,AL指令中的错误。


    正确答案:目的操作数是字操作,而源操作数是字节操作,类型不匹配。

  • 第17题:

    指出ADD AX,CL指令的错误,并加以改正。


    正确答案: 操作数间位数不匹配,改为ADD AX,CX或ADD AL,CL

  • 第18题:

    指出以下指令中,哪些指令是非法的,并说明为什么(80386系统)。 (1) MOV AX,12[EBX][SI*16] (2) RCR EAX,10 (3) PUSH 5678H (4) POP 1000H (5) MOV [EAX+EAX],EAX (6) MOV AL,[ESP+ESP*2] (7) MOV BL,[AX+12] (8) IMUL AL,BL,12


    正确答案: (1)非法,比例因子只能是1、2、4、8,不能是16;
    (2)合法;
    (3)合法;
    (4)非法,POP指令的目的操作数不能是立即数;
    (5)合法;
    (6)非法,ESP只能作为基址寄存器,不能作为变址寄存器;
    (7)非法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器;
    (8)合法。

  • 第19题:

    设VAR1、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。 (1) ADD VAR1,VAR2 (2) MOV AL,VAR2 (3) SUB AL,VAR1 (4) JMP LAB[SI] (5) JNZ VAR1 (6) JMP NEAR LAB


    正确答案: (1) ADD VAR1,VAR2
    错误,两个操作数不能都为存储单元,可改为 MOV BX,VAR2 ADD VAR1,BX
    (2) MOV AL,VAR2
    错误,数据类型不匹配,可改为MOV AX,VAR2
    (3) SUB AL,VAR1
    错误,数据类型不匹配,可改为SUB AX,VAR1
    (4) JMP LAB[SI]
    错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMP VAR1[SI]
    (5) JNZ VAR1
    错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZ LAB
    (6) JMP NEAR LAB
    错误,缺少运算符PTR,可改为JMP NEAR PTR LAB

  • 第20题:

    判断下列指令是否正确。若不正确,指出错误原因。  (1)MOV AX, [EBX]  (2)MOV SI, DL  (3)MOV EBP, [ESP][EAX*3] (4)LEA AX, 3006H   (5)MOV [BP][DI], 0    (6)MOV [SI], [DI]   (7)MOV ES, 1000H   (8)MOV AX, X+2  (9)MOV AX, CX+2    (10)MOV [EAX][EAX*2], AL 


    正确答案: (1)指令MOV AX, [EBX]是正确的。
    (2)指令MOV SI, DL是错误的,两个操作数类型不匹配。
    (3)指令MOV EBP, [ESP][EAX*3] 是错误的,比例因子不能为3。
    (4)指令LEA AX, 3006H是错误的,LEA指令的源操作数必须为内存操作数。
    (5)指令MOV [BP][DI], 0是错误的,操作数类型无法确定。
    (6)指令MOV [SI], [DI] 是错误的,不能同时出现两个内存操作数。
    (7)指令MOV ES, 1000H是错误的,装载段寄存器时,源操作数不能为立即数。
    (8)如果“X”是用常数表达式定义的符号(例如:X   EQU   5+6),或者是用“DW”定义的内存变量,指令MOV AX, X+2是正确的。否则这条指令是错误的。
    (9)指令MOV AX, CX+2是错误的,源操作数表达式CX+2不是一个可以直接计算的“常数表达式”。
    (10)指令MOV [EAX][EAX*2], AL是正确的。

  • 第21题:

    指出下列指令是否正确,若不正确说明原因:MOV AL,CX


    正确答案:错,源、目的操作数的类型不一致

  • 第22题:

    下列指令中,错误的指令是()。

    • A、AND AL,‘A’
    • B、SHL AX,4
    • C、MOV CS,AX
    • D、TEST[BX],AL
    • E、MOV DS,1234H

    正确答案:B,C,E

  • 第23题:

    问答题
    判断下列指令中哪些是错误的,并说明错的原因。 (1)MOV  BL, AX  (2)MOV  AL, BX  (3)MOV  AL, BL  (4)MOV  BP, BYTE PTR[BX]

    正确答案: (1)(2)和(4)均是错误的,因操作数类型不匹配。
    解析: 暂无解析