roboforum.ru

Технический форум по робототехнике.

Директивы асемблера

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Директивы асемблера

Сообщение Radist » 10 окт 2010, 21:24

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

ЗЫ. Асемблер авр, пишу в студии.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Директивы асемблера

Сообщение Michael_K » 10 окт 2010, 21:52

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
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Директивы асемблера

Сообщение Radist » 11 окт 2010, 06:09

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

Re: Директивы асемблера

Сообщение boez » 11 окт 2010, 19:10

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


Вернуться в Микроконтроллеры

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12