- Артикул:00-01024057
- Автор: Пильщиков В.Н.
- ISBN: 5-86404-051-7
- Тираж: 500 экз.
- Обложка: Мягкая обложка
- Издательство: Диалог-МИФИ (все книги издательства)
- Город: Москва
- Страниц: 288
- Формат: 60х84/16
- Год: 2014
- Вес: 269 г
Книга представляет собой учебное пособие по языку ассемблер для персональных компьютеров типа IBM PC. Подробно рассмотрены команды, конструкция языка и методы программирования на нем. Изложение сопровождается примерами.
Для студентов и преподавателей вузов, для всех желающих детально изучить язык ассемблер и приемы программирования на нем.
ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ
1. ОСОБЕННОСТИ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
1.1. Оперативная память
1.2. Регистры
1.2.1. Регистры общего назначения
1.2.2. Сегментные регистры
1.2.3. Указатель команд
1.2.4. Регистр флагов
1.3. Представление данных
1.3.1. Представление целых чисел
1.3.2. Двоично-десятичные числа
1.3.3. О вещественных числах
1.3.4. Представление символьных данных
1.4. Представление команд
2. ЯЗЫК АССЕМБЛЕРА. НАЧАЛЬНЫЕ СВЕДЕНИЯ
2.1. Лексемы
2.1.1. Идентификаторы
2.1.2. Целые числа
2.1.3. Символьные данные
2.2. Предложения
2.2.1. Комментарии
2.2.2. Команды
2.2.3. Директивы
2.2.4. Ссылки назад и вперед
2.3. Директивы определения данных
2.3.1. Директива DB
2.3.2. Директива DW
2.3.3. Директива DD
2.4. Директивы эквивалентности и присваивания
2.5. Выражения
2.5.1. Константные выражения
2.5.2. Адресные выражения
3. ПЕРЕСЫЛКИ. АРИФМЕТИЧЕСКИЕ КОМАНДЫ
3.1. Обозначение операндов команд
3.2. Команды пересылки
3.2.1. Команда MOV
3.2.2. Оператор указания типа (PTR)
3.2.3. Команда XCHG
3.3. Команды сложения и вычитания
3.3.1. Особенности сложения и вычитания целых чисел в ПК
3.3.2. Команды сложения и вычитания
3.4. Команды умножения и деления
3.4.1. Команды умножения
3.4.2. О команде умножения в процессорах 80186 и старше
3.4.3. Команды деления
3.5. Изменение размера числа
3.6. Примеры
4. ПЕРЕХОДЫ. ЦИКЛЫ
4.1. Безусловный переход. Оператор SHORT
4.1.1. Прямой переход
4.1.2. Оператор SHORT
4.1.3. Косвенный переход
4.2. Команды сравнения и условного перехода
4.3. Команды управления циклом
4.3.1. Команда LOOP
4.3.2. Команды LOOPE / LOOPZ и LOOPNE / LOOPNZ
4.4. Вспомогательные операции ввода-вывода
4.4.1. Останов программы
4.4.2. Ввод с клавиатуры
4.4.3. Вывод на экран
4.5. Примеры
5. МАССИВЫ. СТРУКТУРЫ
5.1. Об индексах элементов массива
5.2. Реализация переменных с индексом
5.2.1. Модификация адресов
5.2.2. Индексирование
5.2.3. Косвенные ссылки
5.2.4. Модификация по нескольким регистрам
5.2.5. Запись модифицируемых адресов в ЯА
5.3. Команды LEA и XLAT
5.3.1. Команда LEA
5.3.2. Команда XLAT
5.4. Структуры
5.4.1. Описание типа структуры
5.4.2. Описание переменных-структур
5.4.3. Ссылки на поля структур
5.4.4. Уточнения
5.5. Примеры
6. БИТОВЫЕ ОПЕРАЦИИ. УПАКОВАННЫЕ ДАННЫЕ
6.1. Логические команды
6.2. Команды сдвига
6.2.1. Логические сдвиги
6.2.2. Арифметические сдвиги
6.2.3. Циклические сдвиги
6.2.4. Команды сдвига в процессорах 80186 и старше
6.3. Упакованные данные
6.4. Множества
6.4.1. Машинное представление множеств
6.4.2. Реализация операций над множествами
6.5. Записи
6.5.1. Описание типа записи
6.5.2. Описание переменных-записей
6.5.3. Средства для работы с полями записей
7. ПРОГРАММНЫЕ СЕГМЕНТЫ
7.1. Сегментирование адресов в ПК
7.1.1. Общая схема базирования адресов
7.1.2. Особенности сегментирования адресов в ПК
7.1.3. Сегментные регистры по умолчанию
7.2. Программные сегменты
7.3. Директива ASSUME
7.4. Начальная загрузка сегментных регистров
7.5. Структура программы. Директива INCLUDE
8. СТЕК
8.1. Стек и сегмент стека
8.2. Стековые команды
8.2.1. Запись и чтение слов
8.2.2. Запись и чтение регистра флагов
8.2.3. Стековые команды процессора 80186
8.3. Некоторые приемы работы со стеком
8.4. Пример использования стека
9. ПРОЦЕДУРЫ
9.1. Дальние переходы
9.2. Подпрограммы-процедуры
9.2.1. Где размещать подпрограмму?
9.2.2. Как оформлять подпрограмму?
9.2.3. Вызов процедур и возврат из них
9.2.4. Другие варианты команды CALL
9.3. Передача параметров через регистры
9.3.1. Передача параметров по значению
9.3.2. Передача параметров по ссылке
9.3.3. Сохранение регистров в процедуре
9.3.4. Передача параметров сложных типов
9.4. Передача параметров через стек
9.5. Локальные данные процедур
9.6. Рекурсивные процедуры
10. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ
10.1. Строковые команды. Префиксы повторения
10.1.1 .Команда сравнения строк
10.1.2. Префиксы повторения
10.1.3. Другие строковые команды
10.1.4. Команды загрузки адресных пар в регистры
10.2. Строки переменной длины
10.3. Списки
10.3.1. Представление списков
10.3.2.Операции над списками
10.3.3.Организация кучи
11. МАКРОСРЕДСТВА
11.1. Макроязык
11.2. Блоки повторения
11.2.1 .REPT-блоки
11.2.2. И1Р-блок и
11.2.3. IRPC-блоки
11.2.4. Макрооператоры
11.3. Макросы
11.3.1 .Макроопределения
11.3.2. Макрокоманды
11.3.3. Макроподстановки и макрорасширения
11.3.4. Примеры использования макросов
11.3.5. Макросы и процедуры
11. 3.6.Определение макроса через макрос
11.3.7. Директива LOCAL
11.3.8. Директива EXITM
11.3.9. Переопределение и отмена макросов
11.4. Условное ассемблирование
11.4.1 .Директивы IF и IFE
11.4.2. Операторы отношения. Логические операторы
11.4.3. Директивы IFIDN, IFDIF, IFB и IFNB
12. МНОГОМОДУЛЬНЫЕ ПРОГРАММЫ
12.1. Работа в системе MASM
12.2. Модули. Внешние и общие имена
12.2.1. Структура модулей. Локализация имен
12.2.2. Внешние и общие имена. Директивы EXTRN и PUBLIC
12.2.3. Сегментирование внешних имен
12.2.4. Доступ к внешним именам
12.2.5. Пример многомодульной программы
12.3. Параметры директивы SEGMENT
12.3.1. Параметр "класс"
12.3.2. Параметр "объединение"
12.3.3. Параметр "выравнивание"
13. ВВОД-ВЫВОД. ПРЕРЫВАНИЯ
13.1. Команды ввода-вывода
13.2. Прерывания. Функции DOS
13.2.1 Прерывания
13.2.2. Функции DOS
13.2.3. Некоторые функции прерывания 21h
13.3. Операции ввода-вывода
13.3.1. Схема хранения и подключения операций ввода-вывода
13.3.2. Текст файла IOPROC.ASM
13.3.3. Текст файла IO.ASM
14. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ
14.1. Двоично-десятичные числа
14.1.1. Представление двоично-десятичных и ASCII-чисел
14.1.2. Сложение двоично-десятичных чисел
14.1.3. Вычитание двоично-десятичных чисел
14.1.4. Умножение и деление двоично-десятичных чисел
14.2. Дополнительные команды ПК
14.3. Дополнительные операторы
14.4. Директивы управления листингом
14.5. Директивы контроля за работой ассемблера
14.5.1. Директива %OUT
14.5.2. Дополнительные IF-директивы
14.5.3. Условная генерация ошибок
14.6. Дополнительные директивы
14.6.1. Указание типа процессора и набора команд
14.6.2. Группы сегментов
14.6.3. Изменение счетчика размещения
14.6.4. Другие директивы
СПИСОК ЛИТЕРАТУРЫ