首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSP430汇编说明

MSP430汇编说明
EN

Stack Overflow用户
提问于 2012-10-16 01:47:40
回答 3查看 25K关注 0票数 6

我正在尝试理解这些指令对MSP 430处理器有什么作用:

代码语言:javascript
复制
(1) MOV.w  #0x0055,R5
(2)   BIC.w  #0xFFEE,R5
(3)   BIS.w  #0x1144,R5

我没有找到太多解释汇编指令的东西,我很想知道这些指令是做什么的,以及在每条指令之后r5寄存器中存储了什么。有人能解释一下吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-16 04:27:23

MOV将值移动到目标位置。在本例中,R5将包含值0x0055。

BIC清除目标值中的位。如果R5在指令前包含0x0055,则它将包含值0x0011。(可以把这看作是一个颠倒的and指令)。

BIS设置位--这实际上与or操作相同。在此指令之后,R5的值将为0x1155。

票数 15
EN

Stack Overflow用户

发布于 2012-10-16 01:59:06

MOV.w #0x0055,R5执行以下操作:src → dst

BIC.w #0xFFEE,R5执行以下not.src .and. dst → dst操作

BIS.w #0x1144,R5执行以下操作:src .or. dst → dst

看看MSP 430 User Guide就知道了

BIS.W设置目标BIS.B中的位

在目标中设置位

语法BIS src、dst或

BIS.W src,dst BIS.B src,dst

操作源.OR。dst−> dst

说明源操作数和目标操作数在逻辑上为ORed。将结果放入目的地。源操作数不受影响。

状态位状态位不受影响。

模式位OSCOFF、CPUOFF和GIE不受影响。

例如,设置RAM字TOM的六个LSB。

BIS #003Fh,TOM;在RAM位置TOM中设置六个LSB

例如设置RAM字节TOM的三个MSB。

BIS.B #0E0h,TOM;在RAM位置TOM中设置3个MSB

当然:

BIC.W清除目标BIC.B中的位

清除目标中的位

语法BIC src、dst或

BIC.W src,dst BIC.B src,dst

Operation .NOT.src .AND。dst−> dst

说明反转的源操作数和目标操作数在逻辑上为ANDed。将结果放入目的地。源操作数不受影响。

状态位状态位不受影响。

模式位OSCOFF、CPUOFF和GIE不受影响。

例如,清除RAM字LEO的六个MSB。

BIC #0FC00h,LEO;清除MEM中的6个MSB(LEO)

例如,清除RAM字节LEO的五个MSB。

BIC.B #0F8h,LEO;清除Ram位置LEO中的5个MSB

我在此very website上找到了此用户指南和相关链接

票数 5
EN

Stack Overflow用户

发布于 2016-08-26 03:31:24

现有答案中缺少的一条信息是.W与.B的重要性。

从第56页的MSP430F24x用户指南(SLAU144J)的3.4节中指定,

黑屏:

字节或字操作:

0: word操作

1:字节操作

值得注意的是,默认情况下,指令对一个单词进行操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12901160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档