roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 июн 2025, 00:35

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Директивы асемблера
СообщениеДобавлено: 10 окт 2010, 21:24 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Расскажу сперва о ситуации. Мне в программе нужно опытным путем подобрать несколько коэффициентов. Я сейчас задаю их директивой equ
.equ P = $50 например. Мне вот что не нравится - каждый подбор коэффициента - это перепрошивка флеши, ресурс перепрошивок которой ограничен. Я хочу формировать файл коэффициентов в еепроме, записывать уже его, а потом оттуда тягать коэффициенты в программу. Проблема в том, что не хочется переписывать программу под использование конкретных регистров (сейчас то у меня просто имя коэффициента). Есть ли возможность присвоить символьному обозначению регистр (в который я считаю содержимое еепрома)?

ЗЫ. Асемблер авр, пишу в студии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Директивы асемблера
СообщениеДобавлено: 10 окт 2010, 21:52 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
DEF - Set a symbolic name on a register
The DEF directive allows the registers to be referred to through symbols. A defined symbol can be used in the rest of the program to refer to the register it is assigned to. A register can have several symbolic names attached to it. A symbol can be redefined later in the program.

Syntax:
.DEF Symbol=Register

Example:
.DEF temp=R16
.DEF ior=R0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Директивы асемблера
СообщениеДобавлено: 11 окт 2010, 06:09 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Я видимо несколько двусмысленно выразился. Конечно мне знакома директива def, более того - я ей активно пользуюсь. Проблема в том, что equ дает имя числу, с которым я работаю мнемониками, заканчивающимися на i (ldi, cpi). А def задает имя регистра, поэтому придется рихтовать код, что очень не хочется. Я на 99% уверен, что код рихтовать все-таки придется, но здесь есть люди поопытнее меня, поэтому и решил перед этим спросить - вдруг есть какой-нибудь хитрый способ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Директивы асемблера
СообщениеДобавлено: 11 окт 2010, 19:10 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Команды, заканчивающиеся на i, работают с константами, в этом их смысл. А константы на то и константы, что их значение должно быть известно на момент ассемблирования. Так что код полюбому менять, вставлять команды чтения из eeprom и потом загонять в нужные регистры...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO