[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 // системный вызов #1 "exit" (%eax=1, %ebx=0)
|
http://la.kmv.ru .............................................. Linux Assembly |
[noonv@volodia noonv]$ |