Компилятор gcc — далеко не самая удобная вещь. В частности, когда дело касается ассемблерных вставок. Вы помните, сколько \n\t пришлось написать. Когда речь идет о передаче параметров в ассемблерную вставку и возврате значения, все становится еще муторнее (сюды читать)… Не то, чтобы неподъёмно, но не интересно.
Для написания фунции int copyContext(int) мы воспользуемся другим способом ассемблеро вставления, а именно подключением функций на языке ассемблера (читать сюды).
Создадим в нашей пользовательской библиотеке файлы MirmPS_assemf...
В предыдущих статьях мы познакомились с тем,какие типы памяти есть в микроконтроллерах и как эта память организована. Во внеплановой статье "Микроконтроллеры для начинающих. Часть 7. Внеплановая. Адресные пространства и шины" я более подробно, чем планировал ранее, рассказал об отличиях пространства памяти данных и пространства ввода-вывода. Может показаться, что мы уже полностью разобрались с памятью и можем переходить к изучению команд процессора. Но это не совсем так, мы еще не касались вопроса адресации операндов...