计算机三级

有下列指令: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX HLT 执行这些指令后,寄存器AL的值是( )A.60HB.00HC.04HD.AOH

题目

有下列指令: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX HLT 执行这些指令后,寄存器AL的值是( )

A.60H

B.00H

C.04H

D.AOH

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列指令正确的是:

A.MOV 35, AH

B.MOV [AX], [1111H]

C.MOV DS, ES

D.MOV AX, [1000H]


(1)指令错。两操作数字长不相等 (2)指令错。MOV指令不允许目标操作数为立即数. (3)指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。 (4)指令错。MUV指令不允许两个操作数同时为存储器操作数。 (5)指令错。ADD指令要求两操作数等字长。 (6)指令错。源操作数形式错,寄存器操作数不加段重设符。 (7)指令错。转移地址的字长至少应是16位的。 (8)指令错。对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址。 (9)指令正确。 (10)指令错。MUL指令不允许操作数为立即数。

第2题:

指令MOV [SI][DI],AX是否正确。


错误

第3题:

汇编源程序出现语法错误的指令有()。

A、MOV[BX+SI],AL

B、MOVAX,[BP+DI]

C、MOVDS,AX

D、MOVCS,AX


参考答案:D

第4题:

下列指令正确的是()。

A.MOV AX, [1000H]

B.MOV 35,AH

C.MOV [AX],[1111H]

D.MOV DS, ES


ABC

第5题:

分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。 源操作数 目的操作数 (1)MOV AX, 2048H (2) MOV CL, 0FFH (3) MOV BX, [SI] (4) MOV 5[BX], BL (5) MOV [BP+100H], AX (6) MOV [BX+DI], ‘$’ (7) MOV DX, ES:[BX+SI] (8) MOV VAL[BP+DI], DX (9) IN AL, 05H (10) MOV DS, AX


(1)MOV DI,69 ;;源操作数立即寻址,目的操作数寄存器寻址 (2)MOV CX,1000H[SI] ;; 源操作数相对变址寻址,目的操作数寄存器寻址 (3)SUB AX,[BX][SI] ;; 源操作数基址变址寻址,目的操作数寄存器寻址 (4)AND AX,CX ;; 源操作数与目的操作数都是寄存器寻址 (5)MOV [BP],AX ;; 源操作数寄存器寻址,目的操作数基址寻址

第6题:

试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。 ①、MOV [BX][BP], AX ②、TEST [BP], BL ③、ADD [SI], DA_BYTE ④、AND DH, DL ⑤、CMP CL, 1234H ⑥、SHR [BX][DI], 3


LEA AL,1000H

第7题:

下列指令正确的是:

A.MOV 35, AH

B.MOV [AX], [1111H]

C.MOV DS, ES

D.MOV EAX, [1000H]


(1)指令错。两操作数字长不相等 (2)指令错。MOV指令不允许目标操作数为立即数. (3)指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。 (4)指令错。MUV指令不允许两个操作数同时为存储器操作数。 (5)指令错。ADD指令要求两操作数等字长。 (6)指令错。源操作数形式错,寄存器操作数不加段重设符。 (7)指令错。转移地址的字长至少应是16位的。 (8)指令错。对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址。 (9)指令正确。 (10)指令错。MUL指令不允许操作数为立即数。

第8题:

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

第9题:

下列4条指令中,格式非法的指令条数为 ()。 ①MOV [SI],[DI] ②PUSH AL ③MOV CS,AX ④MOV BX,1000H

A.1

B.2

C.3

D.4


LEA AX , 50H[BX][BP]

第10题:

指出下列指令中操作数的寻址方式 (1) MOV BX, 20H (2) MOV AX, [1245H] (3) MOV DX, [SI] (4) MOV 100[BX], AL (5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX (7) MOV [1800H], AL (8) MOV [SI], AX


ADD AX,[BX][DI]