【发布时间】:2009-12-09 20:54:39
【问题描述】:
使用 objdump 来理解二进制文件,我意识到我对 ASM 语法不够流利。下面的概念是什么意思?
xor %al,-0x1(%edx,%ecx,1)
当你在做的时候 - 我应该搜索什么才能找到关于这些概念的文档?
【问题讨论】:
-
注意,我确实知道 xor 是什么意思 ;),我只是不明白括号表达式。
使用 objdump 来理解二进制文件,我意识到我对 ASM 语法不够流利。下面的概念是什么意思?
xor %al,-0x1(%edx,%ecx,1)
当你在做的时候 - 我应该搜索什么才能找到关于这些概念的文档?
【问题讨论】:
【讨论】:
这是“a”寄存器的低字节 (%al) 内容和地址处的内存内容的异或,该地址是 32 位宽寄存器“d” (%edx) 的总和, 'c' 乘以 1 (%ecx,1) 和 -1。结果写回 %al。在C
al ^= (char*)(edx+ecx*1 - 1);
您可以在 sandpile 或 intel/amd 文档中查找此类内容。
【讨论】: