8051单片机教程第九课:数据传递指令

发布者:脑洞飞翔最新更新时间:2021-05-08 来源: eefocus关键字:单片机 手机看文章 扫描二维码
随时随地手机看文章

数据传递类指令


1)以累加器为目的操作数的指令


MOVA,Rn


MOVA,direct


MOVA,@Ri


MOVA,#data


第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。


下面我们通过一些例子加以说明:


MOVA,R1;将工作寄存器R1中的值送入A,R1中的值保持不变。


MOVA,30H;将内存30H单元中的值送入A,30H单元中的值保持不变。


MOVA,@R1;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。如执行命令前R1中的值为20H,则是将20H单元中的值送入A中。


MOVA,#34H;将立即数34H送入A中,执行完本条指令后,A中的值是34H。


2)以寄存器Rn为目的操作的指令


MOVRn,A


MOVRn,direct


MOVRn,#data


这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。


单片机指令(二)


数据传递类指令


(3)以直接地址为目的操作数的指令MOVdirect,A例:MOV20H,AMOVdirect,RnMOV20H,R1


MOVdirect1,direct2MOV20H,30H


MOVdirect,@RiMOV20H,@R1


MOVdirect,#dataMOV20H,#34H


(4)以间接地址为目的操作数的指令MOV@Ri,A例:MOV@R0,AMOV@Ri,directMOV@R1,20H


MOV@Ri,#dataMOV@R0,#34H


(5)十六位数的传递指令MOVDPTR,#data168051是一种8位机,这是唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOVDPTR,#1234H,则执行完了之后DPH中的值为12H,DPL中的值为34H。反之,如果我们分别向DPH,DPL送数,则结果也一样。如有下面两条指令:MOVDPH,#35H,MOVDPL,#12H。则就相当于执行了MOVDPTR,#3512H。综合练习:


给出每条指令执行后的结果


MOV23H,#30HMOV12H,#34H


MOVR0,#23H


MOVR7,#22H


MOVR1,12H


MOVA,@R0


MOV34H,@R1


(23h)=30h


(12h)=34h


(R0)=23H


(R7)=22H


(R1)=12H


(A)=30H


(34H)=34H


MOV45H,34H


MOVDPTR,#6712H


MOV12H,DPH


MOVR0,DPL


MOVA,@R0


(45H)=34H


(DPTR)=6712H


(12H)=67H


(R0)=12H


(A)=67H


说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。


上机练习:


进入DOS状态,进入WAVE所在的目录,例D:WAVE


键入MCS51


按File->Open,出现对话框后,在Name处输入一个文件名(见图2),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个文件


在空白处将上面的程序输入。见图4。用ALT+A汇编通过。用F8即可单步执行,在执行过程中注意观察屏幕左边的工作寄存器及A累加器中的值的变化。


内存中值的变化在此是看不到的,可以用如下方法观察(看图5):将鼠标移到DATA,双击,则光标进入此行,此时可以键盘上的上下光标键上下翻动来观察内存值的变化。本行的最前面DATA后面的数据代表的是“一段”的开始地址,如现在为20H,再看屏幕的最上方,数字从0到F,显示两者相加就等于真正的地址值,如现在图上所示的内存20H、21H、22H、23H中的值分别是FBH、0EH、E8H、30H。


图56、当运行完程序后,即进入它的反汇编区,不是我们想要的东西。为了再从头开始,可以用CTRL+F2功能键复位PC值。注意此时不会看到原来的窗口,为看到原来的窗口,请用ALT+4或ALT+5等来切换。当然以上操作也可以菜单进行。CTRL+F2是程序复位,用RUN菜单。窗口用WINDOWS菜单。


此次大家就用用熟这个软件吧,说实话,我并不很喜欢它,操作起来不方便,但给我的机器只能上这个,没办法,下次再给网友单独介绍一个好一点的吧。


关键字:单片机 引用地址:8051单片机教程第九课:数据传递指令

上一篇:基于FPGA和51单片机的信号发生器设计
下一篇:8051单片机教程第十一课:算术运算类指令

推荐阅读最新更新时间:2024-11-19 15:22

C8051F130的远程在线升级程序设计
   1. 引言   目前,采用FLASH 存储介质来作为程序存储器的单片机种类越来越多。和其他类型如OTP、EPROM 型单片机比较起来,FLASH 具有可擦写方便,次数多,编程无需外加高电压等特点。绝大多数FLASH 型单片机都可在运行时通过指令来直接擦写内部FLASH,提供了IAP、ISP 功能,借助这个功能,就可以实现系统底层固件的在线升级功能。   C8051F130 单片机是SILICON LABS推出的完全集成的混合信号片上系统型MCU 芯片,功能十分强大。其采用高速、流水线结构的8051 兼容的CIP-51 内核,内部PLL可倍频至100MIPS,具有2个串口,128KB 可在系统编程的FLASH 存储器,84
