Win32 汇编 [23] - 位测试指令: BT、BTC、BTR、BTS

来源:互联网 发布:邦纳cms企业建站系统 编辑:程序博客网 时间:2024/05/16 13:52
BT、BTS、BTR、BTC
;BT(Bit Test):            位测试 ;BTS(Bit Test and Set):      位测试并置位 ;BTR(Bit Test and Reset):    位测试并复位 ;BTC(Bit Test and Complement): 位测试并取反  ;它们的结果影响 CF ;它们的指令格式相同: BT r16/r32, r16/r32 BT r16/r32, m16/m32 BT r16/r32, i8 BT m16/m32, r16/r32 BT m16/m32, i8   ; Test23_1.asm .386 .model flat, stdcall  include  windows.inc include  kernel32.inc include  masm32.inc include  debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib  .code main proc   ;BT 把 10000001b 的第七位复制到 CF, 得知是 1    mov dx, 10000001b    bt dx, 7    lahf    PrintHex ah ;47 - 01000111b (CF=1)   ;BT 把 10000001b 的第六位复制到 CF, 得知是 0    bt dx, 6    lahf    PrintHex ah ;86 - 10000110b (CF=0)      ;BTS 在执行 BT 命令的同时, 把操作数的指定位置为 1    mov dx, 10000001b    bts dx, 6    PrintHex dl ;C1 - 11000001b      ;BTR 在执行 BT 命令的同时, 把操作数的指定位置为 0    mov dx, 10000001b    btr dx, 7    PrintHex dl ;01 - 00000001b      ;BTC 在执行 BT 命令的同时, 把操作数的指定位取反    mov dx, 10000001b    btc dx, 0    PrintHex dl ;80 - 10000000b    btc dx, 0    PrintHex dl ;81 - 10000001b    ret main endp end main 

原创粉丝点击