ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
50694 Топик полностью
iit (07.02.2006 11:45, просмотров: 1) ответил Romario на э..мм...я про модели стеков не понял. функция на asm? почему бы не воспользоваться соглашениями о calling convention?
Ответ: Я как раз про эти соглашения и говорю Функция написана на асме. В Си объявлена как внешняя функция с пятью входными параметрами (например int). Так вот когда Си передает в функцию пятый параметр, то использует для этих целей стек, портя при этом его содержимое. extern func2(...) main () { func1(); } func1() { func2(1,2,3,4,5); } Например при вызове функции func1() из main компилятор сохранил в стеке r0 таким образом ldmfd sp!,{r0} при этом указатель стека уменьшился на 1 слово. А когда эта скотина передает в func2 пятый параметр она делает следующее mov rx,#5 str rx,[sp] и получается что r0 по п...де пошел.