[单片机]
PIC单片机之关于超大数组问题
关于超大数组问题: 本实验用的编译器是xc16-gcc.exe,集成开发环境是MPLAB IDE v8.92,当前的编译器配置如下: -g -Wall -mlarge-code -mlarge-data -Os -fno-ivopts 如下图: 其中这里有一个超大的数组: 这时候编译会有这样的一个错误: 从提示可以知道,这是一个数据超出的错误,但是这里是超出了数据段,而不是说超出了芯片的flash,我们可以这样查看是否超过了flash,去掉这个数组编译看看占用了多少flash,如下: 也就是说占用的flash空间是:81459+7674=89133,但是单片机的flash却是这样的: 所以即是加上
[单片机]
PIC<font color='red'>单片机</font>之关于超大数组问题
长虹自主研发智能控制MCU芯片 首批成功装机下线
12月28日,长虹宣布,搭载其自主研发智能控制MCU芯片的首批冰箱整机在中国(绵阳)科技城成功下线。该MCU芯片基于RISC-V内核,在行业内首次采用40nm ULP超低功耗工艺设计,实现软硬件安全设计、算法硬件化等关键技术研究与突破。      “首批装机应用长虹智能控制MCU芯片的长虹美菱冰箱,属于中端产品,已经计划了50万套的装机量。”长虹相关负责人介绍。据悉,长虹华意是全球最大的冰箱压缩机供应商,压缩机是冰箱的“心脏”,如今,长虹成功研发智能控制MCU芯片,并装机应用,再次为冰箱置入“大脑”。随着MCU芯片的装机应用,智能控制系统集成化解决方案将让冰箱控制计算能力提升2至3倍。长虹方面透露,未来一年,该智控芯片计划在冰箱、
[嵌入式]
51单片机教程:单片机延时程序分析
上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。 〈单片机延时程序〉 MOV:这是一条指令,意思是传递数据。说到传递,我们都很清楚,传东西要从一本人的手上传到另一本人的手上,也就是说要有一个接受者,一个传递者和一样东西。从指令MOV R7,#250中来分析,R7是一个接受者,250是被传递的数,传递者在这条指令中被省略了(注意:并不是每一条传递指令都会省的,事实上大部份数据传递指令都会有传递者)。它的意义也很明显:将数据250送到R7中去,因此执行完这条指令后,R7单元中的值就应当是250。在250前面有个#号,这又是什么意思呢?这个#就是用
[单片机]
51<font color='red'>单片机</font>教程:<font color='red'>单片机</font>延时程序分析
HOLTEK新推出HT45FH3T Tinypower™ 3D眼镜MCU
HOLTEK 继已推出的 HT45F3T 3D 眼镜 MCU 后,再度推出整合 3D 眼镜所需的高压电路的 MCU HT45FH3T。除了原有 HT45F3T 的功能外,整合了1个 3V LDO 输出及4个 Level Shift 功能,除了可节省外部的零件外,更进一步缩减 PCB 面积。 HT45FH3T 具备 2K x 16 Flash Program ROM、128 Byte Data RAM、工作电压来自 LDO 输出3.0V、LDO 输入电压来自于锂电池、系统频率 4MHz,内建精准 RC Oscillator (HIRC 4MHz),内建4个通道 12-bit ADC、1个 10-bit PTM 用
[单片机]
HOLTEK新推出HT45FH3T Tinypower™ 3D眼镜<font color='red'>MCU</font>
C8051F040在基于CAN总线的分布式测控系统中的应用
摘要:CYGNAL生产的单片机C8051F040是代表8位单片机发展方向的高速(25M)混合信号系统级芯片(SOC)它不仅集成了一般测控系统需要的外设,而且集成了很有发展前景的现场总线—CAN总线控制器,文中对该芯片中的CAN控制器结构作了分析,并给出了在分布式测控系统中使用该芯片的智能节点的硬件、软件设计方案。 关键词:C8051F040;CAN总线;分布式;测控节点 1 概述 分布式在线测控系统是由多个面向设备的、以MCU为核心的智能处理单元和多个并行运行且具有不同监测和故障诊断功能的微机构成的。该系统采取“分治”的设计思想它将数据采集以及部分数据处理任务交给设备层的智能处理单元去完成而监测诊断层主要负责监视和故障
[单片机]
pic单片机驱动CAN接口收发数据C语言程序,11位标准标识符
/********************************************* ** 功能描述: CAN口测试,11位标准标识符** *********************************************/ #include p30f6014.h int failmemory ; _FWDT(WDT_OFF); //_FOSC(CSW_FSCM_OFF & XT); _FOSC(CSW_FSCM_OFF & XT_PLL4); unsigned int buffer1; unsigned int buffer2; unsigned int buffer3; unsigned int buffe
[单片机]
ARM发布 Keil 微控制器样机系统
ARM公司(伦敦证交所:ARM;纳斯达克:ARMH)近日在于美国加州圣何塞举行的嵌入式系统大会(ESC)上发布了Keil™ 微控制器样机系统(MPS: Microcontroller Prototyping System),能够对单一产品中的ARM® Cortex™-M系列处理器以及用户定义的外设进行评估和样机建立。Keil MPS是首个包含了全速的、FPGA形式的Cortex-M0或Cortex-M3处理器的样机系统,能够同第三方外设IP集成,为硬件和软件应用开发提供一个原型建立样机。 MPS使得ARM合作伙伴能够在无需获得处理器RTL的情况下就能够实施Cortex-M系列系统,这意味着不同的处理器能够被进行评估,从而选出最适
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved