下列MOV指令都是错误的,请指出错误原因。 (1)MOVES,1234H (2)MOVAL,300 (3)MOV[SP],AX (4)MOVAX,B
下列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)立即数不能作为目标操作数。 解析:本问题主要考查汇编语言的基础知识。在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”的错误在于立即数不能作为目标操作数。
写出算式,分布计算能让人看明白关于百分数小军的爸爸打算把10000元钱存入银行,存期三年.已知一年 数学 2020-05-13 …
1.牧场有一片青草地,每天青草都生长得一样快.这片青草可供10头牛吃20天,或供15头牛吃10天. 数学 2020-05-21 …
高中解析几何一道已知双曲线:x^2-y^2/4=1,过点P(1,1)作直线l,使l与C有且只有一个 数学 2020-06-05 …
小麦高产,不抗病(AAbb)与低产,抗病(aaBB)的小麦杂交育种成高产,抗病(AABB)的需要多 语文 2020-06-10 …
已知点A(-2,n)在抛物线y=x2+bx+c上.(1)若b=1,c=3,求n的值;(2)若此抛物 数学 2020-07-21 …
(1).4乘以四分之一=10乘以0.1改写成比例是().(2).m乘以二分之三=n乘以.2.4m: 其他 2020-08-02 …
数学问题(1).4乘以四分之一=10乘以0.1改写成比例是().(2).m乘以二分之三=n乘以.2 其他 2020-08-02 …
白球红球概率题口袋里有6个球4白2红问有放回的取球三次每次取1个求前两次是红球最后一次是白球的概率答 数学 2020-11-04 …
神机妙算中:对定额子目进行了换算以后,为什么含量的颜色还是黄色,怎么才能出现红色,按哪个键?另外想请 其他 2020-11-23 …
市场应用算术题~去年,一百货商场在12月的销售额是全年月均销售额的4倍,问12月的销售额占全年销售额 数学 2021-02-19 …