到CF,且将DEST中该位取反。BTR将SRC指定的DEST中一位的数值复制到CF,且将DEST中该位复位。BTS将SRC指定的DEST中一位的数值复制到CF,且将DEST中该位置位。目的操作数为16位或32位通用寄存器或存储器,源操作数为16位或32位通用寄存器,以及8位立即数,当源操作数为通用寄存器时,必须同目的操作数类型一致。源操作数SRC以两种方式给出目的操作数的位号,即SRC为8位立即数,以二进制形式直接给出要操作的位号;SRC为通用寄存器,如果DEST为通用寄存器,则SRC中二进制值直接给出要操作的位号。如果DEST为存储器操作数,通用寄存器SRC为带符号整数,SRC的值除以DEST的长度所得到的商作为DEST的相对偏移量,余数直接作为要操作的位号。DEST的有效地址为DEST给出的偏移地址和DEST相对偏移量之和。BT,BTC,BTR,BTS指令影响CF标志位,其它标志位无定义。例353MOVAX,1234HMOVECX,5BTAX,CX;CF1AX1234HBTCAX,5;CF1;AX1214HBTSAX,CX;;CF0AX1234HBTREAX,ECX;CF1EAX00001214H例354MODELSMALL586DATADATA1DW1234H,5678HCODESTARTUPBTCDATA1,3;CF0DATA1123CHMOVCX,20BTRDATA1,CX;CF1DATA25668HEXITEND2位扫描指令格式:BSFDEST,SRCBSRDEST,SRC
f功能:BSF从低位开始扫描源操作数,若所有位都是0,ZF0,则否则ZF1。并且将第一个出现1的位号存入目的操作数。BSR从高位开始扫描源操作数,若所有位都是0,则ZF0,否则ZF1。并且将第一个出现1的位号存入目的操作数。源操作数可以为16位32位通用寄存器或存储器。目的操作数为16位或32位通用寄存器。源操作数和目的操作数类型必须一致。BSF,BSR指令影响ZF标志位,其它标志位无定义。例355MOVEBX,0F333EE00HBSREAX,EBX;ZF1EAX0000001FH31BSFEDX,EBX;ZF1EDX00000009H3进位标志指令1格式:CLC。功能:清除进位标志。2格式:STC。功能:设置进位标志。3格式:CMC。功能:进位标志取反。4条件设置字节指令条件设置指令用于根据条件设置某一状态字节或标志字节,见表33。格式:SETco
dDEST功能:测试条件co
d若为真,则将目的操作数置01H,否则置00H。目的操作数允许为8位通用寄存器或8位存储器操作数。条件co
d与条件转移指令中的条件相同,共分三类。1以标志位状态为条件可以测试的标志位为ZF,SF,OF,CF,PF。2以两个无符号数比较为条件条件为高于、高于等于、低于、低于等于。3以两个带符号数比较为条件条件为大于、大于等于、小于、小于等于。SET指令不影响标志位。使用逻辑运算类指令应注意:r