Михальчук В.М. и др. 9 Микропроцессоры 80x86, Pentium : Архитектура, функционирование, программирование, оптимизация кода /В.М. Михальчук, А.А. Ровдо, СВ. Рыжиков. - Мн.:Битрикс, 1994.-400 с. ISBN 985-6164-01-х.
Предисловие
Предлагаемая читателю книга содержит последовательное описание архитектуры, системы команд и тонкостей программирования наиболее популярных в настоящее время микропроцессоров: 8086, 80286, 80386, 80486, Pentium, а также математических сопроцессоров 8087, 80287, 80387, 80487.
Поскольку микропроцессоры серии 80x86, Pentium программно совместимы сверху вниз, то все они описываются параллельно, с указанием, где это необходимо, возможных отличий. Такое построение книги позволяет быстро и корректно решать вопросы, возникающие при разработке универсального - работающего на всех процессорах серии, программного обеспечения.
Наибольшее внимание уделено рассмотрению процессоров 80486 и Pentium, описанию их системы команд, используемых методов адресации и защиты информации.
Микропроцессор Pentium представляет собой не только очередной шаг в повышении производительности и степени интеграции, но и содержит целый ряд принципиально новых подходов, реализованных в его архитектуре. Профессиональные разработчики программного обеспечения найдут в этой книге самое подробное изложение этих вопросов.
Кроме описания деталей архитектуры в книге также содержится глава посвященная вопросам разработки наиболее эффективных программ для 32-х разрядных микропроцессоров 80386, 80486, Pentium. Читатели найдут в ней подробное изложение и примеры реализации методов оптимизации кодов программ для наиболее быстрого их исполнения на процессорах 80386, 80486, Pentium.
Данная книга может быть полезна, как на первоначальном этапе ознакомления с современными микропроцессорами, так и как У обный в использовании справочник при повседневной работе. Для
трого поиска необходимого материала служат: алфавитный указатель и специальные заголовки в верхней строке.
Авторы выражают глубокую признательность ДА. Бондарю
ленскому, чья помощь сделала возможным выход данной книги.
Содержание
1. ВВЕДЕНИЕ________________________________________________3
2. ПРИКЛАДНАЯ АРХИТЕКТУРА___________________________8
2.1 Решстры общего назначения .........................................................X
2.2 Сегментные регистры.....................................................................8
2.3 Регистр флагов (E)FLAGS .............................................................9
2.4 Управляющие регистры (Pentium, Intel486, Intel386, Intel286) .. 13
2.5 Отладочные регистры (Pentium, Intel486, Intel386)......................17
2.6 Тестовые регистры (Intel386, Intel486).........................................21
2.7 Системные регистры (Pentium, Intel486, Intel386, Intel286)........25
2.8 Специальные регистры процессора Pentium.................................27
2.9 Состояние процессора после инициализации...............................28
2.10 Встроенный КЭШ. (Pentium, Intel486).......................................29
3. СИСТЕМНАЯ АРХИТЕКТУРА____________________________31
3.1 Прерывания и особые ситуации ....................................................31
3.2 Дескрипторы (InteI286, Intel386, Intel486, Pentium).....................44
3.3 Селекторы (Intel286, Intel386, Intel486, Pentium).........................50
3.4 Сегмент состояния задачи (TSS)...................................................52
3.5 Страничный механизм (Intel386, Intel486, Pentium).................... 55
3.5.1 Формирование физического адреса при работе со
страничным механизмом..............................................55
3.5.2 Линейный адрес ...............................................................56
3.5.3 Каталоги и таблицы страниц ...:-......................................56
3.5.4 Механизм защиты страниц.............................................59
4. МАТЕМАТИЧЕСКИЙ СОПРОЦЕССОР,
ПРИКЛАДНАЯ АРХИТЕКТУРА_____________________________________________60
4.1 Регистры общего назначения FPU.................................................60
4.2 Регистр состояния FPU (SW).........................................................61
4.3 Регистр управления FPU (CW)......................................................65
4.4 Регистр гэгов (TW)..........................................................'...............66
4.5 Специальные регистры FPU...........................................................68
4.6 Состояние FPU после сброса и инициализации ...........................71
5. МАТЕМАТИЧЕСКИЙ СОПРОЦЕССОР,
СИСТЕМНАЯ АРХИТЕКТУРА._________________________________ 72
5.1 Исключительные ситуации сопроцессора .....................................72
5.2 Форматы данных сопроцессора .....................................................79
6. СИСТЕМА КОМАНД______________________________________84
6.1 Атрибуты (признаки) размера операнда и размера адреса ..........84
6.1.1 Атрибуты размера операнда и адреса по умолчанию..... 84
6.1.2 Префиксы размера операнда и размера адреса..............85
6.1.3 Атрибут размера адреса для стека..................................85
6.2. Формат команды............................................................................86
6.2.1 Байты ModR/M и SIB......................................................88
6.2.2 Как читать описания команд..........................................93
6.3 Описание команд процессора........................................................108
6.4 Описание команд математического сопроцессора...................... 288
7. ОПТИМИЗАЦИЯ КОДА для 32-х разрядных процессоров 355
7.1 Обзор процессоров Intel386, Intel486 и Pentium........................ 355
7.2 Примеры целочисленных программ..............................................360
7.3 Стратегия генерации кодов............................................................366
7.3.1 Планирование целых команд..........................................366
7.3.2 Выбор индексной версии базового регистра................ 367
7.3.3 Режим адресации и использование регистров.............. 367
7.3.4 Быстродействие предвыборки.........................................369
7.3.5 Выравнивание..................................................................370
7.3.6 Префиксные коды операции...........................................370
7.4 Селекция целочисленных команд..................................................371
7.4.1 Команда lea......................................................................371
7.4.2 Комплексные команды....................................................372
7.4.3 Расширение байта нулями...............................................372
7.4.4 Push mem.........................................................................372
7.4.5 Малый код операции.......................................................372
7.4.6 8/16 битные операнды.....................................................373
7.4.7 Сравнение........................................................................373
7.4.8 Вычисление адресов.........„.............................................374
7.4.9 Очистка регистра.............................................................374
7.4.10 Целое деление................................................................374
7.4.11 Прологовая последовательность (группа команд,
предшествующая вызовам процедур............................375
7.4.12 Эпилоговая последовательность (группа команд,
следующая после возврата из процедур)...................... 375
7.4.13 Целое умножение на константу....................................375
7.5 Специфичные оптимизации для Pentium.......................................376
7.5.1 Парабельность команд.....................................................377
7.5.2 Оптимизация для FPU Pentium.......................................380
7.6 Обобщение......................................................................................387
8. ПРИЛОЖЕНИЕ Н_________________________________________391
9. АЛФАВИТНЫЙ УКАЗАТЕЛЬ КОМАНД___________________392_


Hosted by uCoz