'add 0x804a460(,%ecx,4),%edx' 是做什么的?
What does 'add 0x804a460(,%ecx,4),%edx' do?
我需要帮助解释这行代码:
0x08048e26 <+43>: add 0x804a460(,%ecx,4),%edx
我不确定这到底是什么意思。我将其解释为 %edx = 4*%ecx + 0x804a460
。但这似乎不正确,因为 %edx
从未包含我在 运行 指令后期望的值。
C 中的等价物是
edx += *((int*)0x804a460 + ecx)
看起来它正在索引静态 table 以获取条目的值,然后将该值添加到 edx。
我需要帮助解释这行代码:
0x08048e26 <+43>: add 0x804a460(,%ecx,4),%edx
我不确定这到底是什么意思。我将其解释为 %edx = 4*%ecx + 0x804a460
。但这似乎不正确,因为 %edx
从未包含我在 运行 指令后期望的值。
C 中的等价物是
edx += *((int*)0x804a460 + ecx)
看起来它正在索引静态 table 以获取条目的值,然后将该值添加到 edx。