经典汇编语言教程:5.2.6 位操作指令

5.2.6 位操作指令

指令的格式:BT/BTC/BTR/BTS Reg/Mem,Reg/Imm ;80386+
受影响的标志位:CF

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

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

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

图5.11 位检测指令的功能示意图

例如:假设(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

3、检测位指令TEST(Test BitsInstruction)

检测位指令是把二个操作数进行逻辑“与”操作,并根据运算结果设置相应的标志位,但并不保存该运算结果,所以,不会改变指令中的操作数。在该指令后,通常用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、BSRBT、BTC、BTR、BTSTEST等指令。

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号