. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->汇编语言学习交流区
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  请问xor异或的等价指令都有那些阿?  [已解决] 回复[ 11次 ]   点击[ 1166次 ]  
mouse
[帖 主]   [ 发表时间:2007-11-09 09:59 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
如题

比如:
xor ax,ax 等价指令:mov ax,0
fishboy
[第1楼]   [ 回复时间:2007-11-09 16:46 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
xor是一种运算形式,等价的指令可不好总结。这是个应用问题。
fishboy
[第2楼]   [ 回复时间:2007-11-09 16:49 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
比如说,“吃”一个操作,“吃饭”等价于“吃能饱肚子的东西”,那“吃药”等价于“吃能治病的东西”,“吃X”等价于“吃能XX的东西”。也就是说,“吃”的应用等价出来的行为很难进行全面的定义,因为你的“吃”的应用范围不可知。
打了个比方,不贴切之处,请赐教。
mc03lbj
[第3楼]   [ 回复时间:2007-11-09 20:22 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2007-10-25 00:30
其实,我比较倾向根据时钟周期数的大小来选用谁的,如mov mem, 1的为1与xor mem, 1的为3,
我会用mov mem, 1
Wednesday
[第4楼]   [ 回复时间:2007-11-10 15:31 ]   [引用]   [回复]   [ top ] 
荣誉值:43
信誉值:3
注册日期:2007-07-05 19:53
还有指令长度因素。
lion
[第5楼]   [ 回复时间:2007-11-10 15:46 ]   [引用]   [回复]   [ top ] 
荣誉值:33
信誉值:0
注册日期:2007-07-10 11:31
如同二楼所说,得看相似到什么程度了。

完全等价的没有,否则8086指令集就冗余了,倒是可以通过几条组合的指令实现同样的功能。

不知楼主何出此问呢?
huibian
[第6楼]   [ 回复时间:2007-11-12 16:00 ]   [引用]   [回复]   [ top ] 
荣誉值:117
信誉值:2
注册日期:2007-09-04 10:41
1.实例:   
  xor   ax,ax;  对AX清零,等价指令:mov ax,0
  xor   ax,0ffffh;对AX取反,等价指令:not ax;   
  xor   ax, 0h;  AX保持不变,不执行任何指令即为等价指令   
  xor   ax,0ff00;对AH取反,对AL保持;等价指令:not ah;   
  xor   ax,0f0f0;对AH和AL的bit4~7为取反,对AH,AL的0~3保持,没有相对简单的等价指令了   
    
2.结论:xor功能很多,通常有等价指令,个别时候没有等价指令,或者等价指令相对烦琐。
studing
[第7楼]   [ 回复时间:2007-11-12 16:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-23 11:01
我觉得知道指令的本质就行了,至于具体的应用可以随机而定,死记这些等价指令没有什么用处。当然有几个常用的也不错,但过分的追求它就有些偏颇了。


XOR指令对两个操作数执行按位的逻辑异或运算:即相“异或”的两位不相同时,结果就是1;否则,“异或”的结果为0。XOR指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。
 
例2.30a:逻辑异或运算
           mov al,45h
         xor al,31h ;al=74h,CF=OF=0、SF=0、ZF=0、PF=1
      XOR可用于求反某些位,而不影响其他位。要求求反的位同“1”异或,维持不变的位同“0”异或。
 
例2.30b:将BL中D0和D3求反,其余位不变
 
           xor bl,00001001b
      
      XOR指令经常给寄存器清0,同时使CF也清0;例如:
           xor ax,ax ;ax=0,CF=OF=0、SF=0、ZF=1、PF=1
sunshine
[第8楼]   [ 回复时间:2007-11-14 09:43 ]   [引用]   [回复]   [ top ] 
荣誉值:106
信誉值:0
注册日期:2007-06-26 15:10
“异或”的两位不相同时,结果就是1;否则,“异或”的结果为0
mouse
[第9楼]   [ 回复时间:2007-11-27 08:15 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
谢谢几位的回答,我原本是想知道一下六楼所说的几个经常用法,听大家的解释才明白是舍本求末了,根本就是8楼最后所说的,有了它,其它的使用方法尽可以自己总结和活用。
mouse
[第10楼]   [ 回复时间:2007-11-27 08:15 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
此贴由 贴主 于 [ 2007-11-27 08:15 ] 结贴。 结贴原因:问题已解决
mouse
[第11楼]   [ 回复时间:2007-11-27 08:16 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
谢谢几位的回答,我原本是想知道一下六楼所说的几个经常用法,听大家的解释才明白是舍本求末了,根本就是8楼最后所说的,有了它,其它的使用方法尽可以自己总结和活用。

汗" 忘了给分了,对不起了,下次注意。
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved