我遇到了我教授制作的一个例子,这让我质疑我对bset
和bclr
汇编命令的理解。
如果我这样做:
bset BITS,80
我在两者之间执行AND或OR操作吗?我的参考指南说bset
执行此操作:
M <= M + mask
+
是OR还是AND运算符? bclr
是相同的命令,但使用掩码的补码执行操作。
答案 0 :(得分:2)
位设置和清除分别表示ORing和ANDing,按位。 BSET应该做OR,而BCLR应该做有效的AND。
可能BCLR只是对你给出的位向量进行AND运算,或者BCLR对位向量的补码(我的猜测)进行AND运算,这取决于指令集的设计者有多好。