[EXT] Все для программиста! |
|
|
Расширенный ассемблер: NASM
1.1 Что такое NASM?Расширенный ассемблер NASM – это 80x86 ассемблер, разработанный исходя из принципов переносимости и модульности. Он поддерживает широкий диапазон форматов объектных файлов, включая форматы Linux a.out и ELF, NetBSD/FreeBSD, COFF, Microsoft 16-bit OBJ и Win32. Он способен также создавать простые бинарные файлы. Синтакс NASM максимально упрощен для понимания и похож на синакс Intel, но слегка посложнее. Он поддерживает инструкции Pentium, P6 и MMX, а также имеет макро-расширения. 1.1.1 Зачем еще один ассемблер?Расширенный ассемблер вырос из идеи, поданной на comp.lang.asm.x86 (или возможно на alt.lang.asm - я забыл уже, где), когда по существу не было хорошего свободно доступного ассемблера серии x86 и нужно было, чтобы кто-то написал его.
Таким образом, представляем на ваше рассмотрение NASM. В сегодняшнем виде он все еще находится в стадии прототипа — мы не обещаем, что он будет превосходить по быстродействию любой из упомянутых выше ассемблеров. Но пожалуйста, пожалуйста шлите нам замечания о замеченных ошибках, исправления, полезную информацию, да все, что угодно, что вы можете передать нам (и спасибо огромное многим людям, кто уже сделал это!), и мы будем улучшать его (в смысле, NASM) снова и снова. 1.1.2 Условия лицензированияЧтобы ознакомиться с условиями лицензирования, при которых вы можете пользоваться NASM, пожалуйста, прочитайте файл Licence, являющийся неотъемлимой частью любого дистрибутивного архива NASM. 1.2 КонтактыТекущая версия NASM (0.98) поддерживается H. Peter Anvin, hpa@zytor.com. Если вы захотите сообщить об обнаруженных ошибках, прочитайте сначала параграф 10.2. Страничка NASM в интернете WWW – http://r.codenet.ru/?http://www.cryogen.com/Nasm. Связаться с авторами можно по следующим адресам: jules@earthcorp.com и anakin@pobox.com. Новые релизы NASM доступны на ftp://ftp.kernel.org/pub/software/devel/nasm/, sunsite.unc.edu, ftp://ftp.simtel.net/pub/simtelnet/msdos/asmutl/ и ftp://ftp.coast.net/coast/msdos/asmutil/. Уведомления и объявления смотрите на comp.lang.asm.x86, alt.lang.asm, comp.os.linux.announce и comp.archives.msdos.announce (последнее из уведомлений автоматически закачивается на ftp://ftp.simtel.net/pub/simtelnet/msdos/asmutl/). Если вы не имеете доступ к Usenet или предпочитаете получать информацию о выпусках новых версий по электронной почте, вы можете подписаться на лист рассылки nasm-announce, послав email по адресу majordomo@linux.kernel.org, содержащий строку subscribe nasm-announce. Если вы хотите также получать информацию о выходе бета-релизов NASM, пошлите по тому-же адресу (см.выше) письмо, содержащее строку nasm-beta. 1.3 Инсталляция1.3.1 Инсталляция NASM под MS-DOS или WindowsПри получении DOS-архива NASM, nasmXXX.zip (где XXX означает номер версии NASM, содержащегося в архиве), распакуйте его в отдельный каталог (например, c:\nasm). Архив содержит четыре исполняемых файла: NASM-исполняемые файлы nasm.exe и nasmw.exe, и NDISASM-исполняемые файлы ndisasm.exe и ndisasmw.exe. Файлы, имеющие в окончании имени w, работают под Win9x/ME/NT, а те, которые без w — работают под DOS-ом. Для запуска NASM требуются только эти файлы, так что скопируйте их в каталог, указанный в вашей переменной PATH , либо отредактируйте autoexec.bat для добавления пути к каталогу с исполнимыми файлами NASM в переменную PATH. (если вы устанавливаете только версию под Win32, можете смело переименовать nasmw.exe в nasm.exe.) И это все!!! NASM установлен! Для запуска NASM не обязательно иметь отдельный каталог (если, конечно вы не добавили его к переменной PATH), поэтому можете удалить его (каталог), если у вас мало места на диске. Если вы загрузили DOS-архив с исходниками nasmXXXs.zip, он будет также содержать полный исходный текст NASM и набор Make-файлов, которые вы можете (будем надеяться) использовать для перестроения вашей копии NASM "с нуля". В файле Readme перечислены все Make-файлы и указано, с какими компиляторами они работают. Обратите внимание, что исходники insnsa.c, insnsd.c, insnsi.h и insnsn.c автоматически генерируются из главной таблицы инструкций insns.dat Perl-скриптом; файл macros.c генерируется из standard.mac другим Perl-скриптом. Хотя дистрибутив NASM 0.98 и включает эти автогенерируемые файлы, вам может потребоваться перестроить их (и следовательно, вам будет необходим интерпретатор Perl), если вы захотите изменить insns.dat, standard.mac или документацию. Возможно в будущем в исходниках не будет этих файлов вовсе. Версии Perl для ряда платформ, включая DOS и Windows, доступны на http://r.codenet.ru/?http://www.cpan.org/ports/. 1.3.2 Инсталляция NASM под UnixПри получении Unix-архива исходников NASM, nasm-X.XX.tar.gz (где X.XX означает номер версии NASM в архиве) распакуйте его в каталог типа /usr/local/src. Архив при распаковке создаст собственный подкаталог nasm-X.XX. NASM — автоконфигурируемый пакет: как только вы распакуете его, перейдите к каталогу, куда он был распакован и введитеe ./configure. Данный шелл-скрипт найдет самый подходящий компилятор C для сборки NASM и, соответственно, настройки Make-файлов. Как только NASM сконфигурируется, вы можете ввести make для сборки бинарных файлов nasm и ndisasm, а затем ввести make install для установки их в /usr/local/bin и установки man-страниц nasm.1 и ndisasm.1 в /usr/local/man/man1. В качестве альтернативы вы можете указать опции типа --prefix к команде configure скрипта (подробности см. в файле INSTALL) или установить программы самостоятельно. NASM также имеет набор утилит для обработки заказного формата объектных файлов RDOFF, находящихся в подкаталоге rdoff архива NASM. Вы можете собрать их при помощи make rdf и установить при помощи make rdf_install, если конечно они вам нужны. Если NASM будет не в состоянии автоматически выбрать конфигурацию, вы все-же сможете скомпилировать его при помощи make-файла Makefile.unx. Cкопируйте или переименуйте этот файл в Makefile и попробуйте ввести make. Имеется также файл Makefile.unx в подкаталоге rdoff. Оставить комментарийОставлять комментарии могут только зарегистрированные пользователи. Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы. |