tömb indexe az összeállításban? [duplicate]

Erre a kérdésre már itt van válasz :

válasz

Általában egy tömb futásakor megtalálhatjuk a következő sorokat az összeállítási kódból:

mov [base_address_of_array + array_index * size_of_an_item_in_array], edx 

Esetemben azt gondolnám, hogy a tömb a veremben van (ezért találja meg a esp a tömb alapcímének részeként. Ezután lesz egy esp eltolás, amely 0Ch (ami tizedesjegyű 12). Tehát a tömb a esp + 0Ch helyen található. Ezután a eax az index és 4 a tömbben lévő elem mérete (valószínűleg 4 bájt egész szám).

Ha megnézzük a w lyuk CFG, ilyenné fordítanám vissza C-be:

int array[4]; for (int i = 0; i < 4; ++i) array[i] = i; 

Megjegyzés : Azt hittem, hogy a CFG kék íve visszatér loc_401381 -re.

Megjegyzések

  • Az összeállítási kód mutatós aritmetikának tűnik tömbökkel. Nincs ' ez?

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük