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

работа со строками avr gcc

Насколько помню, ARM7TDMI не имеет специальных арифметических команд работы с байтами, потому все байтовые операции выполняются в 32 битах и в конце на результат принудительно накладывается маска.

Не важно какие арифметические команды имеет этот CPU. Так как это ядро не имеет арифметических (или логических) команд с операндами в памяти.

Любой операнд должен быть предварительно загружен в регистр, а результат операции - выгружен в ОЗУ соответствующими командами LDR/STR.

Команды LDR/STR имеют варианты для 8-,16- и 32-битных данных. И выполняются за одинаковое время.

Никаких масок на 8-битный результат накладывать не надо - можно сразу выполнить STRB.

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


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

Никаких масок на 8-битный результат накладывать не надо - можно сразу выполнить STRB.

Это если надо его записать в память. А если продолжить работу в регистрах, то придется.

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


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

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

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

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

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

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

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

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

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

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