КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 710800 томов
Объем библиотеки - 1390 Гб.
Всего авторов - 273984
Пользователей - 124950

Новое на форуме

Новое в блогах

Впечатления

serge111 про Лагик: Раз сыграл, навсегда попал (Боевая фантастика)

маловразумительная ерунда, да ещё и с беспричинным матом с первой же страницы. Как будто какой-то гопник писал... бее

Рейтинг: 0 ( 0 за, 0 против).
medicus про Aerotrack: Бесконечная чернота (Космическая фантастика)

Коктейль "ёрш" от фантастики. Первые две трети - космофантастика о девственнике 34-х лет отроду, что нашёл артефакт Древних и звездолёт, на котором и отправился в одиночное путешествие по галактикам. Последняя треть - фэнтези/литРПГ, где главный герой на магической планете вместе с кошкодевочкой снимает уровни защиты у драконов. Получается неудобоваримое блюдо: те, кому надо фэнтези, не проберутся через первые две трети, те же, кому надо

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
Влад и мир про Найденов: Артефактор. Книга третья (Попаданцы)

Выше оценки неплохо 3 том не тянет. Читать далее эту книгу стало скучно. Автор ударился в псевдо экономику и т.д. И выглядит она наивно. Бумага на основе магической костной муки? Где взять такое количество и кто позволит? Эта бумага от магии меняет цвет. То есть кто нибудь стал магичеть около такой ксерокопии и весь документ стал черным. Вспомните чеки кассовых аппаратов на термобумаге. Раз есть враги подобного бизнеса, то они довольно

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
Stix_razrushitel про Дебров: Звездный странник-2. Тропы миров (Альтернативная история)

выложено не до конца книги

Рейтинг: 0 ( 0 за, 0 против).
Михаил Самороков про Мусаниф: Физрук (Боевая фантастика)

Начал читать. Очень хорошо. Слог, юмор, сюжет вменяемый.
Четыре с плюсом.
Заканчиваю читать. Очень хорошо. И чем-то на Славу Сэ похоже.
Из недочётов - редкие!!! очепятки, и кое-где тся-ться, но некритично абсолютно.
Зачёт.

Рейтинг: +2 ( 2 за, 0 против).

Введение в NASM (низкоуровневое программирование для Windows) [Игорь Орещенков] (fb2) читать постранично, страница - 2


 [Настройки текста]  [Cбросить фильтры]

разработчик мог не только отвести душу, но и конкурировать на рынке программного обеспечения? Ответить однозначно на эти вопросы сложно. Скорее всего, читатель сам получит ответ, если дочитает эту статью, а потом опробует предложенные рекомендации на практике.

Итак, для продуктивного низкоуровневого программирования прежде всего необходим ассемблер — компилятор мнемонических инструкций в машинный код. Действительно, листинг программы на ассемблере при наличии в нем комментариев и осмысленных меток после некоторой практики читается практически так же легко, как и программа, записанная на языке высокого уровня. Какой же компилятор предпочесть? Чтобы остановить свой выбор на конкретном экземпляре, необходимо рассмотреть хотя бы несколько возможных. На первом месте, естественно, стоит Macro Assembler от Microsoft (MASM).

Большинство приверженцев низкоуровневого программирования для Windows используют его в своих проектах и не имеют претензий. Следует отметить, что Macro Assembler как самостоятельный продукт перестал существовать с версии 6.13, зато появились энтузиасты, которые стали формировать пакеты, отбирая необходимые утилиты из SDK, DDK и Visual Studio. Так появился MASM32 [2] — пакет, содержащий все необходимое для низкоуровневого программирования: собственно ассемблер, компоновщик, библиотекарь и даже пакет документации с большим количеством примеров. К числу положительных черт MASM можно отнести его популярность. Огромное количество макроинструкций и отвлеченных понятий, которые не являются необходимыми для записи алгоритма в понятной для процессора форме, вызывает уважение с одной стороны и вносит путаницу с другой. Кажется, что этот язык можно было бы сделать более лаконичным, однако можно и оправдать наличие некоторых атавизмов требованиями обратной совместимости. Второе место традиционно занимает Turbo Assembler от Borland/ Inprise. В чистом виде в настоящее время этот продукт не существует, однако он входит в состав сред разработчика C++ Builder и Delphi. Это чисто коммерческий продукт — программированием на TASM занимаются энтузиасты, сохранившие верность продукции Borland. По возможностям он сродни MASM. Четко разделить места между остальными компиляторами очень сложно. Поэтому просто рассмотрим еще две оригинальные разработки.

Flat Assembler (FASM) [3] — очень интересный проект, который уже несколько лет ведет Tomasz Grysztar. В отличие от большинства представителей семейства ассемблеров, FASM являет собой в одном лице компилятор и компоновщик. То есть из исходного текста после обработки сразу появляется исполняемый файл или динамическая библиотека. Автор этого продукта постоянно следит за деятельностью фирм — производителей процессоров, поэтому FASM поддерживает инструкции самых последних моделей процессоров Intel и AMD. Кроме того, в FASM реализован лаконичный, но очень мощный макроязык. Существует мнение, что FASM наиболее приспособлен к реализации идей объектноориентированного программирования на ассемблере. На FASM можно программировать как под Windows, так и под Linux. Flat Assembler занимает особое место среди ассемблеров, и поэтому мало подходит для знакомства с традиционной схемой низкоуровневого программирования, при которой исходный текст на ассемблере сначала транслируется в объектный код, а уже файлы с объектным кодом и библиотеки компонуются и записываются в файл, готовый к выполнению.

Netwide Assembler (NASM) [4] был разработан для того, чтобы дать программистам бесплатный инструмент написания программ для Windows. NASM в целом поддерживает синтаксис MASM, причем встречающиеся отличия воспринимаются легко и естественно. NASM оснащен небольшим, но достаточно функциональным набором макроинструкций. По сравнению с FASM NASM консервативен, в нем не находят отражения инструкции новых процессоров, однако благодаря своей традиционности именно он и послужит основой для дальнейшего повествования в этой статье. Пакет NASM включает достаточно подробную инструкцию по установке и использованию. К сожалению, как и большая часть действительно достойной технической документации, она доступна лишь на английском языке. Поэтому, чтобы серьезно заниматься низкоуровневым программированием, потребуется освоить хотя бы базовые элементы английского и найти англо-русский словарь. Если в двух словах, то для установки NASM нужно просто распаковать содержимое дистрибутивного архива в какую-нибудь папку на диске и для удобства прописать путь к этой папке в переменной окружения PATH. Для определенности и по аналогии с традиционной схемой размещения инструментальных программных систем можно рекомендовать построить следующую структуру каталогов (рис. 1), которая встречается в некоторых распространяемых подборках инструментов разработчика NASM для Windows [5]:


Рис. 1. Рекомендуемая иерархическая структура среды разработки NASM

В соответствии с этой схемой в каталоге BIN хранятся все исполняемые файлы среды разработчика (сам компилятор, компоновщик,