いくつかのアセンブリコードを実行していますが、コード行が何をするのか理解できません。コードは次のとおりです。
leaq 0(,%rax,4), %rdx
基本lea的には一種のmov命令ですが、アドレスを移動するだけです。したがって、何かのアドレスをに移動します%rdx(%rdxスタック上の何かに「ポイント」を作成します)。スタック上で何%raxを指しているのかはわかっています-28(%rbp)が(たとえば)、答えを得るためにそれを4で乗算する方法に混乱しています。%rdx指しますか4*(-28) = -112(%rbp)?
ありがとう!
編集:文脈上、次のコードがこの命令の前にあります:
pushq %rbp
movq %rsp, %rbp
movl %esi, -28(%rbp)
movl -28(%rbp), %eax
cltq
leaq 0(,%rax,4), %rdx