早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于汇编语言xor指令的问题。我是汇编新手刚刚学习汇编,今天刚好学到了汇编的xor指令。这个指令我知道他的作用是把2个操作数做比较这样的比较(1xor1=0,0xor0=0,1xor0=1,0xor1=1。

题目详情
关于汇编语言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,没有变。
看了 关于汇编语言xor指令的问题...的网友还看了以下: