位域的使用问题

【问】

在支持位操作的单片机中,如C51,使用位域定义变量或者寄存器,操作方便并且节约空间。
    问题1:但是很多单片机不支持位操作,仍然使用位域,那么汇编语言将如何执行?我理解的是,汇编间接实现位操作,但是会额外增加很多代码,不知是否这样?
    问题2:XS128支持位操作吗?官方给的头文件里有很多位域的使用。

【答】

1、没用过128,但用过msp430。不支持位操作,但官方头文件同样用了很多位域进行定义。

2、记得看过一个视频说过像是 resister = 1 << bit编译器会自动将1 << bit的值算出来
也就是在单片机程序运行中其实这是个立即数,而不是经过位移得到的。
另为数据线如果是32位,一次运行32位数据,设置成int效率最高,成char型会节约空间但是好像会变慢

3、其实可以查下反汇编就清楚了

永不止步步 发表于09-18 10:11 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号