Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 什么是-0x1(%edx,%ecx,1)";objdump输出中的平均值?_Assembly_Objdump - Fatal编程技术网

Assembly 什么是-0x1(%edx,%ecx,1)";objdump输出中的平均值?

Assembly 什么是-0x1(%edx,%ecx,1)";objdump输出中的平均值?,assembly,objdump,Assembly,Objdump,使用objdump来理解二进制代码,我意识到我的ASM语法不够流利。以下概念是什么意思 xor %al,-0x1(%edx,%ecx,1) 当你在这里的时候,我应该搜索什么来找到关于这些概念的文档呢?这是一个异或,它的内容是'a'寄存器的低字节(%al)和地址处的内存内容,地址是32位宽寄存器'd'(%edx),'c'乘以1(%ecx,1)和-1的总和。结果以C形式写回%al al ^= (char*)(edx+ecx*1 - 1); 您可以在intel/amd文档中查找类似的内容。括

使用objdump来理解二进制代码,我意识到我的ASM语法不够流利。以下概念是什么意思

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

当你在这里的时候,我应该搜索什么来找到关于这些概念的文档呢?

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

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

您可以在intel/amd文档中查找类似的内容。

括号是内存偏移:

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


(根据您的要求)的快速指南。

注意,我确实知道xor的意思;),我只是不明白括号里的表达。这里是一个并列视图。