时间:2021-05-19
在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的)。
32位指令集
1、一般传送指令
MOV指令:
格式:
MOV目的-->除CS、IP以外的寄存器或存储器
源-->寄存器、存储器、立即数
ex :
MOV ECX ,EDX ; EDX->ECX
ECX =00000034H
EDX =00000052H
指令执行结果: ECX = 00000052H, EDX不变,标志寄存器也不变。
MOVSX、MOVZX指令:
格式:
MOV目的-->寄存器或存储器
源-->寄存器、存储器
MOVSX:按符号扩展传送数据指令,将源操作数的内容---传送-->目标操作数。目的操作数左边空缺的为用源操作数的符号进行填充。可对有符号的数进行扩展,以便运算。
MOVZX:按零扩展传送数据指令,将源操作数的内容---传送-->目标操作数。目的操作数左边空缺用0填充。可对无符号的数进行扩展,以便运算。
ex:
MOV BL, 80H; 80H->BL
MOVSX AX, BL ; 80H用符号扩展为FF0H->AX
MOVZX AX, BL ; 80H用零扩展为0080H->AX
标志寄存器状态不变。
XCHG指令 :
格式:
XCHG目的、源-->两个操作数,其中一个操作数可为通用寄存器,另一个操作数可为通用寄存器或存储器,两个操作数的长度必须一致。
ex:
XCHGBH,BL;BH和BL进行字节交换
XCHGSI, DI;SI和DI进行字节交换
XCHGEBX,ECX;EBX和ECX进行双字节交换
XCHGAL,MEM_BYTE ;寄存器和内存进行字节交换
XCHGMEM_WORD, AX ;寄存器和内存进行字节交换
XCHGESI,MEM_DWORD ;寄存器和内存进行双字节交换
标志寄存器状态不变。
下面看下小编遇到的问题:汇编语言MOV指令
MOV AX,BX
MOV AH,BX
MOV DX,AL
第二句都错误,,那么第三句呢(8位数据放到16位REG里),,
若正确,放高8位还是低8位呢??? 高8位都补0???
解决:
在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的)。其特点是不破坏源地址单元的内容。
例如:
1、MOVAX,2000H;将16位数据2000H传送到AX寄存器。
2、MOVAL,20H;将8位数据20H传送到AL寄存器。
3、MOVAX,BX;将BX寄存器的16位数据传送到AX寄存器。
4、MOVAL,[2000H];将2000H单元的内容传送到AL寄存器。
扩展资料:
汇编语言特点:
1、机器相关性
这是一种面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。因为是机器指令的符号化表示,故不同的机器就有不同的汇编语言。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
2、高速度和高效率
汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等,且占用内存少,执行速度快,是高效的程序设计语言。
总结
以上所述是小编给大家介绍的汇编语言MOV指令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
汇编语言是一种工具程序设计语言,用于将汇编语言源程序转换为机器语言。 在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbo
CPU的工作原理是: 1、取指令:CPU的控制器从内存读取一条指令并放入指令寄存器。指令的格式一般是:操作码就是汇编语言里的mov,add,jmp等符号码;操
汇编语言是独立于机器的程序设计语言。汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言。 在汇编语言中,用助记符代替机器指令的操作码,
汇编语言和机器语言一样,属于低级语言。它是用便于记忆的助记符表示的机器指令,二者是一一对应的关系。 汇编语言(assemblylanguage)是一种用于电子
汇编语言是一种用于电子计算机、微处理器、微控制器或其它可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令