Математика

Физика

Химия

Биология

Техника и    технологии

Assembler для DOS, Windows и UNIX-Зубков С. . - М.: ДМК. Пресс, 2000. - 608 с.: ил. Серия «Для программистов-В.
Зубков С. В.
91 Assembler для DOS, Windows и UNIX. - М.: ДМК. Пресс, 2000. - 608 с.: ил. Серия «Для программистов»).
ISBN 5-94074-003-0
В книге освещаются все аспекты современного программирования на ассемблере для DOS, Windows 95/NT и UNIX (Solaris, Linux и FreeBSD), включая создание резидентных программ и драйверов, прямое программирование периферийных устройств, управление защищенным режимом и многое другое. Детально рассматривается архитектура процессоров Intel вплоть до Pentium III. Все главы иллюстрируются подробными примерами работоспособных программ.
Издание ориентировано как на профессионалов, так и на начинающих без опыта программирования.
ББК 32.973.26-018.1
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность наличия технических и просто человеческих ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.
© ЛМК ППРГ.Г. 9000
Содержание
Введение............................................................................................и
Глава 1. Предварительные сведения ..................................13
1.1. Что нужно для работы с ассемблером................................13
1.2. Представление данных в компьютерах...............................14
1.2.1. Двоичная система счисления...................................................14
1.2.2. Биты, байты ислова................................................................. 15
1.2.3. Шестнадцатеричная система счисления .................................. 16
1.2.4. Числа со знаком ....................................................................... 17
1.2.5. Логические операции...............................................................18
1.2.6. Коды символов........................................................................18
1.2.7. Организация памяти ................................................................ 19
Глава 2. Процессоры Intel в реальном режиме...............20
2.1. Регистры процессора.............................................................20
2.1.1. Регистры общего назначения ...................................................20
2.1.2. Сегментные регистры..............................................................22
2.1.3. Стек.........................................................................................22
2.1.4. Регистр флагов ........................................................................23
2.2. Способы адресации................................................................24
2.2.1. Регистровая адресация............................................................ 24
2.2.2. Непосредственная адресация.................................................. 25
2.2.3. Прямая адресация ...................................................................25
2.2.4. Косвенная адресация...............................................................25
2.2.5. Адресация по базе со сдвигом..................................................26
2.2.6. Косвенная адресация с масштабированием ............................26
2.2.7. Адресация по базе с индексированием ....................................27
2.2.8. Адресация по базе с индексированием
и масштабированием...............................................................27
2.3. Основные непривилегированные команды.......................28
2.3.1. Пересылка данных...........................................>t......................28
2.3.2. Двоичная арифметика..............................................................34
2.3.3. Десятичная арифметика..........................................................38
2.3.4. Логические операции...............................................................41
2.3.5. Сдвиговые операции................................................................43
2.3.6. Операции над битами и байтами ..............................................45
2.3.7. Команды передачи управления................................................47
2.3.8. Строковые операции ...................................,............................54
2.3.9. Управление флагами ................................................................57
2.3.10. Загрузка сегментных регистров.............................................59
2.3.11. Другие команды.....................................................,...,............59
2.4. Числа с плавающей запятой.....................................'............63
2.4.1. Типы данных FPU ..'....................................................................63
2.4.2. Регистры FPU........................................................................... 65
2.4.3. Исключения FPU....................................................................... 67
2.4.4. Команды пересылки данных FPU ..............................................68
2.4.5. Базовая арифметика FPU.........................................................70
2.4.6. Команды сравнения FPU..........................................................74
2.4.7. Трансцендентные операции FPU..............................................76
2.4.8. Константы FPU.........................................................................78
2.4.9. Команды управления FPU .........................................................78
2.5. Расширение IA ММХ................................................................82
2.5.1. Регистры ММХ.........................................................................82
2.5.2. Типы данн'ых ММХ....................................................................83
2.5.3. Команды пересылки данных ММХ ...............Г............................83
2.5.4. Команды преобразования типов ММХ......................................84
2.5.5. Арифметические операции ММХ..............................................85
v 2.5.6. Команды сравнения ММХ.........................................................88
2.5.7. Логические операции ММХ ......................................................88
2.5.8. Сдвиговые операции ММХ.......................................................89
2.5.9. Команды управления состоянием ММХ....................................90
2.5.10. Расширение AMD 3D..............................................................90
2.6. Расширение SSE......................................................................91
2.6.1. Регистры SSE...........................................................................91
2.6.2. Типы данных SSE.......................................................................92
2.6.3. КомандыЗЗЕ ...........................................................................92
2.6.4. Определение поддержки SSE ................................................ 105
2.6.5. Исключения............................................................................ 105
Глава 3. Директивы и операторы ассемблера.............юб
3.1. Структура,программы...........................................................106
3.2. Директивы распределения памяти................................... 108
3.2.1. Псевдокоманды определения переменных.............................108
3.2.2. Структуры.............................................................................. 109
Содержание
3.3. Организация программы.....................................................110
3.3.1. Сегменты............................................................................... 110
3.3.2. Модели памяти и упрощенные директивы
определения сегментов......................................................... 112
3.3.3. Порядок загрузки сегментов .....................................,............ 114
3.3.4. Процедуры............................................................................. 115
3.3.5. Конец программы.................................................................. 115
3.3.6. Директивы задания набора допустимых команд .................... 116
3.3.7. Директивы управления программным счетчиком ................... 116
3.3.8. Глобальные объявления......................................................... 117
3.3.9. Условное ассемблирование ................................................... 118
3.4. Выражения..............................................................................120
3.5. Макроопределения...............................................................121
3.5.1. Блоки повторений.................................................................. 123
3.5.2. Макрооператоры..................................................................... 124
3.5.3. Другие директивы, используемые в макроопределениях....... 124
3.6. Другие директивы..................................................................125
3.6.1. Управление файлами............................................................. 125
3.6.2. Управление листингом........................................................... 125
3.6.3. Комментарии ...............................................,..>...................... 126
Глава 4. Основы программирования для MS DOS .......127
4.1. Программа типа COM...........................................................128
4.2. Программа типа ЕХЕ.............................................................130
4.3. Вывод на экран в текстовом режиме................................ 131
4.3.1. Средства DOS..........................................................:............. 131
4.3.2. Средства BIOS....................................................................... 134
4.3.3. Прямая работа с видеопамятью............................................. 139
4.4. Ввод с клавиатуры..................................................................140
4.4.1. Средства DOS........................................................................ 140
4.4.2. Средства BIOS....................................................................... 148
4.5. Графические видеорежимы................................................ 151
4.5.1. Работа с VGA-режимами........................................................ 151
4.5.2. Работа с SVGA-режимами...................................................... 155
4.6. Работа с мышью.....................................................................166
4.7. Другие устройства.........................................*,......................171
4.7.1. Системный таймер................................................................. 171
4.7.2. Последовательный порт......................................................... 178
4.7.3. Параллельный порт................................................................ 181
4.8. Работа с файлами..................................................................182
4.8.1. Создание и открытие файлов................................................. 183
4.8.2. Чтение и запись в файл .......................................................... 186
4.8.3. Закрытие и удаление файла................................................... 187
4.8.4. Поиск файлов......................................................................... 188
4.8.5. Управление файловой системой ............................................ 192
4.9. Управление памятью.............................................................193
4.9.1. Обычная память ..................................................................... 193
4.9.2. Область памяти UMB..............................................................195
4.9.3. Область памяти НМД..............................................................195
4.9.4. Интерфейс EMS ...................................................................... 196
4.9.5. Интерфейс XMS ..................................................................... 197
4.10. Загрузка и выполнение программ...................................202
4.11. Командные параметры и переменные среды...............208
Глава 5. Более сложные приемы программирования .. 212
5.1. Управляющие структуры......................................................212
5.1.1. Структуры IF... THEN... ELSE ...................................................212
5.1.2. Структуры CASE.....................................................................213
5.1.3. Конечные автоматы ................................................................214
5.1.4. Циклы.....................................................................................215
5.2. Процедуры и функции ..........................................................216
5.2.1. Передача параметров ............................................................216
5.2.2. Локальные переменные .........................................................221
5.3. Вложенные процедуры......................................................... 222
5.3.1. Вложенные процедуры со статическими ссылками................222
5.3.2. Вложенные процедуры с дисплеями ......................................223
5.4. Целочисленная арифметика повышенной точности.....224
5.4.1. Сложение и вычитание ...........................................................225
5.4.2. Сравнение .............................................................................225
5.4.3. Умножение .............................................................................226
5.4.4. Деление.................................................................................227
5.5. Вычисления с фиксированной запятой............................228
5.5.1. Сложенней вычитание ...........................................................228
5.5.2. Умножение..............................................................................228
5.5.3,Деление.................................................................................229
5.5.4. Трансцендентные функции....................................................229
5.6. Вычисления с плавающей запятой....................................233
содержание ц
5.7. Популярные алгоритмы..........................................................238
5.7.1. Генераторы случайных чисел ............................................;.... 238
5.7.2. Сортировки ......................,.....................................................242
5.8. Перехват прерываний...........................................................245
5.8.1. Обработчики прерываний ......................................................246
5.8.2. Прерывания от внешних устройств........................................249
5.8.3. Повторная входи.мость..............................................:............253
5.9. Резидентные программы.....................................................256
5.9.1. Пассивная резидентная программа .......................................256
5.9.2. Мультиплексорное прерывание.............................................262
5.9.3. Выгрузка резидентной программы из памяти........................276
5.9.4. Полурезидентные программы ................................................292
5.9.5. Взаимодействие между процессами......................................297
5.10. Программирование на уровне портов ввода-вывода ....305
5.10.1. Клавиатура ...........................................................................305
5.10.2. Последовательный порт.......................................................309
5.10.3. Параллельный порт..............................................................315
5.10.4. Видеоадаптеры VGA .............................................................316
5.10.5. Таймер................................................................................. 331
5.10.6. Динамик...............................................................................335
5.10.7. Часы реального времени и CMOS-память ............................336
5.10.8. Звуковые платы ....................................................................339
5.10.9. Контроллер DMA..................................................................359
5.10.10. Контроллер прерываний.....................................................366
5.10.11. Джойстик............................................................................371
5.11. Драйверы устройств в DOS..............................................'. 374
5.11.1. Символьные устройства.......................................................375
5.11.2. Блочные устройства.............................................................384
Глава 6. Программирование в защищенном режиме ... зев
6.1. Адресация в защищенном режиме....................................388
6.2. Интерфейс VCPI.....................................................................391
6.3. Интерфейс DPMI....................................................................394
6.3.1. Переключение в защищенный режим.....................................394
6.3.2. Функции DPMI управления дескрипторами ............................395
6.3.3. Передача управления между режимами в DPMI.....................396
6.3.4. Обработчики прерываний......................................................398
6.3.5. Пример программы —........................:.................................399
6.4. Расширители DOS.................................................................403
6.4.1. Способы объединения программы с расширителем ..............403
6.4.2. Управление памятью в DPMI i...................................................405
6.4.3. Вывод на экран через линейный кадровый буфер ..................406
Глава 7. Программирование для Windows 95/NT.........413
7.1. Первая программа.................................................................413
7.2. Консольные приложения......................................................416
7.3. Графические приложения....................................................421
7.3.1. Окно типа MessageBox...........................................................421
7.3.2. Окна........................................................................................422
7.3.3. Меню......................................................................................427
7.3.4. Диалоги .................................................................................431
7.3.5. Полноценное приложение......................................................436
7.4. Динамические библиотеки..................................................451
7.5. Драйверы устройств .............................................................457
Глава 8. Ассемблер и языки высокого уровня.............. 460
8.1. Передача параметров...........................................................460
8.1.1. Конвенция Pascal...................................................................460
8.1.2. Конвенция С...........................................................................461
8.1.3. Смешанные конвенции ..........................................................463
8.2. Искажение имен.....................................................................463
8.3. Встроенный ассемблер........................................................463
8.3.1. Ассемблер, встроенный в Pascal.............................................464
8.3.2. Ассемблер, встроенный вС....................................................464
Глава 9. Оптимизация........................~.................................... 465
9.1. Высокоуровневая оптимизация.........................................465
9.2. Оптимизация на среднем уровне......................................465
9.2.1. Вычисление констант вне цикла.............................................466
9.2.2. Перенос проверки условия в конец цикла ..............................466
9.2.3. Выполнение цикла задом наперед.........................................466
9.2.4. Разворачивание циклов .........................................................467
9.3. Низкоуровневая оптимизация............................................468
9.3.1. Общие принципы низкоуровневой оптимизации ....................468
9.3.2. Особенности архитектуры процессоров Pentium иРептштММХ.......................................................................471
9.3.3. Особенности архитектуры процессоров Pentium Pro
и Pentium II.............................................................................472

Цена: 300руб.

Назад

Заказ

На главную страницу

Hosted by uCoz