Отправляет email-рассылки с помощью сервиса Sendsay

how coding

Подскажите с чего начать? Хочется научиться программировать на
ассемблере, но я слышал, что у каждого ассемблера свой язык. У меня есть
книжка по a86 (ассемблер 2003 гожа под dos/windows). А с чего начать в
Линуксе, nasm, as... Без понятия! Наверно этот вопрос стоит больше
отнести к Колотову Александру! Буду благодарен вашей помощи!

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 17401; Возраст листа: 614; Участников: 1350
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/342215

Ответить   Wed, 30 Mar 2005 09:09:19 +0400 (#342215)

 

Ответы:

Скорее, у каждого процессора свой ассемблер :)

NASM - ассемблер для x86-процессоров с синтаксисом, приблизительно совместимым
(но не полностью совместимым!) с MASM-ом или TASM-ом. Если такой
синтаксис привычен, то лучше использовать NASM. AS - ассемблер с
совершенно другим синтаксисом, НО AS, AFAIK, единственный ассемблер,
признаваемый Линусом Торвальдсом :) , поэтому весь ассемблерный код в
ядре написан на AS-ассемблере, а значит, его тоже неплохо бы изучить :)

Насчет книжек по ассемблеру под линукс... :-? Тут уж не знаю... сорри

foobar2000 v0.8.3 Сейчас играет Sidney Bechet [Jazz History Vol.1 - Boogie Blues
& Bop 1939-1955][02] - Summertime

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 17403; Возраст листа: 614; Участников: 1350
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/342225

Ответить   Wed, 30 Mar 2005 11:24:51 +0600 (#342225)

 

Господа, ещё раз:

эту тему переносим в
http://subscribe.ru/catalog/comp.soft.linux.debate
(она там уже идет)
или в личку

Ответить   Xinus Wed, 30 Mar 2005 20:50:17 +0400 (#342586)

 

я ни капельки не кодер на асме (хотя лет пять назад был положительный
опыт общения с этим языком, правда под DOS)... просто у меня возник
вопрос - я на него пытлся найти ответ.

А так - вот ссылки:
http://wasm.ru/print.php?article=asmunixlot
http://volgograd.lug.ru/wiki/GrableVodstvo/articles/AssembleInLinux/AssemblyHowtoFaq
http://www.iakovlev.org/ (Раздел Languages - Asm)
http://pclub.net.ru/forum/index.php?s=d21d9157f3a3412b25b1ff2d77656bb3&act=Print&client=printer&f=20&t=159
http://asmdev.narod.ru/asmos/docs.html

Ответить   Wed, 30 Mar 2005 09:39:36 +0400 (#342231)

 

Приветствую!

В Срд, 30.03.2005, в 09:09, webus пишет:


Для начала. У каждой машины свой набор команд и потому можно сказать,
что свой ассемблер. Это так, чтобы напомнить, что существует не только
x86, да и внутри этого семейства всяких команд можно понаходить у разных
процессоров. :) При этом нет ассемблера под DOS/Windows/GNU+Linux...
Ассемблер он один для конкретной машины. А уж будете вы использовать
вызовы DOS, Windows, GNU/Linux, или заберетесь в ядро Linux со своим
модулем и сделаете НЕЧТО - вопрос отдельный. :)

А вот дальше начинается возня вокруг синтаксиса ассемблера для
конкретной архитектуры/архитектур. Одни говорят, что проще и удобнее
писать $вот_так, другие - $вот_этак.

Конкретно касаясь x86 под Linux есть выбор ассемблеров, но основные два
претендента будут NASM и GAS (он же просто AS). NASM следует синтаксису
Intel, но делает его еще проще. Вообще, писать под NASM достаточно
просто и удобно. GAS следует синтаксису AT&T и огромный плюс этого в
том, что GAS может работать с разными архитектурами, а синтаксис
остается один. Хотя команды, естественно, меняются.

Что выбирать - синтаксис Intel или AT&T, дело вкуса и привычки. Хотя для
меня очевидны две вещи - в AT&T "человеческий" порядок операндов, то
есть сначала что, а потом куда. С другой стороны можно сказать, что
обратный порядок у Intel это не баг, а фича - такой порядок будет в
самой сгенерированной инструкции. Вторая вещь касается адресаций и тут
ясно одно - в NASM проще и нагляднее. Подробнее вот тут:

http://sig9.com/articles/att-syntax

Хотя самый забавный пример стоит привести отдельно:

GAS memory operand NASM memory operand
%es:100(%eax,%ebx,2) [es:eax+ebx*2+100]

Вообще, я бы порекомендовал изучать синтаксис AT&T и использовать GAS,
потому как этот синтаксис отлично ложится на множество платформ, да и
подглядывать в исходники Linux можно будет со знанием дела. :-)

Только не удивляйтесь, если программисты под MASM/TASM/NASM/FASM будут
смотреть на вас со слегка ошалевшим взглядом - ну разные синтаксисы, что
поделать, хотя суть та же.

Почитать можно прекрасный документ Assembly-HOWTO, который обязательно
должен лежать где-нибудь около "/usr/share/doc/howto/en/txt", ну или в
Google по названию документа поищите. Intel Developer Manual также
неплохо почитать (только его много, так что аккуратнее, то есть
выборочно :)). Правда, все это на аглицком языке. Есть еще довольно
толковый сайт wasm.ru, но там я документов про/с использованием GAS не
заметил. С другой стороны - не очень сильно искал.

Удачи!

--
Roman.
http://www.3os.ru/ http://www.osrc.info/
gpg --recv-keys 0xE5E055C3

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 17412; Возраст листа: 614; Участников: 1350
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/342314

Ответить   Roman I Khimov Wed, 30 Mar 2005 12:20:51 +0400 (#342314)