更多“对于以下程序段 AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN可以用指令( )完成相同的功能。A.REPMVOSBB.REPLODSBC.REPSTOSBD.REPESCASB”相关问题
  • 第1题:

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

    A.REP MVOSB

    B.REP LODSB

    C.REP STOSB

    D.REPE SCASB


    正确答案:C

  • 第2题:

    对于以下程序段: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

  • 第3题:

    假定一组相邻字节的首地址在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

  • 第4题:

    对于下列程序段: 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的功能与题中的功能不同。

  • 第5题:

    有汇编程序段如下 CODES SEGMENT ASSUME CS:CODES START: MOV CX, 30 XOR AX, AX MOV BX, 1 AGAIN: ADD AX, BX INC BX LOOP AGAIN CODES ENDS END START 程序执行后,AX和BX的内容分别是

    A.465,31

    B.465,30

    C.434,31

    D.434,30


    正确答案:A

  • 第6题:

    下列指令执行时操作数在数据段的是()。

    • A、MOV AX,32768H
    • B、ADD AL,AH
    • C、NEG BX
    • D、INC [DI]

    正确答案:D

  • 第7题:

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

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

    正确答案:B

  • 第8题:

    阅读下面的程序,回答问题 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 找出一条指令代替指令“SUB AL,30H”,使程序功能不变。


    正确答案: 用指令“AND AL,0FH”代替指令“SUB AL,30H”,程序功能不变。

  • 第9题:

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

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

    正确答案:B

  • 第10题:

    阅读下面的程序,回答问题 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。

  • 第11题:

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

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

    正确答案:A

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

    对于下列程序段;

    AGAIN: MOV ES:[DI],AL

    INC DI

    LOOP AGAIN

    可用指令( )完成相同的功能。

    A.REP MOVSB

    B.REP LODSB

    C.REP STOSB

    D.REP SCASB


    正确答案:C
    解析:重复前缀指令集

  • 第14题:

    为了使下面的程序段能用来把DL中的二进制代码从高位到低位依次转换为ASCII码并存入 DI 设定的内存数据区,试问该程序段中NEXT 处应填入( )指令。 MOV CX,8 NEXT: MOV AL, DL AND AL, 1 ADD AL, 30H MOV [D1],AL INC DI LOOP NEXT

    A.SHL DL, 1

    B.SHR DL,1

    C.ROL DL,1

    D.ROR DL,1


    正确答案:C

  • 第15题:

    假设ES段中有一个字符串‘ILOVESWIM’,其名为ARRAY,下面程序段 CLD LEA DI,ES:ARRAY MOV AL,‘W’ MOV CX,9 REPNE SCASB HLT 执行后,CX的值是______。

    A.2

    B.6

    C.7

    D.9


    正确答案:A
    解析:本题程序段实现搜索字符串‘ILOVESWIM’中的‘W’字符。直到找到它,停止搜索,(CX)=2。CX寄存器中的值是剩下的未比较的字符个数。

  • 第16题:

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

    A.REP MOVSB

    B.REPE SCASB

    C.REP STOSB

    D.REP LODSB


    正确答案:A
    解析:该段程序的功能是将以DS:DI指向下一字符串送到ES:DI指向的内存区,和REPMOVSB功能相同。

  • 第17题:

    有下列程序段AGAIN:MOVES:[DI],ALINC.DILOOPAGAIN下列指令中()。可完成与上述程序段相同的功能。

    A.REPMOVSB
    B.REPLODSB
    C.REPSTOSB
    D.REPESCASB

    答案:C
    解析:

  • 第18题:

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

  • 第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 取消数据段的BCD存储区,将处理后的数据放回原处,应如何修改程序?


    正确答案: 取消数据段的BCD存储区,将经处理后的数据放回原处,修改程序如下:
    DATA SEGMENT
    BUF DB '1234'
    N=$-BUF
    DATA ENDS
    CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
    START:MOV AX,DATA
    MOV DS,AX
    LEA SI,BUF
    MOV CX,N
    LOOP1:MOV AL,[SI]
    SUB AL,30H
    MOV [SI],AL
    INC SI
    DEC CX
    JNE LOOP1
    MOV AH,4CH
    INT 21H
    CODE ENDS
    END START

  • 第20题:

    阅读下面的程序,回答问题 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 说明程序功能,程序执行后,从BCD开始的N个字节单元中的内容是什么?


    正确答案:程序功能是将从BUF开始的连续4个字符’1234’转变为4个对应的数值,按逆序存放到以变量BCD为首地址的存储单元中。程序执行后,从BCD开始的N个字节单元中的内容是4321。

  • 第21题:

    阅读下列程序,说明本程序功能并写出运行结果。 MOV AL,00H;设置计数初值 AGAIN:OUT 80H,AL;输出到端口 CALL DELAY;调用延时子程序 INC AL;计数值递增 JMP AGAIN;返回,再次输出 DELAY:MOV CX,10;设置延时时间常数 DEALY1:LOOP DELAY1;循环,实现延时 RET;延时子程序返回


    正确答案: 本程序功能:在相应输出端口输出一个数据序列,00H递增至FFH,返回00H再次递增至FFH循环。若输出至DAC,则可输出一个锯齿波信号。

  • 第22题:

    下列程序: NEXT:MOV ES:[DI],AL INC DI LOOP NEXT 可用指令()来完成该功能。

    • A、REP LODSB
    • B、REP STOSB
    • C、REPE SCASB
    • D、REP MOVSB

    正确答案:B

  • 第23题:

    源程序如下: MOV AX,SEG TABLE;TABLE为表头 MOV ES,AX MOV DI,OFFSET TABLE MOV AL,"0" MOV CX,100 CLD REPNE SCASB 该段程序完成什么功能?


    正确答案: 从目的串中查找是否包含字符"0",若找到则停止,否则继续重复搜索。