我试图了解这些说明对MSP 430处理器的作用:
(1) MOV.w #0x0055,R5
(2) BIC.w #0xFFEE,R5
(3) BIS.w #0x1144,R5
我还没有找到解释汇编指令的内容,并希望在每条指令后找出这些指令的作用以及r5寄存器中存储的内容。有人可以解释一下吗?
答案 0 :(得分:14)
MOV
将值移动到目标位置。在这种情况下,R5
将包含值0x0055。
BIC
清除目标值中的位。如果R5在指令之前包含0x0055,则它将包含值0x0011。 (将其视为反向的和指令)。
BIS
设置位 - 这实际上与或操作相同。在此指令之后R5
将具有值0x1155。
答案 1 :(得分:5)
MOV.w #0x0055,R5
执行以下操作:src → dst
BIC.w #0xFFEE,R5
执行以下not.src .and. dst → dst
BIS.w #0x1144,R5
执行以下操作:src .or. dst → dst
BIS [.W]设置目的地BIS.B中的位 设置目的地中的位
语法BIS src,dst或
BIS.W src,dst BIS.B src,dst操作src .OR。 dst - > DST
描述源操作数和目标 操作数是逻辑ORed。结果放入了 目的地。源操作数不受影响。
状态位状态位不受影响。
模式位OSCOFF,CPUOFF和GIE不是 影响。
示例RAM字TOM的六个LSB是 集。
BIS#003Fh,TOM;在RAM位置TOM中设置六个LSB
示例设置RAM字节TOM的三个MSB。
BIS.B#0E0h,TOM;将3个MSB设置在RAM位置 TOM
当然:
BIC [.W]清除目的地BIC.B中的位 清除目的地中的位
语法BIC src,dst或
BIC.W src,dst BIC.B src,dst操作.NOT.src .AND。 dst - > DST
描述反转源操作数和 目标操作数是逻辑AND。结果放入 目的地。源操作数不受影响。
状态位状态位不受影响。
模式位OSCOFF,CPUOFF和GIE不是 影响。
示例RAM字LEO的六个MSB是 清零。
BIC#0FC00h,LEO;清除6个MSB MEM(LEO)
示例RAM字节LEO的五个MSB是 清零。
BIC.B#0F8h,LEO;清除5个MSB Ram位置LEO
我能够在此very website
上找到包含相关链接的用户指南答案 2 :(得分:1)
现有答案中缺少的一条信息是.W与.B的重要性。
从第56页的MSP430F24x用户指南(SLAU144J)的3.4节开始,
乙/ W:
字节或字操作:
0:单词操作
1:字节操作
值得注意的是,默认情况下,指令对单词进行操作。