Сообщений 0    Оценка 0        Оценить  
Система Orphus

Ассемблер для процессоров Intel Pentium

Автор: Магда Ю.С.
Издательство: Питер, 2006
410 страниц

Материал предоставил: Издательство ''Питер''
Найти в магазинах
Купить в Books.Ru
Купить в издательстве "Питер"

Аннотация

Содержание
Введение
Структура книги

Аннотация

Издание посвящено вопросам программирования на языке ассемблера для процессоров Intel Pentium. Рассмотрен широкий круг вопросов, начиная с основ программирования на ассемблере и заканчивая применением самых современных технологий обработки данных, таких как MMX, SSE и SSE2. Материал книги раскрывает методику оптимизации программного кода для всех поколений процессоров Intel Pentium, включая Intel Pentium 4. Теоретический материал подкреплен многочисленными примерами программного кода. Для широкого круга читателей, от студентов до опытных разработчиков программного обеспечения.

Содержание

Введение
Структура книги
От издательства

Глава 1. Базовая архитектура процессоров Intel x86

Глава 2. Основы создания приложений на языке ассемблера

2.1. Ассемблирование исходного текста
2.2. Компоновка программ

Глава 3. Синтаксис языка ассемблера

3.1. Представление данных в компьютере
3.2. Первичные элементы языка ассемблера
3.3. Программная модель процессора Intel Pentium

Глава 4. Структура программы на языке ассемблера

4.1. Организация сегментов
4.2. Директивы управления сегментами и моделями памяти макроассемблера MASM
4.3. Структура программ на ассемблере MASM

Глава 5. Организация вычислительных циклов

5.1. Условные переходы и ветвления
5.2. Команда безусловного перехода jmp
5.3. Организация циклов
5.4. Оптимизация кода в процессорах Intel Pentium

Глава 6. Процедуры на языке ассемблера

6.1. Организация стека
6.2. Принципы организации подпрограмм
6.3. Параметры процедур и возвращаемые значения
6.4. Использование общих переменных в процедурах

Глава 7. Операции со строками и массивами

7.1. Пересылка и копирование данных
7.2. Сравнение строк и массивов
7.3. Сканирование строк и массивов
7.4. Использование команд lods и stos
7.5. Массивы строк
7.6. Полезные алгоритмы
7.7. Полезные советы

Глава 8. Арифметические и логические операции

8.1. Логические команды
8.2. Команды сканирования битов
8.3. Команды сдвига и циклического сдвига
8.4. Обработка целых чисел
8.5. Обработка данных в форматах ASCII и BCD
8.6. Преобразование ASCII-чисел в двоичный формат
8.7. Преобразование двоичных чисел в формат ASCII
8.8. Полезные алгоритмы и программы

Глава 9. Использование математического сопроцессора

9.1. Типы данных сопроцессора
9.2. Архитектура сопроцессора
9.3. Система команд математического сопроцессора

Глава 10. Интерфейс с языками высокого уровня

10.1. Общие принципы построения интерфейсов
10.2. Интерфейс ассемблерных процедур с Delphi 2005
10.3. Интерфейс ассемблерных процедур с Visual C++ .NET 2005

Глава 11. Процессоры Intel Pentium в современных разработках

11.1. Микроархитектура Intel NetBurst
11.2. Особенности работы приложений с процессором Intel Pentium 4

Глава 12. MMX-расширение процессоров Intel Pentium

12.1. Команды передачи данных
12.2. Команды сложения
12.3. Команды вычитания
12.4. Команды упаковки и распаковки данных
12.5. Команды умножения
12.6. Команды сравнения
12.7. Логические команды
12.8. Команды сдвига
12.9. Дополнительные команды

Глава 13. SSE-расширение процессоров Intel Pentium

13.1. Команды передачи данных
13.2. Арифметические команды
13.3. Команды сравнения
13.4. Команды преобразования
13.5. Логические команды
13.6. Команды управления состоянием
13.7. Команды распаковки данных
13.8. Команды управления кэшированием

Глава 14. Технология SSE2 в процессорах Intel Pentium 4

14.1. Команды обработки 128-разрядных данных с плавающей точкой
14.2. Команды обработки 128-разрядных целочисленных данных

Заключение
Приложение А. Базовые инструкции процессоров 80x86
Приложение Б. Специальные инструкции процессоров 80x86
Список литературы

Введение

Эта книга посвящена описанию возможностей языка ассемблера процессоров Intel Pentium. Книга не является учебником по языку ассемблера, хотя и может использоваться в этом качестве, - скорее это расширенное руководство по применению ассемблера процессоров Intel Pentium. Материал книги содержит много справочной информации по командам ассемблера и современным технологиям обработки данных. Изучение современного ассемблера - задача далеко не простая, и эта книга позволит читателю успешно ее решить.

