|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
||||||||||||||||
GAS/AT&T Раздельная компиляция22.10.2019, 18:15. Показов 7665. Ответов 32
Метки binutils, entry, entry point, ld, linker, symbol, undefined reference, компоновка, объектный модуль (Все метки)
помогите пожалуйста понять как надо правильно сделать.
первый файл под названием f.s
второй файл f2.s
0
|
||||||||||||||||
| 22.10.2019, 18:15 | |
|
Ответы с готовыми решениями:
32
раздельная компиляция Раздельная компиляция
|
|
Модератор
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27.10.2019, 17:07 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Остальной код вызывающего модуля к делу не относится.
Что будет делать вызываемый код, когда получит управление, тоже не важно. Если мы знаем, каким символом обозначена точка входа в вызываемую функцию в объектном модуле, умеем передавать параметры, получать возвращаемое значение и т.п., то нет большой разницы, на каком языке написан вызываемый модуль: на фортране, бейсике,паскале или с++, если компилятор умеет создавать объектные модули в формате, который понимает ld.Для оформления точки входа воспользуемся Вашей хитростью. Пишем empty.pas
Смотрим, что по этому поводу компилятор написал в асмовском исходнике
![]() Добавлено через 41 минуту Новая рабочая версия. первый
второй аналогично
![]() Добавлено через 25 минут Компонуем наш пинг-понг, проверяем, запускаем, тестируем и отлаживаем...
Останавливаем. Запускаем отладчик.
Ctrl+C
set disassemble-next-line onи смотрим, как программа циклится
![]() lay asmlay reg
3
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Модератор
|
||||||
| 28.10.2019, 08:32 | ||||||
|
Не по теме: Ближе к теме раздела Как это используется в linux. Макрос для точки входа или данных, к которым обращается код из других файлов https://git.kernel.org/pub/scm... h=v5.4-rc5
https://git.kernel.org/pub/scm... h=v5.4-rc5
3
|
||||||
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
|
| 28.10.2019, 19:41 [ТС] | |
|
зачем паскаль? посмотреть сделав gcc file -S я могу и без помощи форума. попросил написать пример функции на Gas в одном файле,который вызывается из программы в другом файле. написали не то что просил, а после будут говорить, что ничего не понимаю. что мне тут уже тонну примеров дали.
сотый раз прошу: пожалуйста ,не пишите то что хочется вам , а не то что просят.
0
|
|
|
Модератор
|
|
| 28.10.2019, 21:48 | |
Сообщение было отмечено pcmax как решение
Решение
Форум для того, чтобы общаться, обсуждать интересующие нас вопросы. Вы написали, я написал, он написал, она написала - вот и поговорили!
![]() Посмотреть в linux'e Вы могли и без Форума, верно? Асмовских исходников там достаточно, хоть большая часть ядра и написана на Си. Как-то же весь этот асмовский код должен вызываться, иначе зачем его писать?! Можете придложить Ваш вариант кода в первом и втором файле. Попробуем собрать и обсудить, что Вас в нём не устраивает и чем. У других участников Форума когда-нибудь могут возникнуть похожие вопросы, они наткнуться на наше обсуждение и, возможно, почерпнут что-нибудь полезное для себя.
3
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||||||||||||
| 29.10.2019, 01:21 | ||||||||||||||||
Сообщение было отмечено pcmax как решение
Решение
Файл lib.s:
6
|
||||||||||||||||
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
|
| 29.10.2019, 14:13 [ТС] | |
|
тут да)))) это была реальная помощь
0
|
|
|
Модератор
|
||
| 29.10.2019, 14:16 | ||
|
2
|
||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||
| 30.10.2019, 21:33 | ||
|
Вот задай сам себе и ответь сам себе на такие вопросы : 1.) Почему в моем коде из первого сообщения топика дикая мешанина 32-разрядного и 64-разрядного ? Почему я использовал 64-разрядный регистр и вызов системной функции от 32-разрядного Linux ? Почему у меня даже вопроса не возникло будет ли пытаться gcc накомпилировать 32-разрядный код или 64-разрядный ? Почему ошибка f.s:5: Error: bad register name `%r0' мне не подсказала ничего ? Почему я не задумался почему gcc слыхом не слыхивал про регистр r0 ? Не потому-ли, что в 32-разрядном режиме такого регистра действительно нет ? А что надо gcc сказать чтобы он про этот регистр слыхивал ? 2.) Почему я не сделал метку foo .globl ? Как я представляю себе компоновку объектных файлов ? Может я ее вообще не представляю ? Может пора запредставлять ? Почему я не понимаю что без директивы .globl в объектном файле не будет никакой информации о метке foo и вызов на эту метку из другого объектного файла скомпоноваться не сможет ? Если ты не начнешь сам себе задавать такие вопросы, для тебя все программы так и будут делиться на - не понятно почему работающие - не понятно почему не работающие и тебе постоянно придется клянчить не понятно почему работающий образец.
4
|
||
|
Модератор
|
|
| 31.10.2019, 08:40 | |
|
А может быть авторский код представляет собой инсталляцию современного искусства
и вообще не предназначен для выполнения какой-либо машиной с существующей или перспективной архитектурой. Чувства добрые он кодом пробуждал...
1
|
|
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
||
| 31.10.2019, 14:41 [ТС] | ||
|
0
|
||
|
Модератор
|
|
| 31.10.2019, 15:28 | |
|
В программе, которой Вы время от времени пользуетесь, под гигабайт таких кирпичиков.
https://www.kernel.org/ Качаете любимую версию и изучаете все эти *.S и *.с ![]() Или прямо на сайте, если не терпится, куча примеров для всевозможных архитектур https://git.kernel.org/pub/scm... h=v5.4-rc5 https://git.kernel.org/pub/scm... h=v5.4-rc5 https://git.kernel.org/pub/scm... h=v5.4-rc5
0
|
|
| 31.10.2019, 15:28 | |
|
Раздельная компиляция Раздельная компиляция Шаблоны и раздельная компиляция Раздельная компиляция и шаблоны Раздельная компиляция и шаблоны Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|