Assembly 什么是;movl(%esi,%ecx,4),eax“;意味着

Assembly 什么是;movl(%esi,%ecx,4),eax“;意味着,assembly,x86,Assembly,X86,将这3条指令作为movl指令源意味着什么 (%esi, %ecx, 4) 这意味着: 计算地址=(ESI+ECX*4)。 将该内存地址处的32位值读入EAX 从链接文章中: 气体指令通常有以下形式:助记符源、目标 见: 就我个人而言,我更喜欢可读性更强的MASM语法 mov EAX, dword ptr [ESI + ECX * 4] ^ ^ | +-- source in a readable syntax +-------- destinati

将这3条指令作为movl指令源意味着什么

(%esi, %ecx, 4)
这意味着:

计算地址=(ESI+ECX*4)。 将该内存地址处的32位值读入EAX

从链接文章中:

气体指令通常有以下形式:
助记符源、目标

见:

就我个人而言,我更喜欢可读性更强的MASM语法

mov EAX, dword ptr [ESI + ECX * 4]
     ^     ^
     |     +-- source in a readable syntax
     +-------- destination
其形式为:
助记目的地,源代码(正好相反)

评论
哦,你所说的指令,实际上是
参数


说明是全部陈述

这是AT&T的语法,所以实际上是相反的。谢谢你的澄清。英特尔和AT&T之间的主要区别是指令中源和目标的顺序吗?@Tippennein主要是这样。但还有其他不同之处,特别是与你发布的问题有关。有关更多信息,请参阅此链接:@tippennein除了上述差异(操作数顺序、寻址模式语法)之外,指令助记符(名称)中还有许多差异,而且助记符通常有一个后缀来声明数据类型。例如,
movb
movw
movl
分别处理8位、16位和32位数据。还有完全不同的助记符,例如
retf
(英特尔)和
lret
(AT&T)。