Win32 汇编 [23] - 位测试指令: BT、BTC、BTR、BTS
2012-04-10 15:11
330 查看
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
相关文章推荐
- 学 Win32 汇编[23] - 位测试与位扫描指令: BT、BTC、BTR、BTS、BSF、BSR
- BT、BTS、BTR、BTC: 位测试指令
- BT,BTC,BTR,BTS 指令
- Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- 学 Win32 汇编[4]: 使用 Debug 输出测试结果
- 学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- win32汇编中伪指令addr和offset指令的区别
- Win32汇编笔记-内存管理,和跳转,分支,循环指令
- 汇编指令: VERW、WAIT、WBINVD、WRSHR、WRMSR、XADD、XBTS、XCHG、
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- win32汇编中伪指令addr和offset指令的区别
- 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- WIN32汇编: 23.系统托盘中的快捷图标
- [BX]和loop指令01 - 零基础入门学习汇编语言23
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等