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

 
 
> Абсолютный и относительный переход из макроса.
Alt.F4
сообщение Aug 27 2011, 19:47
Сообщение #1


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

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Добрый день.
Где можно прочесть про переходы из макросов?
Недавно наткнулся на форум, где писали, что абсолютный переход не работает в макросе. Раньше никогда о таком не слышал.
Спасибо.
З.Ы.
абсолютный - call, jmp (PC -> k)
относительный - rcall, rjmp (PC -> PC+k)

Сообщение отредактировал Alt.F4 - Aug 28 2011, 06:47
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Aug 28 2011, 09:40
Сообщение #2


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(Alt.F4 @ Aug 28 2011, 02:47) *
Где можно прочесть про переходы из макросов?

А вот хотя бы начиная со следующей строки.
Самое главное: макросы это механизм генерации текста программы. Т.е. в результате работы макроассемблера первым делом происходит изменение именно текста программы, макровызов в исходном тексте заменяется на текст макрорасширения и этот текст далее скармливается ассемблеру для дальнейшей обработки.
А уж какие там переходы, относительные или абсолютные, по-барабану. Сможете написать макрос так, чтобы в макрорасширении получить строчку с нужными буквами - будут у Вас переходы.

Чаще проблемы возникают не собственно с командами перехода, а с метками. В некоторых недо-макро-ассемблерах есть проблема генерации уникальных локальных меток (в тексте макрорасширения), ведь если макро вызывается несколько раз нужно каждый раз сгенерировать разные метки, а у этих уродцев все метки глобальные, локальные отсутствуют как класс.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 18:31
Рейтинг@Mail.ru


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