标签: assembly x86 bit-manipulation bit-shift zero-extension
例如,如果我想说bx是一个数字:
shl bx,1 shr bx,1
新的bx值是多少?它保持不变吗?
答案 0 :(得分:2)
否(或不一定)。 shl bx,1将摆脱最高位,而shr bx,1不会将旧的最高位带回来。这意味着像0x8123这样的值将变为0x0123。
shl bx,1
shr bx,1
通常,它与使用and bx,0x7FFF来清除最高位(进位标志除外)几乎相同。
and bx,0x7FFF