8086汇编语言指令(20)位检测指令BT/BTC/BTR/BTS/TEST

位检测指令(Bit Test Instruction)

指令的格式:BT/BTC/BTR/BTS Reg/Mem, Reg/Imm    ;80386+

受影响的标志位:CF

位检测指令是把第一个操作数中某一位的值传送给标志位CF,具体的哪一位由指令的第二操作数来确定。

根据指令中对具体位的处理不同,又分一下几种指令:

BT:把指定的位传送给CF;

BTC:把指定的位传送给CF后,还使该位变反;

BTR:把指定的位传送给CF后,还使该位变为0;

BTS:把指定的位传送给CF后,还使该位变为1;

 

 

例如:假设(AX)=1234H,分别执行下面指令。

BT  AX, 2      ;指令执行后,CF=1,(AX)=1234h

BTC AX, 6       ;指令执行后,CF=0,(AX)=1274h

BTR AX, 10      ;指令执行后,CF=0,(AX)=1234h

BTS AX, 14      ;指令执行后,CF=0,(AX)=5234h

 

 

 

检测位指令TEST(Test Bits Instruction)

检测位指令是把二个操作数进行逻辑“与”操作,并根据运算结果设置相应的标志位,但并不保存该运算结果,所以,不会改变指令中的操作数。在该指令后,通常用JEJNEJZJNZ条件转移指令

指令的格式:TEST Reg/Mem, Reg/Mem/Imm

受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)

 

例如:

TEST AX, 1       ;测试AX的第0位

TEST CL, 10101B    ;测试CL的第0、2、4位

请使用浏览器的分享功能分享到微信等