“-0x1(%edx,%ecx,1)”在objdump输出中是什么意思?

时间:2009-12-09 20:54:39

标签: assembly objdump

使用objdump来理解二进制文件,我意识到我在ASM语法方面不够流畅。以下概念意味着什么?

xor    %al,-0x1(%edx,%ecx,1)

当你在这里时 - 我应该搜索什么才能找到关于这些概念的文档?

2 个答案:

答案 0 :(得分:9)

括号是记忆偏移:

-0x1(%edx,%ecx,1)(AT& T语法)等于[edx+ecx*1-1](英特尔语法)

AT&T assembly syntax快速指南(根据您的要求)。

答案 1 :(得分:3)

这是'a'寄存器的低字节(%al)和地址处存储器内容的独占或内容,它是32位宽寄存器'd'(%edx)的总和,'c'乘以1(%ecx,1)和-1。结果写回%al。在C

al ^= (char*)(edx+ecx*1 - 1);

您可以在sandpile或intel / amd文档中查找此类内容。