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

 
 
> С и asm-вставки, Локальные переменные
Xeon
сообщение Mar 30 2012, 06:05
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Всем доброго времени суток!!! Использую AVR Stidio 5. Написал программу и теперь надо её оптимизировать... некоторые расчёты уж компилятор сделал больно длинные (в смысле по количеству команд), хотя можно намного проще... Как мне известно локальные переменные обычно хранятся либо в стеке либо в регистрах... Вопрос следующий: как назначить переменной конкретный регистр или как узнать в каком регистре находится переменная, чтоб в дальнейшем иметь к ней доступ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MaxiMuz
сообщение Mar 30 2012, 12:17
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 15-04-10
Из: Волгоград
Пользователь №: 56 658



если всеже будет обьявлять регистровые переменные как "register uint16_t Tmp asm("r16");" или "register uint16_t Tmp __asm__(("r16"))" пишите перед этим квалификатор volatile , меньше ошибок с исчезновением операций будет.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 30 2012, 14:17
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (MaxiMuz @ Mar 30 2012, 15:17) *
пишите перед этим квалификатор volatile , меньше ошибок с исчезновением операций будет.
Вы в который раз топчетесь по одним и тем же граблям (уже однажды разбирали в одной из ваших веток, и вы сами смотрели листинг и убеждались). НЕ РАБОТАЕТ в gcc volatile register. В сообщении 30 той ветки было решение.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
MaxiMuz
сообщение Mar 31 2012, 07:12
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 15-04-10
Из: Волгоград
Пользователь №: 56 658



Цитата(Сергей Борщ @ Mar 30 2012, 17:17) *
НЕ РАБОТАЕТ в gcc volatile register. В сообщении 30 той ветки было решение.

как раз volatile решил проблему
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Xeon   С и asm-вставки   Mar 30 2012, 06:05
- - Dog Pawlowa   Цитата(Xeon @ Mar 30 2012, 09:05) Всем до...   Mar 30 2012, 06:23
- - Сергей Борщ   QUOTE (Xeon @ Mar 30 2012, 09:05) Вопрос ...   Mar 30 2012, 06:32
|- - Xeon   Нашел немного инфы по asm-вставкам здесь (может ко...   Mar 30 2012, 08:13
- - Xeon   Использую оптимизацию -Оs...   Mar 30 2012, 06:35
- - MaxiMuz   Чем отличается обьявление: Кодregister uint16_t Tm...   Mar 30 2012, 07:24
- - XVR   Судя по листигну компилятор не в курсе, что сущест...   Mar 30 2012, 08:35
- - Xeon   Тип процессора правильный, точно... Использую XMeg...   Mar 30 2012, 09:02
- - XVR   Вообще код странный. Там ни одного перехода нет, и...   Mar 30 2012, 09:16
- - Сергей Борщ   QUOTE (MaxiMuz @ Mar 30 2012, 10:24) Чем ...   Mar 30 2012, 09:22
- - Xeon   Привожу исходники: Немного опишу: первоночальная ...   Apr 1 2012, 05:59
- - XVR   А вы все таки откомпилируйте реальный код и посмот...   Apr 1 2012, 08:46
- - Xeon   Попробую... Да одна такая таблица получается) это ...   Apr 1 2012, 17:58
- - alexeyv   Перед тем как оптимизировать на асме, разберитесь ...   Apr 2 2012, 04:56
|- - Xeon   Цитата(alexeyv @ Apr 2 2012, 07:56) Спа...   Apr 2 2012, 07:46
|- - XVR   Цитата(Xeon @ Apr 2 2012, 11:46) Спасибо...   Apr 2 2012, 08:30
|- - alexeyv   Цитата(XVR @ Apr 2 2012, 14:30) На достат...   Apr 2 2012, 09:04
|- - =GM=   Цитата(XVR @ Apr 2 2012, 07:30) ... у вас...   Apr 2 2012, 09:19
- - Xeon   Возник следующий вопрос - как в на асме прочитать ...   Apr 6 2012, 08:46
- - alexeyv   1. pm не используется для вызова подпрограм. Для в...   Apr 9 2012, 03:56
- - fox2trot   Вообще то, при постановке вопроса следовало бы уто...   Apr 12 2012, 16:40


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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 15:29
Рейтинг@Mail.ru


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