位带操作

2019-07-20 18:58发布

今天刚学完位带操作,也基本明白了位带操作的基本思路:就是把相应寄存器的位映射到一个32位的地址,然后对这个地址进行写1或者写0操作,但是我实在理解不了这样操作怎么就好处多多,怎么就可以防止被中断打断主程序指令了,(好像是说改变了寄存器的读改写的操作过程)。真的不明白位带操作优点的真正含义。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
ouxili
1楼-- · 2019-07-21 11:35
 精彩回答 2  元偷偷看……
ouxili
2楼-- · 2019-07-21 13:03
操作系统 发表于 2016-11-11 22:01
STM32的位操作,编译器会生成原子操作指令。这样子就安全了。不明白 原子操作 自己去百度。

这估计是位操作的强大优点,但是为什么位操作并不常用
ouxili
3楼-- · 2019-07-21 18:09
K.O.Carnivist 发表于 2016-11-11 20:04
其实楼主说的中断打断主程序和位操作指令关系不太大。主要是ARM的运算指令不能操作直接地址吧。

没有接触过ARM,这方面我真是一点也不懂。
ouxili
4楼-- · 2019-07-21 23:10
Akatsuki_lim 发表于 2016-11-11 18:13
其中一个原因:32的寄存器不能像51那样有位操作

感觉51单片机大部分都是直接对位进行操作。
操作系统
5楼-- · 2019-07-22 03:01
ouxili 发表于 2016-11-12 11:40
这估计是位操作的强大优点,但是为什么位操作并不常用

51单片机的C语言不是标准的C语言。有位操作指令。标准的C语言没有位操作指令。但有位操作运算符。编译器会自动完成 位操作指令。完成不用担心这个问题。这个问题不是问题呀。
ouxili
6楼-- · 2019-07-22 07:50
 精彩回答 2  元偷偷看……

一周热门 更多>