6

我试图了解这些指令对 MSP 430 处理器的作用:

(1) MOV.w  #0x0055,R5
(2)   BIC.w  #0xFFEE,R5
(3)   BIS.w  #0x1144,R5

我找不到太多解释汇编指令的东西,并且很想知道这些指令的作用以及每条指令后存储在 r5 寄存器中的内容。有人可以解释一下吗?

4

3 回答 3

15

MOV将值移动到目的地。在这种情况下R5,将包含值 0x0055。

BIC清除目标值中的位。如果 R5 在指令之前包含 0x0055,则它将包含值 0x0011。(将其视为反向指令)。

BIS设置位——这实际上与or操作相同。R5在此指令之后将具有值 0x1155。

于 2012-10-15T20:27:23.183 回答
5

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 用户指南

BIS[.W] 设置目标位 BIS.B
设置目标位

语法 BIS src,dst 或
BIS.W src,dst BIS.B src,dst

操作 src .OR。dst -> dst

说明 源操作数和目标操作数进行逻辑或运算。结果被放入目的地。源操作数不受影响。

状态位 状态位不受影响。

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

示例 RAM 字 TOM 的六个 LSB 已设置。

BIS #003Fh,汤姆;设置 RAM 位置 TOM 中的六个 LSB

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

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

当然:

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

语法 BIC src,dst 或
BIC.W src,dst BIC.B src,dst

操作 .NOT.src .AND。dst -> dst

说明 反转的源操作数和目标操作数是逻辑与。结果被放入目的地。源操作数不受影响。

状态位 状态位不受影响。

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

示例 RAM 字 LEO 的六个 MSB 被清零。

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

示例 RAM 字节 LEO 的五个 MSB 被清除。

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

我能够在这个网站上找到带有相关链接的用户指南

于 2012-10-15T17:59:05.783 回答
1

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

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

黑白:

字节或字操作:

0:字操作

1:字节操作

值得注意的是,默认是指令对一个字进行操作。

于 2016-08-25T19:31:23.867 回答