Assembly 汇编代码指令
手术是什么Assembly 汇编代码指令,assembly,x86,Assembly,X86,手术是什么 movl(%esi,%ecx,4),%eaxdo 据我所知,它将存储在%eax中,相当于%ecx*4+%esi在英特尔语法中相当于以下内容: mov eax,[esi + ecx*4] 它将从由esi+ecx*4形成的地址处的内存中读取32位,并将该值放入eax中,这在英特尔语法中相当于以下内容: mov eax,[esi + ecx*4] 它将从由esi+ecx*4形成的地址处的内存中读取32位,并将该值放入eax是的,您正在写入。 它被称为索引寻址模式 它的语法是: <
movl(%esi,%ecx,4),%eax
do
据我所知,它将存储在
%eax
中,相当于%ecx*4+%esi
在英特尔语法中相当于以下内容:
mov eax,[esi + ecx*4]
它将从由
esi+ecx*4
形成的地址处的内存中读取32位,并将该值放入eax
中,这在英特尔语法中相当于以下内容:
mov eax,[esi + ecx*4]
它将从由esi+ecx*4
形成的地址处的内存中读取32位,并将该值放入eax
是的,您正在写入。它被称为索引寻址模式 它的语法是:
<constant1/label> (%reg1, %reg2, constant2)
然后你可以写
movl $2, %eax # Move the index into %eax
movl arr( , %eax, 4), %edx
这意味着:%edx=arr+%eax*4
。i、 e.基址+8字节。您可能会认为它像
%edx=arr[2]
一般来说,如果全局数组具有标签,则可以使用
label
作为基址。如果您有一个本地数组,则使用
%reg2
作为基址。如果您有一个包含数组的全局结构,那么您可以同时使用包含成员数组字节偏移量的结构+
%reg2
的label
。这就是通常发生的事情。。。但这取决于具体情况……是的,你在写。
它被称为索引寻址模式 它的语法是:
<constant1/label> (%reg1, %reg2, constant2)
然后你可以写
movl $2, %eax # Move the index into %eax
movl arr( , %eax, 4), %edx
这意味着:%edx=arr+%eax*4
。i、 e.基址+8字节。您可能会认为它像
%edx=arr[2]
一般来说,如果全局数组具有标签,则可以使用
label
作为基址。如果您有一个本地数组,则使用
%reg2
作为基址。如果您有一个包含数组的全局结构,那么您可以同时使用包含成员数组字节偏移量的结构+
%reg2
的label
。这就是通常发生的事情。。。但这取决于具体情况…请注意,您可以使用
objdump-d-M Intel
获取objdump
以输出英特尔语法。请注意,您可以使用objdump-d-M Intel
获取objdump
以输出英特尔语法