更多“比较MOV  AX, [SI] 与LEA  AX, [SI]两条指令在功能上是否相同?为什么?”相关问题
  • 第1题:

    下列指令中,源操作数的寻址方式为相对基址变址寻址方式的指令是( )。

    A.MOV AX,COUNT[SI]

    B.MOV AX, [BX][DI]

    C.MVO AX,COUNT[BP][SI]

    D.MOV AX,[BX+DI]


    正确答案:C

  • 第2题:

    用一条指令实现将寄存器BX和SI中的内容相加,结果送入AX中,这条指令是()。

    • A、ADD AX,[SI][BX]
    • B、MOV AX,[BX+SI]
    • C、AND AX,[BX+SI]
    • D、LEA AX,[BX][SI]

    正确答案:D

  • 第3题:

    用一条指令仅实现将AX←BX+SI的方法是()。

    • A、XCHG AX,[BX][SI]
    • B、MOV AX,[BX+SI]
    • C、LEA AX,BX[SI]
    • D、LEA AX,[BX][SI]

    正确答案:D

  • 第4题:

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

  • 第5题:

    下列指令中,源操作数的寻址方式中,()属于直接寻址。

    • A、MOV AX,[4000H]
    • B、MOV [BX],AX
    • C、SUB AX,2000H
    • D、MOV AX,[SI+12H]
    • E、MOV CX,[BX]
    • F、MOV AX,[SI+BX+10H]

    正确答案:A

  • 第6题:

    判断指令是否正确:MOV AX,[SI+DI]


    正确答案:错误

  • 第7题:

    设(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少? (1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H] (4) MOV AX,VAL (5) MOV AX,[BX] (6) MOV AX,ES:[BX] (7) MOV AX,[BP] (8) MOV AX,[SI] (9) MOV AX,[BX+10] (10) MOV AX,VAL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,VAL[BX][SI]


    正确答案: (1)MOVAX,21H
    立即寻址,源操作数直接放在指令中
    (2)MOVAX,BX
    寄存器寻址,源操作数放在寄存器BX中
    (3)MOVAX,[1000H]
    直接寻址,EA=1000H,PA=(DS)×10H+EA=2000H×10H+1000H=21000H
    (4)MOVAX,VAL
    直接寻址,EA=[VAL]=0050H,PA=(DS)×10H+EA=2000H×10H+0050H=20050H
    (5)MOVAX,[BX]
    寄存器间接寻址,EA=(BX)=0100H,PA=(DS)×10H+EA=2000H×10H+0100H=20100H
    (6)MOVAX,ES:[BX]
    寄存器间接寻址,EA=(BX)=0100H,PA=(ES)×10H+EA=2100H×10H+0100H=21100H
    (7)MOVAX,[BP]
    寄存器间接寻址,EA=(BP)=0010H,PA=(SS)×10H+EA=1500H×10H+0010H=15010H
    (8)MOVAX,[SI]
    寄存器间接寻址,EA=(SI)=00A0H,PA=(DS)×10H+EA=2000H×10H+00A0H=200A0H
    (9)MOVAX,[BX+10]
    相对寄存器寻址,EA=(BX)+10D=0100H+000AH=010AH,PA=(DS)×10H+EA=2000H×10H+010AH=2010AH
    (10)MOVAX,VAL[BX]
    相对寄存器寻址,EA=(BX)+[VAL]=0100H+0050H=0150H,PA=(DS)×10H+EA=2000H×10H+0150H=20150H
    (11)MOVAX,[BX][SI]
    基址变址寻址,EA=(BX)+(SI)=0100H+00A0H=01A0H,PA=(DS)×10H+EA=2000H×10H+01A0H=201A0H
    (12)MOVAX,VAL[BX][SI]
    相对基址变址寻址,EA=(BX)+(SI)+[VAL]=0100H+00A0H+0050H=01F0H,PA=(DS)×10H+EA=2000H×10H+01F0H=201F0H

  • 第8题:

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

  • 第9题:

    下列指令中,源操作数的寻址方式中,()属于寄存器寻址。

    • A、MOV AX,[4000H]
    • B、MOV [BX],AX
    • C、SUB AX,2000H
    • D、MOV AX,[SI+12H]
    • E、MOV CX,[BX]
    • F、MOV AX,[SI+BX+10H]

    正确答案:B

  • 第10题:

    与MOV AX,OFFSET VAR指令完全等效的指令是()。

    • A、MOV AX,VAR
    • B、LDS AX,VAR
    • C、LES AX,VAR
    • D、LEA AX,VAR

    正确答案:D

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

    问答题
    设(DS)=1234H,(SI)=124,(12464H)=30ABH,(12484H)=464H。试写出下列程序段执行后有关寄存器的结果。LEA.SI,[SI]MOV.AX,[SI]MOV.[SI+22H],1200HLDS.SI,[SI+20H]ADD.AX,[SI](DS)=();(SI)=();(AX)=()。

    正确答案: (DS)= 1234H;(SI)= 144H ;(AX)=42ABH 。
    解析: 暂无解析

  • 第13题:

    下面指令正确的是()。

    • A、ADD.  SI,AX     
    • B、ADD  .15H,BX             
    • C、MOV  .CS,AX   
    • D、MOV . AX,[SI][DI]

    正确答案:A

  • 第14题:

    下列语句中有语法错误的语句是()

    • A、MOV AX,[SI][DI]
    • B、ADD AX,[BX]
    • C、CMP[BX],AX
    • D、LEA SI,20H[BX]

    正确答案:A

  • 第15题:

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

    • A、MOV  AX,[SI]
    • B、MOV  AX,[DI]
    • C、MOV  AX,[SI+DI]
    • D、MOV  AX,[SI-10]

    正确答案:C

  • 第16题:

    设(DS)=1234H,(SI)=124,(12464H)=30ABH,(12484H)=464H。试写出下列程序段执行后有关寄存器的结果。LEA.SI,[SI]MOV.AX,[SI]MOV.[SI+22H],1200HLDS.SI,[SI+20H]ADD.AX,[SI](DS)=();(SI)=();(AX)=()。


    正确答案:(DS)= 1234H;(SI)= 144H ;(AX)=42ABH 。

  • 第17题:

    指出MOV [AX],[SI]指令的错误,并加以改正。


    正确答案:不能在存储器单元之间传送数据,改为MOV AX,[SI]

  • 第18题:

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

  • 第19题:

    指出下列指令的错误: 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指令不允许操作数为立即数。

  • 第20题:

    下列指令中,源操作数的寻址方式中,()属于寄存器相对寻址。

    • A、MOV AX,[4000H]
    • B、MOV [BX],AX
    • C、SUB AX,2000H
    • D、MOV AX,[SI+12H]
    • E、MOV CX,[BX]
    • F、MOV AX,[SI+BX+10H]

    正确答案:D

  • 第21题:

    比较MOV AX,[SI]与LEA AX,[SI]两条指令在功能上是否相同?为什么?


    正确答案:两条指令在功能上有本质区别:前一条是传送存储单元[SI]中的内容至AX,而后条指令是传送SI所指的偏移地址至AX。

  • 第22题:

    对于错误指令MOV DX,[AX]进行修改后,仍然包含错误的是()。

    • A、MOV DX,[EAX]
    • B、MOV DX,WORD PTR [AX]
    • C、MOV DX,[SI]
    • D、MOV DX,AX

    正确答案:B

  • 第23题:

    问答题
    比较MOV  AX, [SI] 与LEA  AX, [SI]两条指令在功能上是否相同?为什么?

    正确答案: 两条指令的功能有本质区别,前一条是传送存储单元[SI]的内容至AX,而后一条指令是传送SI所指的偏移地址至AX。
    解析: 暂无解析

  • 第24题:

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