Как машинный код обращается к параметрам вызова подпрограммы?

При запуске программы вы можете передавать параметры, например

$ myProgram par1 par2 par3

В C вы можете получить доступ к этим параметрам, просмотрев argv ,

int main (int argc, char *argv[]) 
{
     char* aParameter = argv[1];  // Not sure if this is 100% right but you get the idea...
}

Как это будет транслироваться в машинном коде ассемблера / x86? Как бы вы получили доступ к данным вам переменным? Как система предоставит вам эти переменные?

Я новичок в сборке, похоже, вы можете получить доступ только к регистрам и абсолютным адресам. Я озадачен, как можно получить доступ к параметрам. Система предварительно загружает параметры в специальный регистр?

5
задан Robert 6 December 2011 в 09:54
поделиться