Страница 1 из 2

Assembler для Linux и его особенности

Добавлено: 01 мар 2004, 20:17
Raiser
Народ, подскажите, где скачать компилятор asm'a для Linux. Или он есть сразу в дистрибутивах..?

Добавлено: 01 мар 2004, 20:27
Llama
nrg_flavour, ну я думаю что в комплекте с gcc есть.

Добавлено: 01 мар 2004, 20:30
Raiser
И компилироваться должно как обычно: не важно, на каком языке написано?
т.е. $ gcc [] <>.asm ? -- так что-ли?

Добавлено: 01 мар 2004, 20:46
Raiser
...И, вообще, будут ли они *.asm ???

Добавлено: 01 мар 2004, 21:00
Llama
nrg_flavour, gcc = gnu compiller collection. Для работы его требуется пакет binutil - в нем есть

Код: Выделить всё

AS(1)                              GNU Development Tools                             AS(1)
 
NAME
       AS - the portable GNU assembler.
 

Добавлено: 01 мар 2004, 21:07
Raiser
Спасибо.
Тогда ещё один вопрос: где можно найти инфо по gcc (ключи, поддерживаемые языки и т.п.) ? Киньте ссылку.

Добавлено: 01 мар 2004, 21:27
Llama
nrg_flavour,
/usr/share/doc
man info
ессно желательно ставить пакеты с документацией...

Добавлено: 01 мар 2004, 22:06
Гость
на nix принято расширение .s и .S для ассемблерных
файлов. Если подсунуть такой файл gcc он будет ассемблировать.
После прочтения info (рекомендую обратить внимание на
опцию -masm) попробуй gcc -S на какой нибудь C'шной
программе.

Тебя так же может заинтересовать nasm.

Кроме того в коллекции HOWTO был и по асму.

Добавлено: 01 мар 2004, 22:20
Гость
Рад, что тема привлекла внимание.
Все советы приму к сведению. Чувствую себя хуже ламера!

Добавлено: 02 мар 2004, 22:37
kostaLom
По-моему синтаксис у as и nasm отличаются: у кого-то intel'овский, у кого-то at&t

Добавлено: 08 мар 2004, 21:14
red f0x
В целом всё уже достаточно подробно описано выше. От себя могу добавить, что gcc способен компилировать и ассемблерный код. Но nasm поддерживает intelоподобный синтаксис, а gcc AT&Tишный. Кроме того можно воспользоваться as86 из binutils.

С уважением Afi

Добавлено: 08 мар 2004, 21:28
Llama
имею учебник по программированию на сабже под линух - pdf, english

Добавлено: 10 мар 2004, 01:32
red f0x
А сколько весит? На мыло его швырнуть низя? (Если можно, то с радостью словлю)

Добавлено: 11 мар 2004, 14:56
imp3
Llama писал(а):имею учебник по программированию на сабже под линух - pdf, english
И мне, и мне, и того и другого, и можно без хлеба.

Добавлено: 01 июн 2004, 21:16
Гость
Скиньте или дайте ссылку учебника для асма под линукс. пожалуста.
ab_fatal@mail.ru


И для тех кто интересовался компилятором:
пишешь код в текстовом редакторе, далее
Все что я пишу относится только к синтаксису AT&T (в другом синтаксисе, т.е. писать под Linux просто глупо, т.к. все исходники в Linux c расширением *.s (можете поискать по поиску в каталоге /usr) написаны в синтаксисе AT&T. И если вы будете писать в синтаксисе Intel то вы там ничерта не разберете)

gcc -g -o name2 name1.s ключ -g для отладки в DBG (DDD)
gcc -o name2 name1.s не для отлаки
gcc -s name1.s вроде ключ -s или -c это получение объектного файла

при данной компиляции в коде должна быть функция main как в Си и она должна быть видна компоновщику, т.е.

.text //секция код
.globl main */делаем видимой для всех модулей и для компоновщика*/

main:
пиши код
.data// секция данных

далее

as -0 name2.o name1.s
ld -s -o name3

это чисто для ассемблера, есть одно но. Главная функции здесь должна быть обязательно _start, т.е
.text
.globl _start
_start:
...


Я тоже начинающий ассемберовщик под *inux системы, будем разбираться дальше.
Если кто знает хороший отладчки для асма или как в DBG(DDD) просматривать память напишите. Я знаю как отлаживать в (DBG)DDD встроеном отладчике, но там нельзя просматривать дампы памяти и это очень плохо.


Для расширения кругозора
AT&T American Telephone and Telegraph
C уважением, Александр.