niusouti.com
更多“对于下列程序段: AGAIN:MOV AL,[SI] MOV ES: [DI],AL INC SI INC DI LO ”相关问题
  • 第1题:

    对于以下程序段 AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN可以用指令( )完成相同的功能。

    A.REPMVOSB

    B.REPLODSB

    C.REPSTOSB

    D.REPESCASB


    正确答案:C

  • 第2题:

    对于以下程序段 AGAIN:MOV ES:[DI),AL INC DI LOOP AGAIN可以用指令( )完成相同的功能。

    A.REP MVOSB

    B.REP LODSB

    C.REP STOSB

    D.REPE SCASB


    正确答案:C

  • 第3题:

    对于以下程序段:AGAIN: MOV AL,[SI] MVO ES:[DI],AL INC SI INC DI LOOP AGAIN

    也可以用下列指令( )完成同样的功能。

    A.REP MVOSB

    B.REP LODSB

    C.REP STOSB

    D.REPE SCASB


    正确答案:A

  • 第4题:

    下列程序执行后,(SI)为( ) MOV CX,5 MOV SI,4 Al:INC SI INC SI LOOP AI

    A.4

    B.5

    C.14

    D.15


    正确答案:C
    解析:每执行LOOP一次,CX的值就自动减1,CX=5,所以A1循环体被执行5次,也就是SI的值加了10,即SI=14。

  • 第5题:

    对于下列程序段: AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN 可用指令______完成相同的功能。( )

    A.REP MOVSB

    B.REP LODSB

    C.REP STOSB

    D.REPE SCASB


    正确答案:C
    解析:该题给出的程序段的功能是,将累加器AL或AX中的一个字节或字传送到(存入)附加段中由DI指示的目的串中,同时修改DI内容,使其指向目的串的下一单元。而MOVSB的功能是将源串中由SI所指一个字或字节传送到由DI所指示的目的串中。执行后自动修改SI,DI地址指针。所以选项A的功能与题中的功能不同。而LODSB的功能是把位于DS段中由SI所指示的源串某一元素取到AL或AX中,同时修改SI内容使它指向下一元素,所以选项B的功能与题中的功能不相同。STOSB的功能是将累加器AL或AX中的一个字节或字传送到(存入)附加段中由DI指示的目的串中,同时修改DI内容,使其指向目的串的下一单元,所以选项C是正确的。SCASB的功能是从累加器AL或AX中减去ES中,由DI指示的目的串的一个元素,结果只影响标志位AF,CF,OF,PF,ZF和SF,而修改目的的串操作数,DI的内容自动被修改而指向下一串元素,所以选项D的功能与题中的功能不同。

  • 第6题:

    判断下列指令是否正确。若不正确,指出错误原因。 (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指示的字单元

  • 第7题:

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

    • A、IN 63H,AX
    • B、IN AL,63H
    • C、MOV ES,2D00H
    • D、MOV [DI],[SI]

    正确答案:B

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

    程序段如下: BLK1 DB 46,84,34,-5,20,122,73 : MOV CX,7 LEA S1,BLK1 NEXT:MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] : 请回答程序段运行后: (AL)=? (BL)=?


    正确答案: (AL)=-5或0FBH
    (BL)=14H或20

  • 第10题:

    问答题
    程序段如下: BLK1 DB 46,84,34,-5,20,122,73 : MOV CX,7 LEA S1,BLK1 NEXT:MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] : 请回答程序段运行后: (AL)=? (BL)=?

    正确答案: (AL)=-5或0FBH
    (BL)=14H或20
    解析: 暂无解析

  • 第11题:

    问答题
    判断下列指令是否正确。若不正确,指出错误原因。  (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是正确的。
    解析: 暂无解析

  • 第12题:

    填空题
    用DEBUG调试如下程序段: MOV SI,O MOV AL,1000[ SI] LP:INC SI CMP SI,08H JAE A11 CMP.AL,1000[SI] JGE A22 MOV AL,1000[SI] A22:JMP LP A11:INT 3 DS:1000H DB 34H,47H,78H,77H DB 88H,99H,OAAH,OFFH 则程序执行后,AL=()该程序的功能是:()

    正确答案: 78H,求有符号数的最大值
    解析: 暂无解析

  • 第13题:

    交换寄存器SI、DI的内容,正确的程序段是( )。

    A.PUSH SI

    B.PUSH SI PUSH DI PUSH DI POP SI POP DI POP DI POP SI

    C.MOV AX,SI

    D.MOV AX,SI MOV SI,AX MOV BX,DI MOV DI,BX XCHG BX,AX


    正确答案:A

  • 第14题:

    完成41H送[2100H]、42H送[2101H]的正确程序是( )。

    A.MOV AL,41H MOV [2100H], AL INC AL MOV [2100H],AL

    B.MOV SI, 2100H MOV [SI], ‘A’ INC SI MOV [SI], ‘B’

    C.MOV AX,4241H MOV AX,AX

    D.MOV AX, ‘AB’ MOV [2100H],AX


    正确答案:B

  • 第15题:

    假定一组相邻字节的首地址在BX中,末地址在DI中,为了使下面的程序段能用来查找出其中第一个非零字节,并把它存放在从中,在横线处应填入的指令是( )。 SUB DI, BX INC DI MOV CX, DI _______________ NEXT: INC BX CMP BYTE PTR [BX],0 LOOPE NEXT MOV AL,BYTE PTR [BX]

    A.MOV SI,CX

    B.SUB BX,BX

    C.DEC BX

    D.INC BX


    正确答案:C

  • 第16题:

    交换寄存器SI,DI的内容,正确的程序段是( )

    A.PUSH SI PUSH DI POP SI POP DI

    B.PUSH SI PUSH DI, POP SI,DI

    C.MOV AX,SI MOV SI,DI MOV DI,AX

    D.MOVAX,SI MOV BX,DI XCHG BX,AX


    正确答案:A
    解析:在堆栈中,无论是压人还是弹出,都必须以字为单位进行,即一次压人必须压入堆栈一个字,弹出时,也必须从堆栈中取出一个字。所以选项B是错误的;在串操作指令中,SI用作源变址寄存器,DI用作目的地址寄存器,所以选项C是错误的;选项D交换的是AX寄存器和BX寄存器里的内容,不符合题意;只有选项A是正确的,它依次把SI和DI的值推进栈中,然后把DI的值弹出来给SI,把SI的值弹出来给DI,即完成了SI和DI内容的交换。

  • 第17题:

    下列指令中,非法的是()

    • A、MOV [SI],[DI]
    • B、IN AL,DX
    • C、CMP COUNT[SI],AX
    • D、PUSH DX

    正确答案:A

  • 第18题:

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

    • A、IN 63H,AX
    • B、IN AL,63H
    • C、MOV ES,2D00H
    • D、MOV [DI],[SI]

    正确答案:B

  • 第19题:

    阅读下面的程序,回答问题 DATA SEGMENT BUF DB '1234' N=$-BUF BCD DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,N LEA DI,BCD+N-1 LOOP1:MOV AL,[SI] SUB AL,30H MOV [DI],AL INC SI DEC DI DEC CX JNE LOOP1 MOV AH,4CH INT 21H CODE ENDS END START 如果将代码段中的指令LEA DI,BCD+N-1改成LEA DI,BCD;DEC DI改成INC DI,其它指令不变,程序执行后,从BCD开始的N个字节单元中的内容是什么?


    正确答案: 程序执行后,从BCD开始的N个字节单元中的内容是1234。

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

    下列指令中操作数在代码段中的是()。

    • A、MOV  AL,42H
    • B、ADD  AL,BL
    • C、SUB  [BX],DI
    • D、INC  [DI]

    正确答案:A

  • 第22题:

    问答题
    判断下列指令是否正确。若不正确,指出错误原因。 (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指示的字单元
    解析: 暂无解析

  • 第23题:

    问答题
    指出下列指令的错误: 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指令不允许操作数为立即数。
    解析: 暂无解析