小弟我想请教一下这XOR的这两种用法有啥区别
我想请问一下这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
[解决办法]