2012-12-12 30 views
2

我碰到了一個我的教授製作的例子,這讓我質疑我對bsetbclr彙編命令的理解。瞭解bset和bclr

如果我這樣做:

bset BITS,80 

我在執行兩者之間的AND或OR操作?我的參考指南說,bset做到這一點:

M <= M + mask 

+的OR或AND運算符? bclr是相同的命令,但用掩碼的補碼執行操作。

+0

位設置和清除分別意味着ORing和ANDing,按位分別。 –

+0

所以'bset'會做一個OR,'bclr'會做一個AND?這更有意義,謝謝。如果您想將其作爲答案發布,我很樂意接受。 – n0pe

回答

2

位設置和清除分別意味着ORing和ANDing,按位分別。 BSET應該做OR,並且BCLR應該做有效的AND。

這可能是BCLR只是根據指令集的設計者有多好,根據您給出的位向量或者BCLR與位向量的補碼(我的猜測)進行AND操作。