我遇到了教授制作的一个示例,这让我质疑自己对 bset
和 bclr
汇编命令的理解。
如果我这样做:
bset BITS,80
我是在两者之间执行 AND 或 OR 运算吗?我的引用指南说 bset
这样做:
M <= M + mask
+
是 OR 还是 AND 运算符? bclr
是相同的命令,但使用掩码的补码执行操作。
最佳答案
位设置和清除分别意味着按位或运算和与运算。 BSET应该做OR,BCLR应该做有效的AND。
BCLR 可能只是简单地与您提供的位向量进行 AND 运算,或者 BCLR 与位向量的补码进行 AND 运算(我的猜测),具体取决于指令集设计者的水平。
关于assembly - 了解 bset 和 bclr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13849931/