使用 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 文档中查找此类内容。