Assembly 什么是-0x1(%edx,%ecx,1)";objdump输出中的平均值?
使用objdump来理解二进制代码,我意识到我的ASM语法不够流利。以下概念是什么意思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文档中查找类似的内容。括
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的意思;),我只是不明白括号里的表达。这里是一个并列视图。