【汇编语言指令】关于汇编语言xor指令的问题。我是汇编新手刚刚学习....

发布时间:2021-04-03 06:04:56

关于汇编语言xor指令的问题。我是汇编新手刚刚学习汇编,今天刚好学到了汇编的xor指令。这个指令我知道他的作用是把2个操作数做比较这样的比较( 1 xor 1=0,0 xor 0=0,1 xor 0=1,0 xor 1=1。)。我有点不明白的是书上说(xor异或操作指令主要用在使一个操作数中的若干位维持不变,而另外若干位取反的场合。把要维持不变的这些位与“0”相“异或”,而把要取反的这些位与“1”相“异或”就能得到相应的结果。)例如:已知(AH)=46H,要求把其的第0、2、5和7位的二进制值变反,其他位不变。 46H=01000110 10100101 xor 11100011 结果这个是书上的例题是没错,但我把46H数值修改一下在按它的方法计算就错了。例如:我把46H改成56H 56H=01010110 10100101 xor 11110011 结果这样的话第4为也变了。与书上的的用0异或就不变,是相反的。我像问问这是书上写错了吗?后来我自己琢磨琢磨后发现在用这个方法时先把要取反的这个数先not一下在用书上说的这个方法,得到的结果在not一下就可以有书上说的那个效果。就是加2个not。

网友回答

【答案】 “ 56H=01010110
   xor 10100101
   结果 11110011 这样的话第4位也变了。”
  这话不对啊,第4位原来是1,结果也是1,没有变。
以上问题属网友观点,不代表本站立场,仅供参考!