Введение
Глава 4 "Обработка цепочек элементов".
Содержит пример реализации некоторых полезных алгоритмов поиска подстроки в текстовой строке. Материал этой главы представляет собой существенное дополнение (а где-то предлагает и альтернативные решения) урока 11 "Цепочечные команды" учебника.
Глава 5 "Работа с консолью в программах на ассемблере".
В полном объеме рассматривает проблему ввода информации с клавиатуры и вывода информации на экран компьютера. Для этого приведено описание соответствующих средств BIOS, операционных платформ MS DOS и Windows.
Глава 6 "Преобразование чисел" предлагает набор алгоритмов для преобразования представлений чисел между различными системами счисления. Этот вид преобразования данных также часто встречается на практике. Из-за того что в ассемблере нет для этого соответствующих средств, каждый из программистов решает эту задачу по-своему, исходя из своего опыта и знаний.
Глава 7 "Работа с файлами в программах на ассемблере".
Содержит систематизированные сведения по работе с файлами из программ на ассемблере. За неимением соответствующих средств языковой поддержки со стороны программистов на практике также наблюдается "свободное творчество". Приведенные сведения относятся к уровню практической реализации задач в MS DOS и Windows с учетом возможности использования как длинных, так и коротких имен.
Глава 8 "Профайлер".
Как оценить эффективность кода, который вы пишете? В этом вам поможет материал главы 8 "Профайлер". В ней содержится описание двух макрокоманд, использующих средства микропроцессора Pentium, которые помогут вам решить эту задачу.
Глава 9 "Вычисление CRC".
Описывает.варианты решения одной интересной практической задачи, которой на практике можно найти достаточно много применений. Обладая этим инструментом, можно проводить быстрые оценочные проверки целостности данных, которыми манипулирует ваша программа. Суть этих алгоритмов с первого взгляда не очень очевидна, поэтому данная глава содержит подробное их объяснение.
Глава 10 "Программирование ХММ-расширения".
Призвана дополнить материал урока 20 "ММХ-технология микропроцесоров Intel" учебника. В ней на примере реализации нескольких характерных алгоритмов приводятся сведения о порядке использования команд ХММ-расширения микропроцессора Intel. Более того, предлагается альтернативный подход к решению проблемы поддержки работы с этими командами в программах на ассемблере. Механизм решения этой проблемы можно использовать и в других случаях, когда требуется обеспечить поддержку новых команд микропроцессора, работая со старыми версиями компилятора (и не только ассемблера), процесс обновления которых по объективным причинам значительно значительно более инертен, чем процесс обновления системы команд микропроцессора.
Необходимо подчеркнуть тот факт, что программы книги реализованы с помощью двух версий ассемблера – 16- и 32-разрядной. Выбор операционной платформы и средств реализации задач книги производился исходя из их конкретной постановки. Главный критерий здесь – подчеркнуть особенности реализации алгоритма. Если для этого достаточно платформы MS DOS, то задача реализовывалась с использованием средств этой ОС. При необходимости вы достаточно легко сможете доработать свою программу так, чтобы она функционировала в среде Windows. Для этого книга содержит достаточно практических примеров. Многие задачи реализованы непосредственно для функционирования в среде Windows. Сделано это в основном на примерах консольных приложений Windows. Тем самым был дополнен материал учебника, в котором процесс разработки оконных приложений для Windows описан достаточно подробно.
Следует отметить, что для пояснения наиболее сложных алгоритмов в некоторых примерах книги введен псевдоязык, синтаксис которого рассмотрен в главе 2. Для экономии места такой вид пояснения используется для текстов программ, вынесенных на дискету. Поэтому имейте в виду, что исходные тексты программ на дискете немного отличаются от соответствующих текстов программ в книге – прежде всего тем, что программы на дискете снабжены более подробными комментариями и псевдокодом. Для общеизвестных алгоритмов приведены ссылки на источники, где с ними можно познакомиться более подробно. Более того, система нумерации программ сделана так, чтобы указать читателю ссылку на источники, которые можно использовать для более глубокого изучения соответствующих алгоритмов.
Следует отметить, что псевдоязык использован с двоякой целью. Первую из целей мы уже отметили, что касается второй, то она заключается в том, чтобы подготовить читателя к изучению теории компиляции. Так, пояснение примеров программ на ассемблере производится не только с помощью обычных комментариев, но и с использованием фрагментов программы на псевдокоде. Такое смешанное пояснение ассемблерной реализации алгоритма не только дополнительно иллюстрирует сам алгоритм, но и показывает суть третьего и четвертого этапов.компиляции программы – генерации и оптимизации кода, так как при этом можно видеть, какие ассемблерные (машинные) конструкции соответствуют конструкциям языка высокого уровня.
Завершает книгу достаточно подробный список литературы, который был использован в процессе подготовки книги и который можно рекомендовать как основу для дальнейшего изучения затронутых в ней вопросов.