打印

关于arm的位操作问题

[复制链接]
2085|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanyongde|  楼主 | 2007-8-14 19:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为arm没有位操作指令,它所有的位操作都是通过对与或操作来实现的,那么会不会发现以下这个问题,比如x1,x2是两个位变量,都定义在一个位段xtype内。在主程序中希望对位变量进行x1付值操作,那么这个一个付值过程是不是应该这样的:“1.将xtype付值给一个寄存器R1。2.对R1进行相应的与或操作。3.将R1再付值给xtype。”那么问题就是,如果在步骤2,3中间如果发生了中断,而且在此中断内也对xtype的其他位如x2进行了位操作,这个时候中断返回时候正好应该执行“3”步骤了(因为在中断之前应该对R1进行了压栈处理了),那么在主程序中执行完“3”步骤后,实际在中断内对xtype变量中的位变量X2进行的操作实际上应该是没起作用啊,虽然这样的事情发生的概率很小,但是为了预防万一,我现在的程序内,都没敢使用位变量,还好ram够(还有一个方法就是把中断和主程序用的位变量进行人为的区分,可是这样改起就太麻烦了)。不知道各位是否遇到过这样的问题,大家对这个问题是怎么看的,有没有什么更好的解决办法,望赐教。不胜赶紧,有什么问题也可以电子邮件联系,shanyongde@163.com

相关帖子

沙发
computer00| | 2007-8-14 19:53 | 只看该作者

操作时关中断。以前有一个帖讨论的,你可以搜索一下,

那个是操作IO的。

使用特权

评论回复
板凳
shanyongde|  楼主 | 2007-8-14 20:18 | 只看该作者

帖子叫啥名字啊?

经常关中断,不太好吧。不过谢谢楼上的兄弟回帖!

使用特权

评论回复
地板
阿南| | 2007-8-14 20:28 | 只看该作者

付值过程,楼主可以查看反汇编代码;中断可以做实验多次

使用特权

评论回复
5
computer00| | 2007-8-14 20:58 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