|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.06.2013, 19:35 | #1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Assembler в linux
Добрый вечер. Уже давно собираюсь, но все никак не соберусь начать изучение assembler под линукс(иными словами вернуться в этот раздел снова). Писал Hello World'ы но до полного углубления дело не доходило. Сейчас взялся и сразу на начальном этапе запутался. Дело вот в чем. Читая в некоторых статьях узнаешь, что программирование под ОС с Linux используются прерывания как в MS-DOS. В других говорится о невозможности такого программирования, ибо ядро грузится в защищенном режиме и прерывания не поддерживает. А ведь Hello World то работает. Отсюда вопрос: какая нынче мода в assembler'е под Linux? Как лучше взаимодействовать с ОС? Одинаковы ли прерывания с MS-DOS? Насколько сейчас актуальна книга Зубкова относительно Linux'а?
Заранее спасибо. |
30.06.2013, 19:49 | #2 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
В линуксе ДРУГИЕ прерывания плюс работа с библиотеками.
До кучи в нем нет тасма или масма, которые описываются во всех древних книгах по асму, а зачастую еще и страшный AT&T синтаксис. Ну и совсем до кучи, очень мало документации по програмированию на асм под линь.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4 Последний раз редактировалось Goodwin98; 30.06.2013 в 19:52. |
30.06.2013, 19:51 | #3 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
это самый простой способ уведомить ядро о чем то. в лине нет прерываний биоса, думаю имелось в виду это. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
30.06.2013, 20:00 | #4 | |||||
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Цитата:
Цитата:
Цитата:
Цитата:
http://hackermaycry.ru/?p=12 Цитата:
|
|||||
01.07.2013, 18:51 | #5 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Благодаря статье на хабре я нашел то, что искал. Номера системных вызовов можно найти в /usr/include/asm*/unistd.h. У меня в 64 разрядной системе имеется еще два файла unistd_32.h и unistd_64.h Самое интересное, что номера системных вызовов отличаются. Не могу понять почему,но это факт, о котором говорится по ссылке в четвертом пункте.
Возникла еще одна не очень страшная, но загвоздка. Не получается отлинковать файл 32 бита в 64 битной архитектуре. Дело происходит так Код:
Код:
P.S. Мне кажется, что я чего-то не понимаю из сообщения ld, вот только что именно... |
01.07.2013, 19:25 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в ld архитектуру то укажите.
помоему это target посмотрите через ld --help по умолчанию ld пытается слинковать в файл вашей разрядности. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
02.07.2013, 11:27 | #7 | |||
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Цитата:
Цитата:
Цитата:
|
|||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Небезынтересная задача (C++/Assembler, linux) | Archet | Общие вопросы C/C++ | 0 | 26.03.2012 22:21 |
нужна программа на Assembler под Linux на компиляторе gdb... | КатеринаКрамер | Помощь студентам | 2 | 30.12.2011 22:55 |
На компе Win 7 + Linux. Как переустановить Linux? | ssdm | Windows | 1 | 14.10.2011 17:54 |
Реализация функции strncpy на C и Assembler под Linux | nomad-shtainer | Помощь студентам | 0 | 26.12.2009 20:03 |
Linux на VMware....... WinXP <-> Linux | DMUTPUU | Операционные системы общие вопросы | 1 | 24.09.2008 12:03 |