Язык ассемблера появился вместе с появлением процессоров и тесно связан с их архитектурой, позволяя напрямую обращаться к аппаратным ресурсам компьютера. Часто у читателей возникает вопрос: а зачем вообще нужно изучать язык ассемблера, когда имеются развитые средства программирования на языках высокого уровня, такие, например, как Visual C++ .NET фирмы Microsoft или Borland Delphi 2005? Тем более что помимо этих средств есть еще целый спектр специализированных программных продуктов для разработки офисных приложений, баз данных, электронных таблиц и т. д. Подобные программы называются средствами быстрой разработки и позволяют в считанные недели создавать самые сложные приложения.

Тем не менее, значение языка ассемблера трудно переоценить. Все без исключения средства разработки программ в той или иной степени используют ассемблер. К примеру, большинство библиотечных функций языка C++ и Pascal, на основе которых построены такие мощные инструменты разработки, как Visual C++ и Delphi, написаны на ассемблере. Мультимедийные приложения, программы обработки сигналов и многие другие используют высокопроизводительные библиотеки функций, разработанные с помощью ассемблерных команд технологии SIMD. Наконец, если требуется, чтобы приложение работало максимально быстро и занимало меньше памяти (а это нужно для встроенных и мобильных систем в различных отраслях промышленности), то применение ассемблера является едва ли не единственным способом достижения цели. По этой причине большинство приложений, работающих в режиме реального времени, либо написаны целиком на ассемблере, либо используют в критических участках кода ассемблерный код.

Даже по этим нескольким примерам видно, что язык ассемблера имеет свои сферы применения, свои ниши, которые никогда и ничем не будут заняты. Кроме того, как уже отмечалось, при разработке приложений на языках высокого уровня критические секции, требующие высокой скорости выполнения, пишутся на ассемблере. Именно поэтому в Visual C++ .NET и Delphi 2005 имеется возможность создавать программный код на встроенном ассемблере. Должен заметить, что фирма Microsoft постоянно совершенствует встроенный ассемблер.

Вряд ли кому-то придет в голову разрабатывать большие и многофункциональные приложения на языке ассемблера, но ускорить производительность работы таких приложений с помощью ассемблера можно. По сравнению с языками высокого уровня ассемблер обладает одним фундаментальным преимуществом, проистекающим из его природы - он позволяет писать самый быстрый и компактный код. Изучение языка ассемблера дает программисту одно очень важное преимущество - он глубже начинает понимать принципы работы приложений, написанных на любых языках, в том числе и на языках высокого уровня. Ассемблер очень помогает при разработке программ на языках высокого уровня, поскольку знание низкоуровневого программирования позволяет выбирать оптимальные решения.

Что же касается инструментальных средств для разработки приложений на ''чистом'' ассемблере, то в последнее время появились очень мощные приложения такого рода, что вынуждает по-другому взглянуть на проблему. Из таких инструментальных средств проектирования можно выделить в первую очередь макроассемблер MASM32, а также AsmStudio и NASM. Эти и другие инструменты разработки программ имеют самый современный графический интерфейс. Не следует забывать и о том, для ассемблера разработаны многочисленные библиотеки функций, приближающие этот язык по своим функциональным возможностям к высокоуровневым средствам разработки приложений.

Материал книги охватывает полный спектр архитектурно-программных решений для процессоров Intel Pentium, включая как базовую программную архитектуру и набор основных команд ассемблера, так и современные технологии параллельной обработки данных (SIMD). Эта книга задумана как расширенный справочник по применению ассемблера в практических разработках, хотя может быть использована и как практическое пособие для программистов-разработчиков, желающих углубить свои знания о современных технологиях программирования на ассемблере.

Материал книги включает много примеров программного кода, в том числе и для технологий SIMD. Этими практическими примерами подкрепляются большинство теоретических аспектов, рассматриваемых в книге. По мнению автора, такой путь является наиболее эффективным для изучения языка ассемблера.

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

Для разработки примеров используется макроассемблер MASM фирмы Microsoft с компилятором версии 7.10.xxxx. Этот компилятор включен в состав Windows XP DDK и Windows Server 2003 DDK. Подойдет и компилятор версии 6.14.xxxx, но в этом случае примеры применения технологий SIMD компилировать будет невозможно. В качестве среды разработки можно порекомендовать свободно распространяемый макроассемблер MASM32 версии 8, который включает в себя компилятор ML версии 6.14.xxxx и компоновщик LINK версии 5.12.xxxx фирмы Microsoft.

Во всех примерах синтаксис языка ассемблера максимально упрощен, используется минимум высокоуровневых конструкций языка. В книге не приводится детальное описание компилятора MASM, а упоминаются лишь те сведения, которые необходимы для работы.

Книга рассчитана на широкий круг читателей - от начинающих программистов до опытных разработчиков.

Структура книги

Структура книги такова, что материал можно изучать выборочно по отдельным главам, или последовательно, начиная с первой главы. Это позволяет различным категориям читателей изучать тот материал, который им более всего интересен.

Книга состоит из 14 глав.

Материал книги дополнен справочником по системе команд процессоров Intel. Поскольку полная система команд насчитывает несколько сотен наименований, приведены только наиболее часто используемые команды.

Автор благодарит коллектив издательства ''Питер'' за помощь в подготовке книги к изданию. Особая признательность жене Юлии за поддержку и помощь в написании книги.

    Сообщений 0    Оценка 0        Оценить