ом многими рассматривается как извращение
Программирование на ассемблере под UNIX' ом многими рассматривается как извращение (http://www.wasm.ru/article.php?article=asmunixlot), граничащее со злостным преступлением, препятствующим переносу программы на другие платформы, даже если никакой перенос не планируется. Являясь колыбелью десятков языков, таких как C, Perl, Haskell, Lisp, Simula и AWK, UNIX поддерживает ассемблер лишь формально. Богатство средств разработки и нищета документации создают проблему даже для опытных программистов, впервые увидевших ассемблер еще на ZX-Spectrum (Электроника BK) и не расстававшихся с ним ни в MS-DOS, ни в Windows.
Классические трансляторы ассемблера (такие, например, как GAS – GNU Assembler) придерживается AT&T синтаксиса, совершенно несовместимого с "официальным" x86 синтаксисом, декларируемым самой фирмой Intel (достаточно сказать, что порядок операндов поменялся местами и всюду торчат эти жуткие суффиксы и префиксы #, $,%, l и проч. дребедень). Ну, тут можно и возразить, что AT&T-синтаксис появился в те "геральдические" времена, когда парни из Intel еще не слезли с деревьев. С другой стороны, в UNIX существуют множество трансляторов типа NASM'а и FASM'а, "переваривающие" привычный нам синтаксис, правда, не совпадающий ни с MASM'ом, ни с TASM'ом, а это значит, что прежде, чем начать программировать нам снова придется учиться!
Процесс обучения погружен в эротический полумрак, в котором, как и в первую ночь с женщиной, приходится действовать наугад. От изобилия сопутствующей литературы буквально рябит в глазах, но в большинстве случаев действие заканчивается там, где у нормальных людей процесс получения удовольствия только начинается. Отчаявшись найти нормальное руководство, мыщъх, махнул хвостом, и обобщив свой опыт ассемблерных похождений, попробовал заточить его сам. И вот что из этого получилось…