niusouti.com
参考答案和解析
正确答案:D
更多“下列四条指令中,错误的指令是()。A、SHR AL,lB、MOV AL,64HC、SHL AH,CLD、MOV AL,BX”相关问题
  • 第1题:

    下列( )指令必须修改操作数的类型属性。

    A.MUL BX

    B.MUL[BX]

    C.MOV AL,02H,

    D.MOV AL,[BX]


    正确答案:B

  • 第2题:

    在8086/8088微处理器中,下列( )指令是合法的。

    A.ADD AX,3

    B.MOV AL,300

    C.MUL AL,BL

    D.SHL AL,3


    正确答案:A

  • 第3题:

    执行下列程序段后,AL=( )。 MOV AL,64 MOV CL,2 SHR AL,CL MOV CL,AL SHR AL,2 ADD AL,CL

    A.16

    B.20

    C.32

    D.64


    正确答案:B

  • 第4题:

    下列哪一条是不合法的指令?

    A.MUL BX

    B.MUL [BX]

    C.MOV AL,02H

    D.MOV AL,[BX]


    正确答案:B
    解析:MUL是8086的乘法指令,选项A中没有目的操作数,则默认的目的操作数是AX;但是,B选项中[BX]是一个存储器操作数,数据类型不能确定,目的操作数也就不能确定使用哪个寄存器。MOV是传送指令,C和D选项都有指定的目的操作数和源操作数,是正确的。

  • 第5题:

    下列( )是不合法的指令。

    A.MUL BX 4

    B.MUL [BX]

    C.MOV AL,02H

    D.MOV AL,[BX]


    正确答案:B

  • 第6题:

    下列( )是不合法的指令。

    A.MUL BX

    B.MUL [BX]

    C.MOV AL,02H

    D.MOV AL,[BX]


    正确答案:B

  • 第7题:

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

    • A、SHL AL,1
    • B、MOV AH,BX
    • C、SHR AL,CL
    • D、MOV AL,20H

    正确答案:B

  • 第8题:

    阅读下列指令,指令执行后(AH)=(),(AL)=(),(BL)=(),(CF)=MOVAX,0MOV.AL,08HMOV.BL,07HADD.AL,BLAAA


    正确答案:程序段执行后:(AH)= 01H ,(AL)= O5H ,(BL)= 07H ,(CF)= 0 。

  • 第9题:

    以下那个说法正确()

    • A、指令MOV AL,[BX+5]中的源操作数的寻址方式是寄存器间接寻址
    • B、指令MOV AL,[BX+SI]中的源操作数的寻址方式是基址变址寻址
    • C、指令MOV AL,[BX+SI+5]中的源操作数的寻址方式是相对的寄存器间接寻址
    • D、指令MOV AL,[1000H]中的源操作数的寻址方式是立即寻址

    正确答案:B

  • 第10题:

    下述指令中不改变PSW的指令是()。

    • A、MOV AX,BX
    • B、AND AL,0FH
    • C、SHR BX,CL
    • D、ADD AL,BL

    正确答案:A

  • 第11题:

    问答题
    阅读下列指令,指令执行后(AH)=(),(AL)=(),(BL)=(),(CF)=MOVAX,0MOV.AL,08HMOV.BL,07HADD.AL,BLAAA

    正确答案: 程序段执行后:(AH)= 01H ,(AL)= O5H ,(BL)= 07H ,(CF)= 0 。
    解析: 暂无解析

  • 第12题:

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

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

  • 第13题:

    下列MOV指令都是错误的,请指出错误原因。

    (1)MOV ES, 1234H

    (2)MOV AL, 300

    (3)MOV [SP], AX

    (4)MOV AX, BX+DI

    (5)MOV 20H, AH


    正确答案:(1)立即数不能直接赋给段寄存器。 (2)立即数300超过8位不能赋给8位寄存器AL。 (3)SP不能作为间接寻址寄存器寻址。 (4)两个寄存器不能相加。 (5)立即数不能作为目标操作数。
    (1)立即数不能直接赋给段寄存器。 (2)立即数300超过8位,不能赋给8位寄存器AL。 (3)SP不能作为间接寻址寄存器寻址。 (4)两个寄存器不能相加。 (5)立即数不能作为目标操作数。 解析:本问题主要考查汇编语言的基础知识。在8086的指令系统中,应用通用传送指令时,需要注意以下几点:
    传送指令可传送8位数据,也可传送16位数据,具体取决于指令中涉及的寄存器是8位还是16位,也取决于立即数的形式。
    传送指令中总是即含源操作数,又含目的操作数,两者之中至少有一个是用寄存器来指出的,这可减少指令长度。因此,一个立即数不能直接送直接寻址的内存单元。交换指令(XCHG)两个操作数都不能是立即数。
    传送指令不能在两个内存单元之间直接传送数据。
    在传送指令中,寄存器即可以作为源操作数,也可以作为目的操作数,但CS寄存器不能作为目的操作数,换句话说,这个寄存器的值不能随意修改。而IP寄存器即不能作源操作数,也不能作为目的操作数。
    用BX、SI、DI来间接寻址时,默认的段寄存器位DS,而用BP来间接寻址时,默认的段寄存器为SS。
    8086系统规定,凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行后,又自动恢复对SS寄存器赋值前的中断开放状态。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。了解这点后,就应注意在修改SS和SP的指令之间不要插入其他指令。
    除了一些直接影响FLAGS的指令外,一般传送指令不改变标志寄存器的内容。
    立即数不能直接送段寄存器DS、ES以及SS,要用通用寄存器或存储单元作桥梁。
    因此,指令“MOVES,1234H”的错误在于立即数直接赋给了段寄存器;指令“MOV AL,300”的错误在于立即数300超过8位,不能赋给8位寄存器AL;指令“MOV[SP],AX”的错误在于SP不能作为间接寻址寄存器寻址:指令“MOV AX,BX+DI”的错误在于两个寄存器不能相加;指令“MOV 20H,AH”的错误在于立即数不能作为目标操作数。

  • 第14题:

    下面两条指令执行后,(AH)=______,(AL)=______;

    MOV AH, 10H

    MOV AL,10


    正确答案:0010000B即10H    0001010B即0AH
    0010000B即10H  ,  0001010B即0AH

  • 第15题:

    下面有四条指令:

    ①MOV AL,[BX+SI+1AOH]

    ②MOV AL,80H[BX][DI]

    ③MOV AL,[BP+SI-0A0H]

    ④MOV AL,[BP]

    其中(DS)=0930H,(SS)=0915H,(SI)=0AOH,(DI)=ACOH,(BX)=80H,(BP)= 470H。试问哪些指令能在AL寄存器中获得相同的结果?( )

    A.仅①和②

    B.仅②和③

    C.仅③和④

    D.①、②、③、④


    正确答案:C
    解析:在第③中,MOVAL,[BP+SI-0A0H]就相当于MOVAL,[BP]因为SI=0A0H,BP+SI-0A0H=BP。所以第③和第④的作用是相同的,它们AL寄存器中获得的内容也是相同的,都是470H。选项C正确。

  • 第16题:

    为了使下面的指令序列能够将AH和AL寄存器中的非组合型(Unpacked)BCD码转换为缉合型(PackeD)BCD码存放在AL中,应该在第三条指令中填入( )操作数。 MOV CL, 4 SHL AL, CL SHR __, CL

    A.BL

    B.AL

    C.AX

    D.BX


    正确答案:C

  • 第17题:

    执行下列程序段后 MOV AL,87 MOV CL, 4 MOV AH, AL AND AL,0FH OR AL, 30H SHR AH,CL OR AH,30H 则AX=( )H

    A.3537

    B.3735

    C.0705

    D.0507


    正确答案:A
    解析:该程序将87的十六进制值57转换成35H和37H,分别存放在AH和AL寄存器中。

  • 第18题:

    分析下列程序段: MOV AX,OA33AH MOV DX,OFOFOH AND AH,DL XOR AL,DH NEG AH NOT AL 执行上述指令段后,AH=(),AL=()


    正确答案:60H;35H

  • 第19题:

    指出下列指令中哪些是错误的,错在什么地方。  (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 位

  • 第20题:

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


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

  • 第21题:

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

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

    单选题
    下列四条指令中,错误的指令是()。
    A

    SHR AL,l

    B

    MOV AL,64H

    C

    SHL AH,CL

    D

    MOV AL,BX


    正确答案: A
    解析: 暂无解析