当前位置:编程学习 > 汇编语言 >>

汇编语言MOV指令

MOV AX,BX MOV AH,BX MOV DX,AL 第二句都错误,,那么第三句呢(8位数据放到16位REG里),, 若正确,放高8位还是低8位呢??? 高8位都补0???
答案:我感觉你有误区。。计算机必须保证操作运算的对象数据类型是一样的才可以进行正常的操作。。除非有特殊的规定,八位的跟 八位的运算,十六位的跟十六位的运算。。。本身第二句就是错了,第三句也没 有理由是完全正确的你说呢?
其他:成年人和未成年人混居却不顾及未成年人的感受去做成年人的事是不行的。。。。。。 第三条是合法指令!!!!
MOV指令有以下几条具体规定,其中有些规定对其它指令也同样有效。
 1)、两个操作数的数据类型要相同,要同为8位、16位或32位;如:MOV  BL, AX等是不正确的; 
2)、两个操作数不能同时为段寄存器,如:MOV  ES, DS等; 
3)、代码段寄存器CS不能为目的操作数,但可作为源操作数,如:指令MOV  CS, AX等不正确,但指令MOV  AX, CS等是正确的;
4)、立即数不能直接传给段寄存器,如:MOV  DS, 100H等; 
5)、立即数不能作为目的操作数,如:MOV  100H, AX等; 
6)、指令指针IP,不能作为MOV指令的操作数; 
7)、两个操作数不能同时为存储单元,如:MOV  VARA, VARB等,其中VARA和VARB是同数据类型的内存变量。 
对于规定2、4和7,我们可以用通用寄存器作为中转来达到最终目的。 地方 

上一个:汇编语言中ADC怎么调用? 我要用汇编运行12345+67890=80235全部显示出来,但是不成功,不知道错哪了。
下一个:c语言具有汇编语言的接口,,这是什么意思

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,