频道栏目
读书频道 > 系统 > 其他综合 > 深入理解8051单片机系统
2.1.2 MOV指令
2015-12-02 16:47:40     我来说两句
收藏   我要投稿

本文所属图书 > 深入理解8051单片机系统

本书详细介绍了8051单片机的各种功能。主要内容包括8051微控制器、8051汇编语言编程、跳转指令、循环指令、调用指令、I O端口编程、8051寻址方式、算术逻辑指令与程序、8051 C语音编程、8051硬件接线、8051定时  立即去当当网订购

简言之,MOV指令将数据从一个位置复制到另外一个位置。格式如下:

MOV 目的操作数,源操作数;复制源操作数到目的操作数中

这条指令告诉CPU将源操作数移动(实际上是复制)到目的操作数。例如,指令“MOV A,R0”将寄存器R0中的内容复制到寄存器A中。该指令执行之后,寄存器A中就包含与寄存器R0中相同的值。MOV指令不改变源操作数。如下程序先将55H装载到寄存器A中(55H是十六进制数),然后再将该值装载到不同的CPU寄存器中。注意,指令中的“#”号表示装载的是数值,稍后讨论此点的重要性。


 


当对8051微控制器编程时,须注意以下几点。

1.可直接将数值装载到A、B或R0~R7的任意一个寄存器当中。然而,为表示装载的是立即数,必须在数值前加上符号(#),如下:MOV A,#23H;将23H装载到A中(A=23H)

MOV R0,#12H;将12H装载到R0中(R0=12H)

MOV R1,#1FH;将1FH装载到R1中(R1=1FH)

MOV R2,#2BH;将2BH装载到R2中(R2=2BH)

MOV B,#3CH;将3CH装载到B中(B=3CH)

MOV R7,#9DH;将9DH装载到R7中(R7=9DH)

MOV R5,#0F9H;将F9H装载到R5中(R5=F9H)

MOV R6,#12;将十进制数12(0CH)装载到R6(R6=12)中

注意,指令“MOV R5,#0F9H”中的#和F之间的0是用于指出F是十六进制数而不是字母。换言之,如果将该指令写成“MOV R5,#F9H”时会出错。

2.如果将0~F的值装载到8位寄存器中,则其余的位就默认为0。例如,对于指令“MOV A,#5”而言,结果是A=05,用二进制表示就是A=00000101。

3.装载太大的值到寄存器中时会出错。

MOV A,#7F2H;非法:7F2H>8位(FFH)

MOV R2,#456;非法:456>255(十进制)(FFH)

4.将数值装载到寄存器中时,必须在数值前加上符号(#),否则就表示装载的是存储器中的数。例如,“MOV A,17H”指令代表的就是将存储单元17H中的数装载到A中,结果就是任意值。为了将17H加载到累加器中,指令就必须写成“MOV A,#17H”,即在数值前带上#号。注意,数值前不带符号时编译器并不会产生错误,因为指令本身有效,但结果会不正确。这是初学8051的程序员常会犯的一个错误。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.1.1 寄存器
下一篇:2.1.3 ADD指令
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站