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

 
 
> Как заставить HiTech компилировать GOTO $+"смещение" вместо GOTO 0x"адрес", или как Си-шный код встроить в ассемблеровский
malysh_nrg
сообщение Dec 9 2010, 10:25
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 19-06-07
Пользователь №: 28 558



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

Может есть еще варианты встраивания? Заставить код лежать в двух проектах в одном месте
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
xemul
сообщение Dec 9 2010, 13:43
Сообщение #2



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(malysh_nrg @ Dec 9 2010, 13:25) *
Требуется перенести математику написанную на Си из одного проекта в другой проект, который написан на ассемблере.
Если удастся заставить компилятор HiTech делать вместо точного адреса перескока на относительное, возможно это поможет практически автоматизировать встраивание Си-шного кода в ассемблеровский.

Выделить математику в отдельный(-ые) .as файл(-ы). От $+ в ассемблерной вставке в .c у оптимизатора обычно сносит крышу.
Цитата
Может есть еще варианты встраивания? Заставить код лежать в двух проектах в одном месте

Задать имя программной секции
Код
// .c
#pragma psect text%%u=mytext
// .as
PSECT mytext, class=CODE, delta=2

и сказать линкеру, по какому адресу её разместить
Код
-L-Pmytext=...

Подробности, естесно, в мануале.
Привязываться к абсолютным адресам без крайней нужды крайне неправильно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 14:28
Рейтинг@Mail.ru


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