打印

单片机通用寄存器的疑惑

[复制链接]
2088|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
magic_yuan|  楼主 | 2012-12-24 12:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  各位老师,
    近来在看arm-cortex-m3,里面提到通用寄存器R0~R14,描叙不是很详细,想想应该和51的通用寄存器功能差不多,于是去查51的资料。51对通用寄存器这么描叙:有R0~R7八组寄存器,通过对PSW的设置选择任意一组使用,其余三组被屏蔽。优点为:避免进栈保护,减少堆栈深度,节省入栈指令和事件,不用的工作寄存器可以作为片内RAM访问。
    疑惑:访问寄存器为“直接”访问,如果不用寄存器,而使用内存,则为间接访问?需要进行压栈?51中对内存RAM,貌似可以直接寻址的。
              平时都是写C的,对这些操作不大明白。C中会自动分配通用寄存器,以便达到最快速度?
              十分感谢!

相关帖子

沙发
ayb_ice| | 2012-12-24 13:29 | 只看该作者
直接用寄存器应该寄存器寻址,不是直接寻址,ARM没有51的直接寻址

使用特权

评论回复
板凳
uet_cache| | 2012-12-24 15:03 | 只看该作者
用CORTEX-M3还用汇编写吗?直接编译器处理就行。无论哪种寻址方式,速度应该差不多吧。

使用特权

评论回复
地板
airwill| | 2012-12-24 19:37 | 只看该作者
CORTEX-M3 内核和 C 很友好, C 生产的代码效率也很高.

使用特权

评论回复
5
emailli| | 2012-12-24 20:28 | 只看该作者
用汇编搞搞就明白了

不用汇编,就不用去想了。编译器会帮你弄好

并不是C给你弄好。

使用特权

评论回复
6
magic_yuan|  楼主 | 2012-12-24 22:49 | 只看该作者
多谢楼上各位大侠.
   后续肯定用C写代码,只是看书看到不明白处就来这里请教高人了.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:发到3000帖时,生活大概完成了一种转折。

359

主题

2770

帖子

7

粉丝