Перейти к содержанию
    

Использование регистров в ИАРе

Некоторые критичные ко времени функции нужно писать на асме. (+ не все можно реализовать на си/си++). Собственно как вызывать с си процедуры написанные на асме понятно, понятна и передача параметров (использую ИАР 3,20 / 4,10 ). Но остается вопрос: какие регистры можно "портить" и незаботится об их восстановлении, а какие нужно обязательно сохранять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Функции могут не заботиться о сохранении значений регистров R0–R3, R16–R23, и R30–R31 (EWAVR_CompilerReference.pdf, с.123).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Функции могут не заботиться о сохранении значений регистров R0–R3, R16–R23, и R30–R31 (EWAVR_CompilerReference.pdf, с.123).

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ksinet, обратите внимание также на то место в описании компилятора, где говорится о передаче функциям аргументов и получении от них результатов (C calling convention).

Хорошо с этим разобравшись (а это не сложно) можно писать эффективные смешанные программы asm/C/EC++ без необходимости инлайновых ассемблерных вставок, которые практически сводят на нет возможность оптимизации и затрудняют переносимость кода.

Кроме того, если Вы пишете на ассемблере обработчик прерывания, то сохранять нужно ВСЕ используемые регистры, не говоря уже о регистре состояния и иногда RAMPZ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ksinet, обратите внимание также на то место в описании компилятора, где говорится о передаче функциям аргументов и получении от них результатов (C calling convention).

Хорошо с этим разобравшись (а это не сложно) можно писать эффективные смешанные программы asm/C/EC++ без необходимости инлайновых ассемблерных вставок

....

 

Спасибо за совет. Обязательно прочитаю.

Насчет инлайна, то я практически никогда его не использую, это черевато многими неприятностями. Сейчас перехожу с КоддВижна на ИАР и поэтому приходится учитывать множество особенностей работы в последнем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...