Assembler для Linux и его особенности
-
- Увлекающийся
- Сообщения: 90
- Зарегистрирован: 01 мар 2004, 20:05
- Откуда: г. Брест
- Контактная информация:
Assembler для Linux и его особенности
Народ, подскажите, где скачать компилятор asm'a для Linux. Или он есть сразу в дистрибутивах..?
На зеркало неча пенять, коль рожа крива.
nrg_flavour, gcc = gnu compiller collection. Для работы его требуется пакет binutil - в нем есть
Код: Выделить всё
AS(1) GNU Development Tools AS(1)
NAME
AS - the portable GNU assembler.
Опыт растет прямо пропорционально выведенному из строя оборудованию
на nix принято расширение .s и .S для ассемблерных
файлов. Если подсунуть такой файл gcc он будет ассемблировать.
После прочтения info (рекомендую обратить внимание на
опцию -masm) попробуй gcc -S на какой нибудь C'шной
программе.
Тебя так же может заинтересовать nasm.
Кроме того в коллекции HOWTO был и по асму.
файлов. Если подсунуть такой файл gcc он будет ассемблировать.
После прочтения info (рекомендую обратить внимание на
опцию -masm) попробуй gcc -S на какой нибудь C'шной
программе.
Тебя так же может заинтересовать nasm.
Кроме того в коллекции HOWTO был и по асму.
В целом всё уже достаточно подробно описано выше. От себя могу добавить, что gcc способен компилировать и ассемблерный код. Но nasm поддерживает intelоподобный синтаксис, а gcc AT&Tишный. Кроме того можно воспользоваться as86 из binutils.
С уважением Afi
С уважением Afi
Ну какая работа со строками может быть в языке, название которого является не строкой, а символом? (c) Sergue E. Leontiev
Скиньте или дайте ссылку учебника для асма под линукс. пожалуста.
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 уважением, Александр.
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 уважением, Александр.