0

ebp + 4第 4 行的代码是什么?我知道ebp + 4是退货地址。我也知道它在调用子程序之后立即指向该部分。但我没有在下面的代码中调用子程序,它只是一个数组。( x = a[I][J];)

mov eax, [ebp - 44] ; ebp - 44 is i’s location 
sal eax, 1 ; multiple i by 2

add eax, [ebp - 48] ; add j
mov eax, [ebp + 4*eax - 40] ; ebp - 40 is the address of a[0][0]

mov [ebp - 52], eax ; store result into x (at ebp - 52)

请告诉我第ebp+44 行的用途是什么。

4

1 回答 1

3

如果将其表示为:

mov eax, [4*eax + ebp - 40]

4*eax只是将计算的索引2*i + j(我假设数组每行有两个元素)按每个元素的大小(4 个字节)缩放。

于 2013-10-20T03:02:12.280 回答