BT指令与进位标志CF的联系

Connection between the BT instruction and the carry flag CF

我知道例如BT BX, 0BX寄存器的第一位传送到进位标志CF。

进位标志不是被限制为只能有值 0 和 1,因为它是一个标志吗?

是否 BT 从寄存器的第一位更改 CF 值,即使它不包含 0 或 1?

如果有人能在这里写下它是如何工作的,那就太好了!

BT 是测试某个位是否已设置(1)或未设置(0)的指令。因此它只能 return 两个值,一个或零,它们适合一个可以是 TRUE(1) 或 FALSE(0).[=20 的 (E)FLAG 值=]

所以BT直接将这个bit复制到CarryFlag中
所需位的位置在指令末尾用立即数给出 - 这里是 0,表示 BX.

中的最低位

(BT 不会更改测试的位。为此,您应该使用 BTC, BTR and BTS。)

是的,进位标志只能有两个可能值之一:01。 任何寄存器的任何位也是如此,例如 BX 的最低有效位 Nr.0。 它的值被BT BX,0复制到CF;顺便说一句,这可以用来测试 BX 中的数字是奇数还是偶数:

    BT BX,0
    JC Odd
Even: