下列指令执行时出错的是()A、ADD BUF1,BUF2B、JMP DWORD PTR DAT [BX]C、MOV AX,[BX+DI] NUMD、TEST AL,08H

题目

下列指令执行时出错的是()

  • A、ADD BUF1,BUF2
  • B、JMP DWORD PTR DAT [BX]
  • C、MOV AX,[BX+DI] NUM
  • D、TEST AL,08H
参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.PUSH AH

B.REP MOV SW

C.CMP AX,[CX][SI]

D.JMP DWORD PTR[AX]


正确答案:A

第2题:

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

第3题:

下面的汇编语言源程序经汇编后,发现TEST [BX], 01H指令有语法错误,试问该指令的正确形式应该是 。 DSEG SEGMENT DAT DB 5,13,4,-2,6,23,44,-1,29,-3 CNT DW $-DAT DSEG ENDS SSEG SEGMENT STACK DB 256 DUP(0) SSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,SS:SSEG,CS:CSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX XOR AX,AX MOV BX,OFFSET DAT MOV CX,CNT LP: TEST [BX],01H JZ NEXT INC AH ADD AL,[BX] NEXT: INC BX LOOP LP SET START ENDP CSEG ENDS END START


正确答案:

 TEST BYTE PTR [BX],01H 或 TEST DAT[BX],01H 

第4题:

下列8086/8088指令中,执行速度最快的是( )。

A.MOV AX,BX

B.MOV AX, 1516H.

C.MOV BYTE PTR [BX],26H

D.MOV [2000H],AL


正确答案:A
解析:通用数据传送。注意,①两个段寄存器之间不能直接传送数据;②两个储存单元之间不能直接传送数据(可以用MOVS):两个操作数中必须有一个是寄存器或立即数:③立即数和段寄存器CS不能作为目的操作数。

第5题:

下面指令中,源操作数的寻址方式为直接寻址的指令是( )。

A.ADD AX,WORD PTR [BX+SI]

B.ADD AX,B

C.INC CX

D.MOV BX,7FFFH


正确答案:B

第6题:

下列指令中有( )条指令不合法。

①MOV[SI],[DI]

②ADD AX,5

③IN AL,DX

④PUSH WORD PTR 10[BX+2]

A.1条

B.2条

C.3条

D.4条


正确答案:A

第7题:

下列指令中有几条指令是不合法的?(12)。

①MOV[SI),[DI]

②IN AL,DX

③JMP WORD PTR[BX]

④PUSH WORD PTR 10[BX+2]

A.1条

B.2条

C.3条

D.4条


正确答案:C
解析:第二条指令是正确的,其他错误,故选C。

第8题:

下列转移指令中,转移地址采用段间直接寻址的是( )。

A. JMP DISP1

B. JMP FAR PTR ADD1

C. JMP CX

D. JMP DWORD PTR [BP][DI]


参考答案:B

第9题:

下列指令中,有语法错误的是( )。

A.MOV[SI],[DI]

B.IN AL,DX

C.JMP WORD PTR[BX+8]

D.FUSH WORD PTR20[BX+SI-2]


正确答案:A

第10题:

下列指令中,有语法错误的是( )。

A.MOV [SI],[DI]

B.IN AL,DX

C.JMP WORD PTR [BX+8]

D.PUSH WORD PTR 20 [BX+SI-2]


正确答案:A

更多相关问题