更多“MOV  AH,[buf+BP+DI]的”相关问题
  • 第1题:

    下列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”的错误在于立即数不能作为目标操作数。

  • 第2题:

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

    MOV AH, 10H

    MOV AL,10


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

  • 第3题:

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

    • A、SHR AL,l
    • B、MOV AL,64H
    • C、SHL AH,CL
    • D、MOV AL,BX

    正确答案:D

  • 第4题:

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

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

    正确答案:B

  • 第5题:

    请阅读下列程序,分析其功能。MESS DB‘PRESS ANY KEY’,0DH,0AH,‘$’MOV AH,09MOV DX,SEG MESSMOV DS,DXMOV DX,OFFSETMESSINT 21H


    正确答案: 使用9号系统功能调用将字符串PRESS ANY KEY从屏幕上显示输出(或打印机打印输出)。

  • 第6题:

    指出下列指令的错误(1)MOV.AH,BX(2)ADD.15H,BX(3)MOV.CS,AX(4)MOV.AX,[SI][DI](5)MOV.BYTEPTR[BX],1000


    正确答案: (1)MOV . AH,BX (1)类型不匹配
    (2)ADD . 15H,BX ( 2)立即数不能作目的操作数
    (3)MOV . CS,AX (3)CS不能作目的操作数
    (4)MOV . AX,[SI][DI] (4)SI和DI不能一起使用
    (5)MOV . BYTE PTR[BX],1000 (5)类型不匹配

  • 第7题:

    下列程序段完成什么功能? MOV  CL, 04  SHL  DX,CL  MOV  BX,AH  SHL  AX,CL  SHR  BL,CL  OR   DL,BL


    正确答案:把DX和AX中的双字长数乘16,即把32位字左移4位。

  • 第8题:

    以下各个指令中正确的是()。

    • A、MOV CS,1000
    • B、OUT DX,AX
    • C、MOV BL,BP
    • D、MOV AH,DX

    正确答案:B

  • 第9题:

    指出下列指令的错误(1)SUB AH,BX(2)ADD OAH,BL(3)MOV C3,AX(4)MOV AX,[SI][DI](5)MOV BYTEPTR[BX],999


    正确答案: (1)类型不匹配
    (2)立即数不能作目的操作数
    (3) CS不能作目的操作数
    (4)SI和DI不能一起使用
    (5)类型不匹配

  • 第10题:

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

    • A、MOV AH,BL
    • B、MOV DS,AX
    • C、MOV CL,DX
    • D、MOV SI,90

    正确答案:C

  • 第11题:

    问答题
    指出下列指令的错误(1)MOV.AH,BX(2)ADD.15H,BX(3)MOV.CS,AX(4)MOV.AX,[SI][DI](5)MOV.BYTEPTR[BX],1000

    正确答案: (1)MOV . AH,BX (1)类型不匹配
    (2)ADD . 15H,BX ( 2)立即数不能作目的操作数
    (3)MOV . CS,AX (3)CS不能作目的操作数
    (4)MOV . AX,[SI][DI] (4)SI和DI不能一起使用
    (5)MOV . BYTE PTR[BX],1000 (5)类型不匹配
    解析: 暂无解析

  • 第12题:

    问答题
    请阅读下列程序,分析其功能。MESS DB‘PRESS ANY KEY’,0DH,0AH,‘$’MOV AH,09MOV DX,SEG MESSMOV DS,DXMOV DX,OFFSETMESSINT 21H

    正确答案: 使用9号系统功能调用将字符串PRESS ANY KEY从屏幕上显示输出(或打印机打印输出)。
    解析: 暂无解析

  • 第13题:

    当一个程序使用DOS系统功能调用退出用户程序时,在编写INT 21H指令前,应选的指令是______。

    A.MOV AH,01H

    B.MOV AX,4CH

    C.MOV AH,4CH

    D.RET


    正确答案:C

  • 第14题:

    执行下列程序段后 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寄存器中。

  • 第15题:

    程序段如下,说明程序执行后AH,AL的值。 MOV AX.9034H NEG AH NOT AL 执行后,AH=();AL=()。


    正确答案:70H;OCBH

  • 第16题:

    阅读下列程序,说明程序执行后AH、AL、CF、SUM单元的值。 MOV AH,O MOV AL, NUM1 ADD AL, NUM2 DAA ADC AH,0 MOV SUM, AL INT 3 NUM1 DB 73H NUM2 DB 66H SUM DB? AH=(),AL=(),CF=() SUM单元的值=()


    正确答案:0H;OIH;39H;39H

  • 第17题:

    指出MOV AH,300指令的错误原因。


    正确答案:300超出AH允许范围。

  • 第18题:

    源程序如下: MOV AH,0 MOV AL,9 MOV BL,8 ADD AL,BL AAA AAD DIVAL 结果AL(),AH=(),BL=()。


    正确答案:01H;00H;08H

  • 第19题:

    分析下列指令的正误,对于错误的指令要说明原因并加以改正。 (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;正确

  • 第20题:

    指出下列指令的错误:MOV AH,BX


    正确答案:AH为八位,BX为16位

  • 第21题:

    源程序如下: MOV AH, 0 MOV AL, 9 MOV BL, 8 ADD AL, BL AAA AAD DIV AL 结果AL为多少?AH为多少?BL为多少?


    正确答案:AL=01H、AH=00H、BL=08H

  • 第22题:

    填空题
    MOV  AH,[buf+BP+DI]的源操作数的寻址方式()

    正确答案: 相对基址变址寻址
    解析: 暂无解析

  • 第23题:

    填空题
    阅读下列程序,说明程序执行后AH、AL、CF、SUM单元的值。 MOV AH,O MOV AL, NUM1 ADD AL, NUM2 DAA ADC AH,0 MOV SUM, AL INT 3 NUM1 DB 73H NUM2 DB 66H SUM DB? AH=(),AL=(),CF=() SUM单元的值=()

    正确答案: 0H,OIH,39H,39H
    解析: 暂无解析