|
|
  |
PC +/- … |
|
|
|
Apr 12 2011, 12:13
|

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

|
Цитата(Wise @ Apr 12 2011, 13:04)  ..А вообще, атмега - редкое фуфло.. Точно, поэтому бросьте затею с mega и работайте дальше с нетрыньдовым pic'ом у него команд меньше и все одной длины. Цитата Ага, в макросах - особенно! Много же там локальных меток можно наставить! Любая метка объявленная внутри макроса становится локальной. Поверено. Транслятор добавляет к имени метки @<имя макроса>@<уникальное число>. Цитата Спрошу интереса ради: какой-нибудь аврасм поновее не поддерживает ли временные метки? уникальности внутренних меток можно добиться если не скупиться на длину оной и выработать правило для отличия внутренних от внешних меток. Как для себя __ - значит внутренняя, потом первым словом копируется имя внешней метки и через двойное подчеркивание пишу имя локальной метки Код func1:
... __func1__do_this: ...
__func1__do_that: ..
|
|
|
|
|
Apr 12 2011, 14:14
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Apr 12 2011, 16:13)  уникальности внутренних меток можно добиться если не скупиться на длину оной и выработать правило для отличия внутренних от внешних меток. Как для себя __ - значит внутренняя, потом первым словом копируется имя внешней метки и через двойное подчеркивание пишу имя локальной метки В том-то и дело, что уникальность эта вкупе с чрезмерной длиной даром не нужна, только текст засоряет. Куда как удобнее было бы писать: Код 0 ... dec r16 brne %b0 ... brcs %f0 ... 0
|
|
|
|
|
Apr 12 2011, 15:46
|

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

|
Цитата(_Pasha @ Apr 12 2011, 19:01)  Например, mlasm был такой, см. стр.60 Прикольно, но как по мне, уж очень морочливо. Проще уж метку поставить. Тем более если Цитата(defunct) Любая метка объявленная внутри макроса становится локальной. Поверено. Ну и навсяк случ скачать последнюю версию компилятора.
|
|
|
|
|
Apr 13 2011, 04:07
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Вообще- то по правильному это Цитата LOCAL <список-локальных-меток> внутри макроса, и ессно до их использования. Тем самым пересечение имен исключается на корню
|
|
|
|
|
Apr 13 2011, 12:24
|

Гуру
     
Группа: Свой
Сообщений: 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 года, куда уже старше Цитата(Atmel) AVRASM: AVR macro assembler version 1.03a (Aug 26 1996 01:03:00) ВСЕ НОРМАЛЬНО. ВСЕ МЕТКИ ЛОКАЛЬНЫ. НИКАКИХ ЕРРОРОВ!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|