首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >51单片机指令系统.2

51单片机指令系统.2

作者头像
云深无际
发布2022-07-13 17:07:10
发布2022-07-13 17:07:10
3990
举报
文章被收录于专栏:云深之无迹云深之无迹

哒哒哒,上篇文章有点长,我们把它分开写

这个东西就是写程序的时候,你要把东西放在哪里

这里点破一个事情,就是我们其实都是对地址的读写,对于上层来说,就是这样。

储存模式

这个总结的就很好了,推荐记住。静态语言,给你更多的自由度。

一般我们都说HAX文件,这个文件详细的样子是什么样?

这些是字节寄存器,地址是半个字节的。

位寄存器是字节寄存器里面的一位。

写法

KELI内部的设置

优化的级别

启动文件处理过后的RAM区域

详细的就不写了,写数据结构的时候我再写。

启动文件一开始对存储器的地址进行设置

同理

剩下的启动文件,再写完汇编再来看。

这个的设计是扩大了RAM的空间,而且也不影响别的引脚的状态了。注意的是寻址的写法,使用DPTR+@访问。

至于这个功能能不能用,还受AUXR这个寄存器的控制,一位写0就可以读取

0是内部的访问

这里也需要打上对勾

先指定一个地址,接着就是把地址初始化,读取的时候使用DPTR+@读取。

读内部的代码

C语言一下就看懂了,sfr指定寄存器的位置,接着就是初始化位置,搞一些变量存到内置扩展的RAM空间。

写和读没有什么区别

AUXR是只写的寄存器,这里需要注意

假如真的很糟糕,需要外置的数据存储器,那么需要这样的来使用。

这些地址都要直接寻址来操作

就是这样的功能区

B寄存器再不做乘除的时候,随便使用

经常看见DPTR,它是什么?上面数据手册有错字

很简单,就是一个取内容的命令,不过是从外RAM里面搬内容到内RAM

传统的51就一个DPTR吧?STC的片子有两个这样的DPTR,控制DPS位。可以实现快速的切换。

记得使用INC快速的切换这两个数据指针

我写完这个就不写了

其实汇编语言最多的事情就是搬东西,把哪里的数据使用什么样的做法搬走、

这个简单吧,就是直接对数字操作了,直接送入A,其实就是ACC

这里是是直接寻址,这里设计为专门的为SFR设计的方式

一说间接寻址其实就是没有直接拿到我们要的结果,而是要间接的通过地址来取数,@就是和地址相关的东西。

寄存器寻址,我没有很理解

这个是我最喜欢的PC+偏移地址,想去哪里就去哪里

还有几个我还没有参悟,下次写。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档