реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Оптимизация чтение-модиф-запись
avr90
сообщение Jun 20 2008, 08:33
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 16-06-05
Пользователь №: 6 067



Кто знает, как в IARе сделать так чтобы команда
перемен++;
не приводила к такому коду:
LDR .....
ADD .....
STR .....

Разве нельзя загрузить адрес переменной в регистр и одной ассемблерной командой изменить переменную? Как это заставит сделать IAR?
Чтение-модификация-запись очень неудобна и может приводить к конфликтам при при использовании этой переменной в функциях, работающих по прерываниям.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 20 2008, 08:40
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Судя по всему речь идет про ARM
так вот ответ нельзя! см. "ARM Architecture Reference Manual"
Go to the top of the page
 
+Quote Post
Altemir
сообщение Jun 23 2008, 20:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Только сегодня бился с этой проблемой. Самым оптимальным решением оказался запрет прерываний, изменение регистра, восстановление прерываний. Но это у меня - использовалась такая конструкция всего в одном месте.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.0133 секунд с 7
ELECTRONIX ©2004-2016