"movl(%esi,%ecx,4),eax"意味着什么?

tip*_*ein 3 x86 assembly

将这3条指令作为movl指令的来源是什么意思?

(%esi, %ecx, 4)
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 5

它的意思是:

计算地址=(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
Run Code Online (Sandbox Code Playgroud)

其形式如下mnemonic destination, source:(完全相反).

评论
哦,你所谓的指示,真的parameters.
指令是整个陈述.