首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

小弟我想请教一下这XOR的这两种用法有啥区别

2012-02-09 
我想请问一下这XOR的这两种用法有啥区别?Assembly codexor [eax+ecx],0x33Assembly codemov bl,[eax+ecx]x

我想请问一下这XOR的这两种用法有啥区别?

Assembly code
           xor [eax+ecx],0x33


Assembly code
           mov bl,[eax+ecx]           xor bl,0x33           mov [eax+ecx],bl


这两个效果是一样的吗?有什么影响?

[解决办法]
第一个指令,不完整吧,没有指明操作数的大小。因为两个操作数,都无法从其自身判断出来。所以,参照第二组指令,应该是写成:xor byte ptr [eax+ecx], 0x33
这两组指令,对 [eax+ecx] 处字节的影响是一样的。它们的区别在第二组涉及到 bl 寄存器,还是有三条指令才能完成需要的功能。所以,尽可能地选用第一种。
[解决办法]
bl是一个字节,而你第一个写法是和4个字节的值进行异或。
[解决办法]
莫非xor指令不支持操作数为内存和立即数这个组合?
[解决办法]
哦,第二组里面,对 bl 的判别,但没有涉及到 bl 啊,应该是对 [eax+ecx] 的判别?
cmp byte ptr [eax+ecx], 0x90
[解决办法]
探讨

我晕。。。。。谢谢LS的。。没注意。。。。
话说第二种效率是不是要低一些?

热点排行