下列程序: NEXT:MOV ES:[DI],AL INC D

题目

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

  • A、REP LODSB
  • B、REP STOSB
  • C、REPE SCASB
  • D、REP MOVSB
参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序段的作用是将STR1的后【 】个数据传送到STR2中。

STR1 DB 300 DUP(?)

STR2 DB 100 DUP(?)

MOV CX,100

MOV BX,200

MOV SL,0

MOV DI,0

NEXT:MOV AL,STRl1[BX][SI]

MOV STR2[DI],AL

INC SI

INC DI

LOOP NEXT


正确答案:100
100

第2题:

下列程序段,可用指令______完成相同的功能。

AGAIN: MOV ES: [DI],AL

INC DI

LOOP AGAIN


正确答案:REP STOSB
REP STOSB 解析:REP指令助记符——重复前缀。它可以使串操作指令反复执行(CX不等于0就执行),每执行一次,CX的内容减1。STOSB指令助记符——字节保存(往字节串中存数)。把AL寄存器的内容保存在由DI指定的附加段的存储单元中,并根据DF的值修改DI中的地址。即DF=0时,地址加1;DF=1时,地址减1。该指令带重复前缀可将一片连续的存储字节置相同的值。

第3题:

以下程序段的作用是将STR1的后______个数据传送到STR2中。

STRl DB 300 DUP(?)

STR2 DB 100 DUP(?)

MOV CX,100

MOV BX,200

MOV SL,0

MOV DI,0

NEXT: MOV AL,STRl[BX][SI]

MOV STR2[DI],AL

INC SI

INC DI

LOOP NEXT


正确答案:100
100

第4题:

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

第5题:

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

A.REP MVOSB

B.REP LODSB

C.REP STOSB

D.REPE SCASB


正确答案:C

第6题:

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

A.REPMVOSB

B.REPLODSB

C.REPSTOSB

D.REPESCASB


正确答案:C

第7题:

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

第8题:

有下列程序段 AGAIN: MOV ES:[DI],AL INC DI LOOP AGAIN 下列指令中( )可完成与上述程序段相同的功能。

A.REP MOVSB

B.PEP LODSB

C.REP STOSB

D.REPE SCASB


正确答案:C

第9题:

完成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

第10题:

为了使下面的程序段能用来把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

更多相关问题