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

 
 
> Как заставить 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
Ответов (1 - 3)
Vlad27
сообщение Dec 9 2010, 13:29
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 31-07-05
Из: Полоцк Беларусь
Пользователь №: 7 227



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

Может есть еще варианты встраивания? Заставить код лежать в двух проектах в одном месте


А опцию компилятора Generate relocatable code пробовали?
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 9 2010, 13:43
Сообщение #3



*****

Группа: Свой
Сообщений: 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
Danis
сообщение Dec 9 2010, 18:38
Сообщение #4


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(malysh_nrg @ Dec 9 2010, 14:25) *
Требуется перенести математику написанную на Си из одного проекта в другой проект, который написан на ассемблере.

Что за математика?, что ее на ассемблере нельзя написать?


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post

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

 


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


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