<åt sidan class = "s-notice s-notice__info js-post-notice mb16" role = "status">
Den här frågan har redan ett svar här :
Svar
När vi kör igenom en matris kan vi vanligtvis hitta följande rader med monteringskod:
mov [base_address_of_array + array_index * size_of_an_item_in_array], edx
I ditt fall skulle jag gissa att arrayen finns i stacken (det är därför du hittar esp
som en del av matrisens basadress. Sedan har du också en förskjutning till esp
vilket är 0Ch
(som är 12 i decimal). Arrayen är alltså esp + 0Ch
. Då är eax
indexet och 4
är storleken på ett objekt i matrisen (förmodligen ett heltal på 4 byte).
Om vi tittar på w hål CFG, jag skulle översätta det tillbaka till C i något så här:
int array[4]; for (int i = 0; i < 4; ++i) array[i] = i;
Obs : Jag antar att den blå bågen i CFG återgår till loc_401381
.
Kommentarer
- Monteringskoden ser ut som pekare med matriser. Är det inte '?