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

 
 
12 страниц V  < 1 2 3 4 > »   
Closed TopicStart new topic
> PC +/- …
defunct
сообщение Apr 12 2011, 12:13
Сообщение #16


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Wise @ Apr 12 2011, 13:04) *
..А вообще, атмега - редкое фуфло..

Точно, поэтому бросьте затею с mega и работайте дальше с нетрыньдовым pic'ом у него команд меньше и все одной длины.


Цитата
Ага, в макросах - особенно! Много же там локальных меток можно наставить!

Любая метка объявленная внутри макроса становится локальной. Поверено.
Транслятор добавляет к имени метки @<имя макроса>@<уникальное число>.

Цитата
Спрошу интереса ради: какой-нибудь аврасм поновее не поддерживает ли временные метки?

уникальности внутренних меток можно добиться если не скупиться на длину оной и выработать правило для отличия внутренних от внешних меток.
Как для себя __ - значит внутренняя, потом первым словом копируется имя внешней метки и через двойное подчеркивание пишу имя локальной метки
Код
func1:

  ...
__func1__do_this:
  ...

__func1__do_that:
   ..
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 12 2011, 12:17
Сообщение #17


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(defunct @ Apr 12 2011, 15:13) *
Любая метка объявленная внутри макроса становится локальной. Поверено.

С какой версии?
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 12 2011, 12:22
Сообщение #18


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(_Pasha @ Apr 12 2011, 15:17) *
С какой версии?

AVRASM: AVR macro assembler 2.1.42 (build 1796 Sep 15 2009 10:48:36)
Да и в более старых так было.

"С" какой именно версии - не отслеживал, но предположу что с очень древней, потому как, как начал пользовать макросы, так они себя и вели и ничего не менялось.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 12 2011, 12:31
Сообщение #19


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(defunct @ Apr 12 2011, 15:22) *
Да и в более старых так было.

Наверняка оно в старых не работало. По этой причине макросы 16/32 битных операций образца 1999 - 2000 года были написаны без меток, с РС+N, и далее вопрос больше не подымался. Узнаю все больше нового.
Go to the top of the page
 
+Quote Post
Wise
сообщение Apr 12 2011, 14:08
Сообщение #20


Пользователь забанен
*****

Группа: Свой
Сообщений: 1 138
Регистрация: 9-08-05
Пользователь №: 7 492



Цитата(defunct @ Apr 12 2011, 19:13) *
Точно, поэтому бросьте затею с mega и работайте дальше с нетрыньдовым pic'ом у него команд меньше и все одной длины.

Да рад бы.. rolleyes.gif

..А если написал, что атмега - фуфло, значит, есть аргументы.


--------------------
It's me
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 12 2011, 14:14
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Apr 12 2011, 16:13) *
уникальности внутренних меток можно добиться если не скупиться на длину оной и выработать правило для отличия внутренних от внешних меток.
Как для себя __ - значит внутренняя, потом первым словом копируется имя внешней метки и через двойное подчеркивание пишу имя локальной метки

В том-то и дело, что уникальность эта вкупе с чрезмерной длиной даром не нужна, только текст засоряет.
Куда как удобнее было бы писать:
Код
0
    ...
    dec     r16
    brne   %b0
    ...
    brcs    %f0
    ...
0

Go to the top of the page
 
+Quote Post
zombi
сообщение Apr 12 2011, 14:51
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Интересно как сие решается у других процов (длина команды у которых может быть разной)?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 12 2011, 15:01
Сообщение #23


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(zombi @ Apr 12 2011, 17:51) *
Интересно как сие решается у других процов (длина команды у которых может быть разной)?

Например, mlasm был такой, см. стр.60
Go to the top of the page
 
+Quote Post
zombi
сообщение Apr 12 2011, 15:46
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(_Pasha @ Apr 12 2011, 19:01) *
Например, mlasm был такой, см. стр.60

Прикольно, но как по мне, уж очень морочливо.
Проще уж метку поставить.
Тем более если
Цитата(defunct)
Любая метка объявленная внутри макроса становится локальной. Поверено.

Ну и навсяк случ скачать последнюю версию компилятора.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 13 2011, 04:07
Сообщение #25


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Вообще- то по правильному это
Цитата
LOCAL <список-локальных-меток>

внутри макроса, и ессно до их использования.
Тем самым пересечение имен исключается на корню
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 13 2011, 04:33
Сообщение #26


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

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(Wise @ Apr 12 2011, 18:08) *
..А если написал, что атмега - фуфло, значит, есть аргументы.
блин, а мужики-то и не знают... biggrin.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Apr 13 2011, 04:52
Сообщение #27


.
******

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



Да, да. Атмегой плохо орехи колоть получается sm.gif


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 13 2011, 05:12
Сообщение #28


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(aaarrr @ Apr 12 2011, 14:41) *
Спрошу интереса ради: какой-нибудь аврасм поновее не поддерживает ли временные метки?
За поновее не скажу, ибо с AVRASM лет 8 назад завязал, окромя крайне редких gnu-тых макро-асм вставок.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 13 2011, 06:19
Сообщение #29


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

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(demiurg_spb @ Apr 13 2011, 09:12) *
За поновее не скажу, ибо с AVRASM лет 8 назад завязал, окромя крайне редких gnu-тых макро-асм вставок.
вроде твердо помню: не поддерживал атмеловский ассемблер локальных меток в макросах... но вот под впечатлением от прочитанной темы взял и попробовал: гад, поддерживает! с какой именно версии стал поддерживать - не выяснил, но в ассемблерах (1 и 2 версий), идущих со студией 4.18 все метки в макросах являются локальными... в дизассемблированном коде переходы делаются правильно, ни ошибок ни варнингов о переопределении меток не выдается. чудеса! wacko.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
zombi
сообщение Apr 13 2011, 12:24
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ARV @ Apr 13 2011, 10:19) *
вроде твердо помню: не поддерживал атмеловский ассемблер локальных меток в макросах...

С чего Вы это взяли???

Специально тест написал:
CODE
;
.listmac
;--------------------------
.MACRO AAA
RJMP M2
M0: RJMP ME
M1: RJMP M0
M2: NOP
RJMP M1
ME: NOP
NOP
.ENDM
;--------------------------
;
CLI
RJMP RESET

.ORG $100

RESET: AAA
AAA
AAA
RJMP RESET


и странслировал двумя новыми AVRASMами:
Цитата(Atmel)
AVRASM: AVR macro assembler 1.77.3 (Nov 3 2009 14:11:39)
AVRASM: AVR macro assembler 2.1.42 (build 1796 Sep 15 2009 10:48:36)

и даже откопал 1996 года, куда уже старше biggrin.gif
Цитата(Atmel)
AVRASM: AVR macro assembler version 1.03a (Aug 26 1996 01:03:00)

ВСЕ НОРМАЛЬНО. ВСЕ МЕТКИ ЛОКАЛЬНЫ. НИКАКИХ ЕРРОРОВ!
Go to the top of the page
 
+Quote Post

12 страниц V  < 1 2 3 4 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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