5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
1 | |
Ассемблирование в LInux21.12.2009, 00:36. Показов 6603. Ответов 19
Метки нет (Все метки)
0
|
21.12.2009, 00:36 | |
Ответы с готовыми решениями:
19
Разработать двухпросмотровый ассемблер, реализующий ассемблирование программ Ассемблирование программы в DosBox Раздельное ассемблирование для создания com-файла Ошибка Kernel driver not installed (rc=-1908) linux в VirtualBox (Linux Mint) |
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
21.12.2009, 00:48 | 2 |
Писать в редакторе, компилировать компилятором, линковать линкером. Все как в винде и досе.
0
|
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
21.12.2009, 16:29 [ТС] | 3 |
А как запустить компиляцию из строки (я просто не знаю).
Вот например в С: $ gcc file_name.c -o file_name1.c А на ассемблере как. Я не студент и подсказка нужна только потому, что спросить не у кого. Я не люблю спрашивать, кроме крайней необхрдимости. Спасибо!
0
|
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
|
||||||
21.12.2009, 16:30 | 4 | |||||
0
|
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
21.12.2009, 16:37 [ТС] | 5 |
В любых ли дистрибутивах прилагается nasm? Я сейчас использую Mandriva Linux 2008. Я вообще почему спрашиваю. Мне Linux привычнее. В ассемблере я новичок, но очень хочу изучить. В принципе мне всё равно где начинать, в Windows или Linux. Но в Винде пока всё соберешь в кучу. А Linux обычно в себе содержит всё, что надо (нужно только знать, где это найти).
0
|
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
|
|
21.12.2009, 16:44 | 6 |
В линуксе, как правило, все находится в репозиториях дистрибутива, поэтому далеко бегать не надо. В крайнем случае можно найти исходники и собрать из них.
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
21.12.2009, 16:52 | 7 |
Если вы собираетесь программировать на асме под линуксом, может быть вам сразу начинать с AT&T синтаксиса? В этом случае можно начать делая асм вставки в сишном коде и компилируя с помощью gcc.
0
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|
21.12.2009, 16:54 | 8 |
В любом случае в каждом дистре должен быть gas(команда as), но он использует AT&T-синтаксис, который намного менее распространён, чем интеловский.
P.S. Хм... у меня оказывается есть nasm Хотя может я сам его и поставил, не помню уже
0
|
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
21.12.2009, 17:05 [ТС] | 9 |
Дело в том, что учусь по "букварям", а там в основном всё рассматривается через призму Windows. А поскольку нет малейших навыков в ассемблере, то подскажите более конкретно набор инструментов для создания программы. О синтаксисе AT&T я ничего не знаю. В от в одной книге пишут: "Скачайте MASM или TASM, линковщик такой-то, отладчик такой-то. Уже в другой книге "не гарантируют, что не будет ошибок, если если использовать TASM". Эта неразбериха просто угнетает. Неужели действительно так трудно стать на позицию новичка и объяснить просто, что если хотите сделать программу, вам надо то-то и то-то, а всё остальное не от Бога. И потом, пишу (для Винды), "надо компилировать только в DOSе. Это как, должна стоять ОС DOS на компе, или эмулятор поверх Win XP? Очень много вопросов. Не хочется показаться тупым, но честно говоря, книги достаточной ясности не внесли.
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
21.12.2009, 17:11 | 10 |
Боюсь, что учебники для для доса/виндоса не помогут програмированию на асме в линуксе. Потому как оно отличается для каждой из ОС.
В винде есть встроеный эмулятор доса его вполне хватает для многих задач.
1
|
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
21.12.2009, 17:16 [ТС] | 11 |
То есть, не получится как с С/С++, что код одинаковый (в основном), отличается компиляция?
0
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|
21.12.2009, 17:20 | 12 |
Здесь простые примеры(+какие нужны инструменты и как компилировать) для gas и nasm под Lunix
http://la.kmv.ru/howto/quickstart.html
1
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
21.12.2009, 17:21 | 13 |
Если вы будете писать целиком программу на асме, то нет.
Хотя бы даже потому что, даже, чтобы на экран вывести надпись в досе используется 21h прерывание, в виндосе - апи функции, а в линуксе - сервис int 80h. Да еще и синтаксис у каждой программы-ассемблера немного отличается. Другое дело, если писать на нем не целиком программу, а только как вставки, например, для вычисления чего-нибудь и без вызова сервисов, то этот код должен будет работать на всех x86 машинах.
0
|
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
21.12.2009, 17:40 [ТС] | 14 |
First of all you need assembler (compiler) -- nasm or gas. Вот, опять-таки, какой из них лучше или как правильно спросить, есть ли разница какой применять, или это в зависимости от целей?
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|||||||||||
21.12.2009, 17:43 | 15 | ||||||||||
nasm - синтаксис Intel
0
|
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
21.12.2009, 18:02 [ТС] | 16 |
Значит, синтаксис Intel в nasm более универсален? Если функционально это ни на что не влияет, то наверное лучше изучать его. Тогда можно будет использовать его и для Linux Windows при необходимости. Или я не так понял?
0
|
21.12.2009, 18:28 | 17 |
gcc t.c -S -o t.s - из файла .c получаешь файл .s (ассемблерный)
gcc t.s -c -o t.o - получаешь объектный файл gcc t.o -o a.out - получаешь исполняемый файл Добавлено через 5 минут Без надобности лучше эти дела не перемешивать: под виндами делать так, как принято у виндузовщиков, под линухом писать так, как принято у линуксоидов. В своё время приходилось компилить какую-то программу, где буквально 10 строк они написали на ассемблере с каким-то экзотическим синтаксисом. Т.е. чтобы скомпилять эту программу, мне понадобилось ставить этот идиотский ассемблер, тот в свою очередь захотел какие-то библиотеки (тоже идиотские), эти библиотеки внутри себя содержали какой-то (идиотский) скрипт, требующий какой-то (идиотский) тул. И весь это секс только потому, что кто-то поленился 10 строк кода перевести на "принятый" в линухе формат ассемблерного написания
1
|
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
|
|
21.12.2009, 19:12 [ТС] | 18 |
Это же, соответственно и исполняемые файлы будут работать только в соответствующих ОС?
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
21.12.2009, 19:30 | 19 |
А вы видели программы, которые могут работать везде ?
0
|
21.12.2009, 20:27 | 20 |
Естественно. Когда ты пишешь программу на языке программирования, то вся платформо-зависимость спрятана в библиотеках
0
|
21.12.2009, 20:27 | |
21.12.2009, 20:27 | |
Помогаю со студенческими работами здесь
20
Подскажите ide c# под linux чтобы компилировался файл для linux Linux mint + win 8 + uefi + hibernate - пропал загрузчик linux Нужен компилятор под linux mint или linux ubuntu Разметка в Linux жесткого диска для дуалбут MS-DOS и Linux Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |