我试图找出一种最好的方法来反转二进制数的MSB并保持其他位不变,因为MSB已设置。
例如,如果二进制数是1111
我试过,只有斧头的前半部分啊,00b
and ah, 00b
我得到0011,因为你可以看到MSB旁边的位也会在我做那个时改变
如何在不更改其他位的情况下仅更改最高位?
提前谢谢
答案 0 :(得分:4)
首先,你的AND
并没有真正反转任何位;它清除它们。
如果要反转AX
的最重要位,可以执行此操作:
XOR AX,8000h
或最重要的蚕食:
XOR AX,0F000h
或最重要的字节:
XOR AX,0FF00h
等等。