П.Абель. Ассемблер для IBM PC и программирования
(Скачать - abel_asm.txt.gz, 300kb)
Оглавление
Предисловие переводчика
Предисловие
- Введение в семейство персональных компьютеров IBM PC
- Введение
- Биты и байты
- ASCII код
- Двойные числа
- Шеснадцатеричное представление
- Сегменты
- Регистры
- Архитектура персональных компьютеров
- Основные положения на память
- Вопросы для самопроверки
- Выполнение программы
- Введение
- Начало работы
- Просмотр памяти
- Пример машинных кодов: непосредственные данные
- Пример машинных кодов: определенные данные
- Машинная адресация
- Пример машинных кодов: определение размера памяти
- Свойства отладчика
- Основные положения на память
- Вопросы для самопроверки
- Формат языка ассемблера
- Введение
- Комментарии
- Формат кодирования
- Псевдокоманды
- Указатели памяти и регистров
- Инициализация программы
- Пример исходной программы
- Основные положения на память
- Вопросы для самопроверки
- Ассемблирование и выполнение программы
- Введение
- Ввод программы
- Подготовка программы для выполнения
- Ассемблирование программы
- Компановка загрузочного модуля
- Выполнение программы
- Пример исходной программы
- Файл перекрестных ссылок
- Основные положения на память
- Вопросы для самопроверки
- Определение данных
- Введение
- Псевдокоманды определения данных
- Определение байта (DB)
- Определение слова (DW)
- Определение двойного слова (DD)
- Определение "четверного" слова (DQ)
- Определение десяти байт (DT)
- Непосредственные операнды
- Псевдокоманда (директива) EQU
- Основные положения на память
- Вопросы для самопроверки
- Программные COM-файлы
- Введение
- Различия между EXE- и COM-файлами
- Пример COM-файла
- COM-стек
- Отладка
- Основные положения на память
- Вопросы для самопроверки
- Логика и организация программы
- Введение
- Команда JMP
- Команда LOOP
- Флаговый регистр
- Команды условного перехода
- Процедуры и вызовы (CALL)
- Стековый сегмент
- Программа: команды длинной пересылки
- Логические команды: AND, OR, XOR, TEST, NOT
- Программа: изменение нижнего и верхнего регистров
- Сдвиги и ротация
- Организация программы
- Основные положения на память
- Вопросы для самопроверки
- Работы с экраном I: Основные возможности
- Введение
- Команда прерывания: INT
- Установка курсора
- Очистка экрана
- Команды экрана и клавиатуры: Базовая DOS
- Ввод на экран: стандарт DOS
- Программа: Ввод набора ASCII символов
- Ввод с клавиатуры: Базовая DOS
- Программа: Ввод имен с клавиатуры и вывод на экран
- Команды экрана и клавиатуры: Расширенная DOS
- Вывод на экран: Расширенная DOS
- Ввод с клавиатуры: Расширенная DOS
- Использование CR, LF, TAB для вывода на экран
- Основные положения на память
- Вопросы для самопроверки
- Работа с экраном II: Расширенные возможности
- Введение
- Байт атрибутов
- Прерывания BIOS
- Программа: мигание, видеореверс, скроллинг
- Расширенные ASCII коды
- Другие команды ввода/вывода DOS
- BIOS INT 16H для ввода с клавиатуры
- Дополнительные функциональные клавиши
- Основные положения на память
- Вопросы для самопроверки
- Работа с экраном III: Цвет и графика
- Введение
- Текстовый (алфавитно-цифровой) режим
- Графический режим
- Режим средней разрешающей возможности
- Программа: Установка цвета и графического режима
- Основные положения на память
- Вопросы для самопроверки
- Обработка строк
- Введение
- Особенности команд обработки строк
- REP: Префикс повторения строки
- MOVS: Пересылка строки
- LODS: Загрузка строки
- STOS: Сохранение строки
- CMPS: Сравнение строк
- SCAS: Сканирование строки
- Сканирование и замена
- Альтернативное кодирование
- Дублирование шаблона (образца)
- Программа: Выравнивание справа при выводе на экран
- Основные положения на память
- Вопросы для самопроверки
- Арифметика I: Обработка двоичных данных
- Введение
- Сложение и вычитание
- Беззнаковые и знаковые данные
- Умножение
- Сдвиг регистров DX:AX
- Деление
- Преобразование знака
- Процессоры Intel 8087 и 80287
- Основные положения на память
- Вопросы для самопроверки
- Арифметика II: Обработка ASCII и BCD данных
- Введение
- ASCII формат
- Двоично-десятичный формат (BCD)
- Преобразование ASCII формата в двоичный формат
- Преобразование двоичного формата в ASCII формат
- Сдвиг и округление
- Программа: Расчет зарплаты
- Основные положения на память
- Вопросы для самопроверки
- Обработка таблиц
- Введение
- Определение таблиц
- Прямой табличный доступ
- Поиск в таблице
- Команда перекодировки (трансляции) (XLAT)
- Программа: Вывод шестнадцатеричных и ASCII кодов
- Программа: Сортировка элементов таблицы
- Операторы TYPE, LENGTH и SIZE
- Основные положения на память
- Вопросы для самопроверки
- Дисковая память I: Организация
- Введение
- Объем диска
- Каталог
- Таблица распределения файлов (FAT)
- Основные положения на память
- Вопросы для самопроверки
- Дисковая память II: Функции базовой DOS
- Введение
- Управляющий блок файла: FCB
- Использование FCB для создания дискового файла
- Программа: FCB для создания дискового файла
- Последовательное чтение дискового файла
- Программа: FCB для чтения дискового файла
- Прямой доступ
- Программа: Прямое чтение дискового файла
- Прямой блочный доступа
- Программа: Прямое чтение блока
- Абсолютный дисковый ввод/вывод
- Другие возможности
- Программа: Выборочное удаление файлов
- Основные положения на память
- Вопросы для самопроверки
- Дисковая память III: Функции расширенной DOS
- Введение
- Строка ASCIIZ
- Номер файла и коды возврата по ошибкам
- Создание дискового файла
- Программа: Использование номера для чтения файла
- ASCII файлы
- Другие функции расширенной DOS
- Основные положения на память
- Вопросы для самопроверки
- Дисковая память IV: Команды ввода/вывода BIOS
- Введение
- Дисковые команды BIOS
- Байт состояния
- Программа: Использование BIOS для чтения секторов
- Основные положения на память
- Вопросы для самопроверки
- Печать
- Введение
- Управляющие символы для печати
- Использование расширенной DOS для печати
- Программа: Постраничная печать с заголовками
- Печать ASCII файлов и управление табуляций
- Печать с использованием базовой DOS
- Специальные команды принтера
- Печать с использованием BIOS INT 17H
- Основные положения на память
- Вопросы для самопроверки
- Макрокоманды
- Введение
- Простое макроопределение
- Использование параметров в макрокомандах
- Комментарии
- Использование макро внутри макроопределения
- Директива LOCAL
- Подключение библиотеки макроопределений
- Конкатенация (&)
- Повторение: REPT, IRP и IRPC
- Условные директивы
- Директива EXITM
- Макрокоманды, использующие IF и IFNDEF условия
- Макрокоманды, использующие IFIDN условие
- Основные положения на память
- Вопросы для самопроверки
- Связь между подпрограммами
- Введение
- Межсегментные вызовы
- Атрибуты EXTRN и PUBLIC
- Программа: Использование EXTRN и PUBLIC для меток
- Программа: Использование PUBLIC в кодовом сегменте
- Программа: Общие данные в подпрограммах
- Передача параметров
- Связь Бейсик-интерпретатор - ассемблер
- Связь Паскаль - ассемблер
- Связь C - ассемблер
- Основные положения на память
- Вопросы для самопроверки
- Загрузчик программ
- Введение
- COMМAND.COM
- Префикс программного сегмента
- Выполнение COM-программы
- Выполнение EXE-программы
- Пример EXE-программы
- Функция загрузки или выполнения программ
- BIOS и DOS прерывания
- Введение
- Обслуживание прерываний
- BIOS прерывания
- DOS прерывания
- Функции DOS INT 21H
- Резидентные программы
- Порты
- Генерация звука
- Справочник по директивам ассемблера
- Введение
- Индексная память
- Команды ассемблера
- Директивы ассемблера
- Справочник по командам ассемблера
- Введение
- Обозначение регистров
- Байт способа адресации
- Двухбайтовые команды
- Трехбайтовые команды
- Четырехбайтовые команды
- Команды в алфавитном порядке
Приложения
- ASCII коды
- Шестнадцатерично-десятичные преобразования
- Зарезервированные слова
- Режимы ассемблирования и компановки
Ответы на некоторые вопросы