【问】
在支持位操作的单片机中,如C51,使用位域定义变量或者寄存器,操作方便并且节约空间。
问题1:但是很多单片机不支持位操作,仍然使用位域,那么汇编语言将如何执行?我理解的是,汇编间接实现位操作,但是会额外增加很多代码,不知是否这样?
问题2:XS128支持位操作吗?官方给的头文件里有很多位域的使用。
【答】
1、没用过128,但用过msp430。不支持位操作,但官方头文件同样用了很多位域进行定义。
2、记得看过一个视频说过像是 resister = 1 << bit编译器会自动将1 << bit的值算出来
也就是在单片机程序运行中其实这是个立即数,而不是经过位移得到的。
另为数据线如果是32位,一次运行32位数据,设置成int效率最高,成char型会节约空间但是好像会变慢
3、其实可以查下反汇编就清楚了