打印

KEIL 编译器 制定寄存器组

[复制链接]
2243|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dudongdao|  楼主 | 2010-12-30 13:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问大家用KEIL C51的时候有关心过寄存器组吗,我看好像KEIL都只用一组,就是第0组,中断也是,我在中断后加 USING 1之后编译出来中断时用第一组,可是执行出问题~   
    大家有什么好的方法操作四个寄存器组吗~ 比如中断和应用程序 用不同的组~

相关帖子

沙发
ayb_ice| | 2010-12-30 13:22 | 只看该作者
使用USING是有限制的,
首先不同的优先级不能指定同一组
必须确保中断使用的函数和中断同一组,或不使用绝对寄存器访问
...

使用特权

评论回复
板凳
dudongdao|  楼主 | 2010-12-30 21:47 | 只看该作者
我看KEIL的中断和中断外都用的是同一组,中断的时候切换了寄存器组,还是第0组,然后还要压栈~~  
很费时间~~

可以指定应用程序用哪些,中断用哪些吗?  不用把所有的应用程序都加上USING吧

使用特权

评论回复
地板
xlsbz| | 2010-12-30 22:44 | 只看该作者
2708c3a0-ef52-472c-a19e-f5d574a880a6.pdf (138.59 KB)

使用特权

评论回复
5
dudongdao|  楼主 | 2010-12-31 21:28 | 只看该作者
十分感谢 XLSBZ的资料,讲的很好~~~   
还想请教一个问题“如何让编译器不用0--32”这段内存呢,我想做寄存器切换,编译器默认不做切换,中断
只是压栈~    压了好多~~~
请大侠指点~

使用特权

评论回复
6
dudongdao|  楼主 | 2011-1-4 16:50 | 只看该作者

使用特权

评论回复
7
ayb_ice| | 2011-1-4 19:05 | 只看该作者
5L
DATA:0~31是51的寄存器区,不让编译器使用是这可能的,最少会使用其中一组
编译器切换肯定比自己去切换要好些,程序员通过using关键字去控制编译器切换寄存器组

使用特权

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

本版积分规则

90

主题

413

帖子

1

粉丝