Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Ошибка в макросе


Автор: 6u3oH 1.4.2007, 16:11
Ошибка при компиляции :Symbol already different  XXX  штук 100. Собственно есть файл с макросами и файл куда он включается.  В макросах как положено метки обозначены в LOCAL чтобы не дублировалось в памяти. В других местах данные метки не встречаются. Подскажите пожалуйста в чем может быть ошибка (PS точно не  днк smile  ). 

Автор: Evjeny 7.4.2007, 16:03
6u3oH решение Вашей проблемы следующее: директиву LOCAL необходимо размещать непосредственно за заголовком макрокоманды:
Код

...
MovSR  MACRO    R,S,i    ; пересылка S[i] -> R
LOCAL    StR, kon , no1, no2     ; локальные метки
;пересылка побитовая, начиная с последних бит S[i] от конца к началу
...


Аналогично поступаем и с макрокомандой MovRS:
Код

...
MovRS  MACRO    S,R,i        ; пересылка R -> S[i]
LOCAL    RtoS,konn,m1xx,m0xx,toXORR,no11,no22 ; локальные метки
; копирование побитовое, начиная с последних бит R от конца к началу
; если копируемый бит R совпадает с соотв. битом S[i], то нет копирования,
; если биты не совпадают, то инвертируется соотв. бит S[i]
...


И ещё совет, не используйте в качестве метки str. Это зарезервированное слово.

 smile

Автор: 6u3oH 10.4.2007, 13:25
Спасибо,  попробую

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)