5.2.6 位操作指令
优质
小牛编辑
140浏览
2023-12-01
2、位检测指令(Bit Test Instruction)
指令的格式:BT/BTC/BTR/BTS Reg/Mem, Reg/Imm;80386+
受影响的标志位:CF
位检测指令是把第一个操作数中某一位的值传送给标志位CF,具体的哪一位由指令的第二操作数来确定。 根据指令中对具体位的处理不同,又分一下几种指令: BT:把指定的位传送给CF; | 图5.11 位检测指令的功能示意图 |
例如:假设(AX)=1234H,分别执行下面指令。
BTAX, 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
3、检测位指令TEST(Test Bits Instruction)
检测位指令是把二个操作数进行逻辑“与”操作,并根据运算结果设置相应的标志位,但并不保存该运算结果,所以,不会改变指令中的操作数。在该指令后,通常用JE、JNE、JZ和JNZ等条件转移指令。
指令的格式: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位
下面是学习和掌握乘法类指令的控件,可模拟执行BSF、BSR、BT、BTC、BTR、BTS和TEST等指令。