Ассемблер для процессоров Intel Pentium
Шрифт:
– Глава 1, «Базовая архитектура процессоров Intel x86». В этой главе рассматриваются базовая архитектура процессоров х86 фирмы Intel и эволюция к последним моделям процессоров Intel Pentium.
– Глава 2, «Основы создания приложений на языке ассемблера». Материал этой главы посвящен общим принципам создания программ на ассемблере. Здесь также рассмотрены основные этапы компиляции и компоновки приложений с использованием макроассемблера MASM фирмы Microsoft.
– Глава 3, «Синтаксис языка ассемблера». В этой главе проанализирован синтаксис языка ассемблера, включая основные типы данных, модели памяти и типы адресации при работе с процессорами Intel.
–
– Глава 5, «Организация вычислительных циклов». Материал главы посвящен организации вычислительных алгоритмов с использованием команд условных и безусловных переходов. Здесь также рассматриваются варианты оптимизации ветвлений в программах с применением специальных команд процессоров Intel Pentium.
– Глава 6, «Процедуры на языке ассемблера». В этой главе описаны процесс разработки и применения процедур на языке ассемблера, а также вопросы организации и использования стека для передачи параметров. Рассмотрены различные варианты обработки данных в процедурах, обращений к регистрам и памяти.
– Глава 7, «Операции со строками и массивами». Здесь рассматриваются строковые команды процессора Intel Pentium и практические аспекты их применения при обработке символьных строк и числовых массивов. Проанализированы методы оптимизации строковых операций.
– Глава 8, «Арифметические и логические операции». Материал главы посвящен анализу арифметических и логических команд процессора, а также преобразованиям целочисленных данных из одних форматов в другие.
– Глава 9, «Использование математического сопроцессора». Здесь рассматриваются вопросы применения математического сопроцессора в операциях над числами с плавающей точкой и способы создания эффективных алгоритмов обработки данных.
– Глава 10, «Интерфейс с языками высокого уровня». Материал главы посвящен применению отдельно скомпилированных ассемблерных модулей в программах на языках высокого уровня. В главе подробно анализируются методы передачи параметров в процедуры и получения результатов.
– Глава 11, «Процессоры Intel Pentium в современных разработках». В главе рассматриваются общие вопросы применения процессоров последних поколений Intel Pentium 4 в разработке высокоэффективных приложений. Показаны возможности оптимизации приложений для процессоров Pentium 4.
– Глава 12, «MMX-расширение процессоров Intel Pentium». Здесь проанализированы основные аспекты использования технологии ММХ для повышения производительности мультимедийных приложений и операций с целыми числами.
– Глава 13, «SSE-расширение процессоров Intel Pentium». В главе рассматриваются основные аспекты применения технологии SSE для повышения производительности операций с плавающей точкой в коротком формате и возможности оптимизации программ.
– Глава 14, «Технология SSE2 в процессорах Intel Pentium 4». Глава посвящена вопросам применения технологии SSE2 для повышения производительности операций с плавающей точкой двойной точности. Материал сопровождается многочисленными примерами практического применения данной технологии.
Материал книги дополнен справочником по системе команд процессоров Intel (Приложение А). Поскольку полная система команд насчитывает несколько сотен наименований, приведены только наиболее часто используемые команды.
Автор
От издательства
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты: comp@piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
Все исходные тексты, приведенные в книге, вы можете найти по адресу http:// www. piter.com/download.
Подробную информацию о наших книгах вы найдете на веб-сайте издательства: http://www.piter.com.
Глава 1Базовая архитектура процессоров Intel x86
Успешное применение языка ассемблера невозможно без знания архитектуры процессоров Intel. Процессоры Intel в настоящее время доминируют на рынке, и многие архитектурные решения, на основе которых они построены, в той или иной степени используются и другими производителями процессоров. Поскольку все современные процессоры Intel базируются на архитектуре 8086, то обычно говорят об архитектуре Intel x86.
Вкратце рассмотрим эволюцию процессоров фирмы Intel. В 1979 г. фирма Intel первой выпустила 16-разрядный микропроцессор 8086, возможности которого были близки к возможностям процессоров мини-компьютеров 70-х годов. Микропроцессор 8086 стал базовым для целого семейства процессоров, которое называют семейством 80x86 или х86.
Чуть позже появился процессор 8088, архитектурно совместимый с процессором 8086 и имеющий 16-разрядные регистры, но оперирующий с внешними данными размером в 8 бит. В 1981 г. появились процессоры 80186/80188, наследующие базовую архитектуру процессоров 8086, но обладающие дополнительными возможностями. Это поколение включало дополнительные аппаратно-программные компоненты: контроллер прямого доступа к памяти, счетчик/таймер и контроллер прерываний. Кроме того, система команд этих процессоров была расширена. Несмотря на это, широкого распространения данные процессоры не получили.
Следующим этапом в разработке новых идей стал процессор 80286. В этой модели были использованы новые подходы, которые применялись в микрокомпьютерах и больших компьютерах. Процессор 80286 мог работать в двух режимах: в режиме реальных адресов (эмуляция процессора 8086) и в защищенном режиме виртуальных адресов (protected virtual address mode), который предоставлял новые возможности для программистов. В этом режиме можно было работать с расширенным адресным пространством памяти размером в 16 Мбайт, также поддерживались виртуальная память и мультизадачность.
Новый 32-разрядный процессор 80386 позволил успешно решить две основные задачи: он обеспечивал совместимость с предыдущими поколениями процессоров и одновременно повышал производительность выполнения программ. Совместимость с процессорами 8086 достигалась за счет включения в аппаратно-программную архитектуру режима реальной адресации (real address mode).
В этом режиме процессор 80386 мог выполнять 16-разрядный программный код процессора 80286 без каких-либо ограничений. В этом же режиме он мог запускать 32-разрядные программы, что повышало производительность системы. В 32-разрядном режиме были реализованы новые возможности процессора 80386: масштабированная индексная адресация памяти, ортогональное использование регистров общего назначения, новые команды и средства отладки. Адресное пространство памяти позволяло работать с 4 Гбайт данных.