Дык в стек ему суй по выходу адрес возврата какой захочешь
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
-=Shura=-
27 февраля 2004 г. 16:48
В ответ на:
MSP430F149. Есть одно важное условие: никаких ассемблерных вставок :(
отправлено Paramedic 27 февраля 2004 г. 16:46
Составить ответ
|||
Конференция
|||
Архив
Ответы
Спасибо, наверное так и придётся сделать.
—
Paramedic
(27.02.2004 16:58,
пустое
)
Опасно.
—
cout
(27.02.2004 16:58, 309 байт)
Чё за ерунда. Если надо вернуться к началу функции, то какая разница?
—
-=Shura=-
(27.02.2004 17:01,
пустое
)
Ну смотри(+)
—
cout
(27.02.2004 17:06, 247 байт)
Функция func() - это необязательно главная, она рядовая в общем случае. И глубоко в теле программы. Из нее и возвращаться,возможно,придется наверх. Не хочешь глюков - держи SP честно, сколько бы раз func() не вызывалось.
—
cout
(27.02.2004 17:11,
пустое
)
Смотри сюда: по выходу из прерывания mov #Func,2(SP)
—
-=Shura=-
(27.02.2004 17:09,
пустое
)
Лучше по шагам. Поподробнее.
—
cout
(27.02.2004 17:17,
пустое
)
Это ОДИН шаг
—
-=Shura=-
(27.02.2004 17:23, 223 байт)
Новая итерация func() начнется при сдвинутым SP? И func() будет крутиться дальше. Хорошо.Потом опять прерывание из асс. подпрограммы внутри func(). Возврат из прерывания опять со сдвигом SP.Уже накопление сдвига. До каких пор?
—
cout
(27.02.2004 17:30,
пустое
)
Тут согласен, ответил выше -=mse=-
—
-=Shura=-
(27.02.2004 17:32,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru