За регистрите

6 отговора 592 прегледа
#1

За регистрите

Пропомнете ми за кои регистри (stdcall) се гарантираше че си запазват стойността след изпълнение на функция. Доколкото помня за esi и edi няма гаранция, а пък за eax е ясно че се променя защото връща стойност.

Отговор
в отговор на StartFighter #4

Re: За регистрите

SS:(E)SP, за всички останали според компилатора

Отговор
в отговор на syscop #5

Re: За регистрите

Струва ми се, че когато говорим за stdcall, подразбира се че става дума и за компилатор който изпълнява конвенцията/стандарта за stdcall.

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор
в отговор на Duncan Griffin #6

Re: За регистрите

Т.е. как ф-ята ще си получи параметрите и кой ще изчисти стека. Колкото до регистрите, които не участват в предаването някакъв резултат никой не може да знае дали ще бъдат запазени/омазани.

Отговор
в отговор на syscop #7

Re: За регистрите

Е те точно затова има конвенции. За да СЕ ЗНАЕ. Т.е. когато функцията е от определен тип, компилаторът е ДЛЪЖЕН да ти пази регистрите.

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор