Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道例如BT BX, 0将寄存器的第一位传输BX到进位标志 CF。
BT BX, 0
BX
进位标志不是仅限于值 0 和 1,因为它是一个标志吗?
是否BT会从寄存器的第一位更改 CF 值,即使它不包含 0 或 1?
BT
如果有人能够在这里写下它是如何工作的,那就太好了!
BT是用于测试某个位是否已设置(1)或未设置( )的指令0。因此它只能返回两个值,一个或零,它们适合 (E)FLAG 值,该值可以是 TRUE( 1) 或 FALSE( 0)。
1
0
所以BT直接把这个位复制到CarryFlag中。 所需位的位置由指令末尾的立即数给出 - 这里是0指BX.
(BT不会更改测试的位。为此,您应该使用BTC、BTR和BTS。)
是的,进位标志只能有两个可能值之一:0或1。任何寄存器的任何位也是如此,例如 的最低有效位 Nr.0 BX。它的值被复制BT BX,0到CF;顺便说一句,这可以用来测试数字BX是奇数还是偶数:
BT BX,0
BT BX,0 JC Odd Even: