|
|
 |
Ответов
|
Apr 18 2014, 09:19
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 12-01-14
Из: Омск
Пользователь №: 80 002

|
Все, понял. Пробежался по ссылке выше (спасибо большое, кстати) и дошло. Команда B - не изменяет состояние регистра LR, поэтому при переходе от sub1 к sub2 он не изменится и можно будет через BX LR во второй программе на него вернуться. Спасибо за помощь.
|
|
|
|
|
Apr 18 2014, 11:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(toweroff @ Apr 18 2014, 17:50)  скажите, а в чем сакральный смысл такого подхода? Это оптимизация путём отрубания хвостов, или, выражаясь высоким штилем, устранение хвостовой рекурсии.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Apr 18 2014, 12:05
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(SSerge @ Apr 18 2014, 15:45)  Это оптимизация путём отрубания хвостов, или, выражаясь высоким штилем, устранение хвостовой рекурсии. но так вроде же оптимизатор сам должен это делать? UPD Сейчас специально проверил пример из ссылки. Вызов из main() одной функции, в ней переход B в рекурсивную, там вычисления все в простом цикле, после чего возврат из первой стандартно BX LR с сохранением результата в R0Keil 5.10, armcc 5.04.0.49
|
|
|
|
Сообщений в этой теме
Omnicake Возврат на основную программу из ассемблерной подпрограммы, вызванной еще одной асемблерной подпрограммой. Apr 18 2014, 07:05 demiurg_spb Цитата(Omnicake @ Apr 18 2014, 11:05) Здр... Apr 18 2014, 07:50 Omnicake Случай в рамке описывает сценарий, когда main тоже... Apr 18 2014, 08:13 SSerge Цитата(Omnicake @ Apr 18 2014, 14:05) То ... Apr 18 2014, 08:53 Omnicake Немного запутался...получается если у меня будет п... Apr 18 2014, 09:00 SSerge При вызове sub1 из main адрес возврата сохраняется... Apr 18 2014, 09:16 ViKo На C пишите, а в ассемблерный листинг глядите... Apr 18 2014, 09:20 andrewlekar Честно не знал, что компиляторы си умеют TCO. Тепе... Apr 20 2014, 15:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|