汇编语言中的高级指令与操作
1. 位操作指令
1.1 testb 指令
当我们不想存储 andb
指令的结果时,可以使用 testb
指令。该指令会执行按位与操作,然后丢弃结果,但会设置相应的标志位。例如,要判断 %bl
的最低有效位是否被设置,可以这样做:
testb $0b0000001, %bl
jnz bitwasset
1.2 设置和清除标志位
- 设置标志位为 1 :可以使用按位或操作。例如,将事务状态
0b01001100
的最后一位设置为 1:
movb $0b01001100, %al
orb $0b00000001, %al
- 设置标志位为 0 :可以使用按位与操作,将除了要设置为 0 的位之外的所有位都设置为 1。例如,将
%al
的最低有效标志位设置为 0:
andb $0b11111110, %al
1.3 其他常见位操作
- NOT :该操作只有一个操作数,会将位翻转