参考答案和解析
正确答案:错误,操作数间位数不匹配,改为MOV BX,CX或MOV BL,CL
更多“判断MOV BX,CL指令的正误,错误的请改正。”相关问题
  • 第1题:

    若要完成(AX)×7/2运算,则在下列四条指令之后添加哪条指令? MOV BX,AX MOV CL,3 SAL AX,CL SUB AX,BX ______

    A.ROR AX,1

    B.SAL AX,1

    C.SAR AX,1

    D.DIV AX,2


    正确答案:C
    解析:MOV BX,AX; 保护AX的内容
    MOV CL,3;  给CL赋3
    SAL AX,CL; 将AX左移3位
    SUB AX,BX;将已经左移了3位的AX减去原来的AX,因为7=23-1,AX左移三位相当于乘了23再减去原来的AX,就相当于完成了原AX乘以7的操作,因此下面一步就应当完成除以2的功能.在二进制的计算机数运算中,除以2的操作可以通过将操作数右移一位完成,算术移位操作的指令SAR即是,因此选项C正确。

  • 第2题:

    分析下面指令序列执行后的正确结果是( )。 MOV BX,OFFFCH MOV CL,2 SAR BX,CL

    A.3FFFH

    B.0FFFFH

    C.0FFFCH

    D.0FFF5H


    正确答案:A

  • 第3题:

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

    • A、MOV [BX],[DI]
    • B、MOV BX,AX
    • C、AND BX,8000H
    • D、INC BX

    正确答案:A

  • 第4题:

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


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

  • 第5题:

    指出以下指令中,哪些指令是非法的,并说明为什么(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。

  • 第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题:

    判断ADD AL,B7H指令的正误,错误的请改正。


    正确答案:错误,源操作数以十六进制的A~F开头,应在前面加0,改为ADD AL,0B7H。

  • 第9题:

    指出下列指令中哪一个是错误的()

    • A、OR   CL,40H
    • B、JMP [BX]
    • C、MOV   IP,0FFH
    • D、POP  CX

    正确答案:C

  • 第10题:

    在下列指令的表示中,不正确的是()

    • A、MOV AL,[BX+SI]
    • B、JMP SHORT DONI
    • C、DEC [BX]
    • D、MUL CL

    正确答案:C

  • 第11题:

    问答题
    指出下列指令中源操作数的寻址方式,并说明指令操作的结果。 (1)MOV  BX, ‘BC’  (2)MOV  AX, DATA  (3)MOV  DX, [BX]  (4)MOV  AL, [BX+DI]  (5)MOV  CL, LIST[BX]  (6)MOV  AX, FILE[BX+DI+200H]  (7)DAA  (8)XLAT  (9)IN  AX, DX  (10)INT  21H

    正确答案: (1)立即寻址。操作结果是把ASCII码CB(4342H)传送到BX.
    (2)使用AX的直接寻址。操作结果是把数据段存储单元DATA1与DATA1+1的字内容复制到AX中。
    (3)寄存器间接寻址。把数据段由BX间接寻址的存储单元的字内容复制到DX中。
    (4)基址加变址寻址的寻址方式。操作结果是把由BX+DI寻址的数据段存储单元的字的内容复制到AL。
    (5)寄存器相对寻址。操作结果是把数据段由LIST+BX寻址的字节内容送CL。
    (6)相对基址加变址的寻址方式。操作结果是把由BX+DI+200H寻址的数据段存储单元的字内容送入AX。
    (7)源操作数为寄存器(AL)寻址。它是把AL中的两位BCD码加法运算的结果调整为两位压缩型十进制数,仍保留在AL中。
    (8)源操作数为寄存器(BX)相对寻址。操作结果是把由BX+AL指定的内容表格中的字节代码内容送AL。
    (9)源操作数为寄存器(DX)间接寻址。它是把DX和DX+1所指定的两个端口地址的字的内容送入AX。
    (10)源操作数为直接寻址,直接寻址地址为21H×4, 21H×4+2。操作结果是把21H×4~21H×4+3内存单元中的双字分别送到IP与CS。
    解析: 暂无解析

  • 第12题:

    问答题
    试写出执行下列指令序列后BX寄存器的内容。执行前(BX)=6D16H。 MOV CL,7 SHR BX,CL

    正确答案: (BX)=00DAH。
    解析: 暂无解析

  • 第13题:

    下列指令,不合法的是______。

    A.IN AX,03F9H

    B.MOV BX,AX

    C.REP CMPSB

    D.SHR BX,CL


    正确答案:A
    解析:选项不合法,因为03F9H已大于255,不能直接寻址,而必须通过DX寄存器间接寻址。

  • 第14题:

    试写出执行下列指令序列后BX寄存器的内容。执行前(BX)=6D16H。 MOV CL,7 SHR BX,CL


    正确答案: (BX)=00DAH。

  • 第15题:

    已知数据和符号定义 A1 DB ? A2 DB 8 K1 EQU 100 判断下列指令的正误,并说明错误指令的原因。 (1)MOV K1,AX (2)MOV A2,AH (3)CMP A1,A2 (4)MOV BX,K1 MOV[BX],DX (5)K1EQU 200


    正确答案: (1)错误。K1是符号,在此处相当于立即数100,故不能做目的操作数。
    (2)正确。
    (3)错误。A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。
    (4)正确。
    (5)错误。用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。

  • 第16题:

    指出下列指令中源操作数的寻址方式,并说明指令操作的结果。 (1)MOV  BX, ‘BC’  (2)MOV  AX, DATA  (3)MOV  DX, [BX]  (4)MOV  AL, [BX+DI]  (5)MOV  CL, LIST[BX]  (6)MOV  AX, FILE[BX+DI+200H]  (7)DAA  (8)XLAT  (9)IN  AX, DX  (10)INT  21H


    正确答案: (1)立即寻址。操作结果是把ASCII码CB(4342H)传送到BX.
    (2)使用AX的直接寻址。操作结果是把数据段存储单元DATA1与DATA1+1的字内容复制到AX中。
    (3)寄存器间接寻址。把数据段由BX间接寻址的存储单元的字内容复制到DX中。
    (4)基址加变址寻址的寻址方式。操作结果是把由BX+DI寻址的数据段存储单元的字的内容复制到AL。
    (5)寄存器相对寻址。操作结果是把数据段由LIST+BX寻址的字节内容送CL。
    (6)相对基址加变址的寻址方式。操作结果是把由BX+DI+200H寻址的数据段存储单元的字内容送入AX。
    (7)源操作数为寄存器(AL)寻址。它是把AL中的两位BCD码加法运算的结果调整为两位压缩型十进制数,仍保留在AL中。
    (8)源操作数为寄存器(BX)相对寻址。操作结果是把由BX+AL指定的内容表格中的字节代码内容送AL。
    (9)源操作数为寄存器(DX)间接寻址。它是把DX和DX+1所指定的两个端口地址的字的内容送入AX。
    (10)源操作数为直接寻址,直接寻址地址为21H×4, 21H×4+2。操作结果是把21H×4~21H×4+3内存单元中的双字分别送到IP与CS。

  • 第17题:

    写出下列指令的机器码  (1)MOV AL,CL  (2)MOV DX,CX  (3)MOV [BX+100H],3150H


    正确答案:(1)10001010 11000001B
    (2)10001011 11010001B
    (3)11000111 10000111 00000000 00000001 01010000 00110001B

  • 第18题:

    请指出MOV BX,[SI+DI]指令中的错误。


    正确答案:没有这种寻址方式

  • 第19题:

    判断MOV CS,3060H指令的正误,错误的请改正。


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

  • 第20题:

    说明下列指令中不合法的原因。 (1)MOV 64H, CL  (2)MOV CL, 100H  (3)MOV CL, 256  (4)MOV SS, 6180H  (5)MOV CS, WORD PTR[BX] (6)MOV DS, SS  (7)XCHG AL, 40H (8)XCHG ES, AX  (9)IN 160H, AL  (10)CMP [SI], [BX] (11)MOV DS, 1000H  (12)POP CS


    正确答案: (1)错在立即数64H作目标操作数。
    (2)和(3)错在目标操作数均超过了字节范围。
    (4)错在立即数直接传送给段寄存器。
    (5)错在把存储器操作数作数送CS, 这可能引起系统运行紊乱。
    (6)错在两个段寄存器之间直接传送。
    (7)错在用立即数作交换指令的操作数。
    (8)错在用段寄存器作交换指令的操作数。
    (9)错在当端口地址超过FFH时还在用直接寻址端口号。
    (10)错在用两个存储器操作数做比较。
    (11)错在将立即数直接传送到CS,必须先传送到某个寄存器,再经过寄存器传送到CS。
    (12)错在将存储器堆栈中的数据直接弹出到CS。

  • 第21题:

    完成同指令XCHG AX,BX相同功能的指令或指令序列是()。

    • A、MOV AX,BX
    • B、MOV BX,AX
    • C、PUSH AX POP BX
    • D、MOV CX,AX MOV AX,BX MOV BX,CX

    正确答案:D

  • 第22题:

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

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

  • 第23题:

    问答题
    说明下列指令中不合法的原因。 (1)MOV 64H, CL  (2)MOV CL, 100H  (3)MOV CL, 256  (4)MOV SS, 6180H  (5)MOV CS, WORD PTR[BX] (6)MOV DS, SS  (7)XCHG AL, 40H (8)XCHG ES, AX  (9)IN 160H, AL  (10)CMP [SI], [BX] (11)MOV DS, 1000H  (12)POP CS

    正确答案: (1)错在立即数64H作目标操作数。
    (2)和(3)错在目标操作数均超过了字节范围。
    (4)错在立即数直接传送给段寄存器。
    (5)错在把存储器操作数作数送CS, 这可能引起系统运行紊乱。
    (6)错在两个段寄存器之间直接传送。
    (7)错在用立即数作交换指令的操作数。
    (8)错在用段寄存器作交换指令的操作数。
    (9)错在当端口地址超过FFH时还在用直接寻址端口号。
    (10)错在用两个存储器操作数做比较。
    (11)错在将立即数直接传送到CS,必须先传送到某个寄存器,再经过寄存器传送到CS。
    (12)错在将存储器堆栈中的数据直接弹出到CS。
    解析: 暂无解析