“movl(%esi,%ecx,4),eax”意味着什么?
答
这意味着:
计算地址=(ESI + ECX * 4)。 从该内存地址的32位值中读取EAX的值。
从链接的文章:
GAS指令通常有以下形式:
mnemonic source, destination
。
参见:http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax
个人而言,我更喜欢更具可读性MASM语法
mov EAX, dword ptr [ESI + ECX * 4]
^ ^
| +-- source in a readable syntax
+-------- destination
它的形式:mnemonic destination, source
(正好反过来)。
评论
哦,你叫什么指示,真的parameters
。
该指令是整个声明。
它是AT&T的语法,所以它实际上是相反的。 –
感谢您的澄清。英特尔和AT&T之间的主要区别是指令中源和目标的顺序? – tippenein
@tippenein主要,是的。但是还有其他差异。与您发布的问题相关。有关详细信息,请参阅以下链接:http://www.imada.sdu.dk/Courses/DM18/Litteratur/IntelnATT.htm –