[noonv@volodia noonv]$ pwd
/home/noonv/&asm
[noonv@volodia noonv]$ ls
assembler.txt
[noonv@volodia noonv]$ cat assembler.txt
Конечно под ОС Linux программы пишутся в основном на С ,но ассемблер никогда не следует списывать со счетов :) Ниже я привожу краткую информацию(так скзать советы =) которая ,как я надеюсь , поможет вам :

Во-первых если только начинаете изучать особенности ассемблера под *nix следует прочитать документацию Assembly-HOWTO .

2. Если использовать стандартные компиляторы , то придётся выучить новый синтаксис ассемблера от AT&T (который вовсе не так уж плох и создавался специально для избежания неоднозначностей в толковании команд) .

Мне же нравится свободно распространяемый ассемблер NASM (Netwide Assembler) который поддерживает синтаксис ассемблера от Intel .Документацию на русском можно скачать на сайте AsmOS (адрес в моих ссылках)

3. В Linux в отличие от стандарта системные вызовы осуществляются не дальним call по адресу 0007:00000000 , а вызовом прерывания 0x80 .

Номера системных прерываний находятся в файле /usr/include/asm/unistd.h

Ниже простейшая (и стандартная :) прогрмма (исходник взят из примеров к книге Зубкова "Assembler для DOS, Windows и UNIX")

// hellolnx.s
// Пpогpамма, выводящая сообщение "Hello World" на Linux
// без использования libc
//
// Компиляция:
// as -o hellolnx.o hellolnx.s
// ld -s -o hellolnx hellolnx.o
//
.text
.globl _start
_start:
// системный вызов #4 "write". параметры в Linux помещают, слева направо,
// в регистры %eax, %ebx, %ecx, %edx, %esi, %edi
movl $4,%eax
xorl %ebx,%ebx
incl %ebx
// %ebx = 1 (идентификатор stdout)
movl $message,%ecx
movl $message_l,%edx
// передача управления в ядро системы - прерывание с номером 80h
int $0x80

// системный вызов #1 "exit" (%eax=1, %ebx=0)
xorl %eax,%eax
incl %eax
xorl %ebx,%ebx
int $0x80
hlt
.data
message:
.string "Hello world\012"
message_l = .-message


и последнее . В дополнение ко всему выше сказанному ссылки на сайты :

http://la.kmv.ru .............................................. Linux Assembly
[noonv@volodia noonv]$
 
Хостинг от uCoz