Язык Ассемблера для IBM PC и программирования

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

В книге содержатся сведения о функциональной структуре, машинном языке и языке Ассемблера, методах отладки программ, управлении данными. Изложение методически продумано и рассчитано на активное программирование. Приводится большое количество упражнений, отражающих разнообразные практические ситуации, вопросы для самостоятельной проработки, а также справочная информация, ответы на вопросы, предметный указатель. Книга может быть использована студентами вузов, преподавателями, а также как справочное пособие для программистов.

Author(s): Абель, Питер (Abel, Peter)
Publisher: Высшая школа
Year: 1992

Language: Russian
Commentary: Перевод с английского Ю. В. Сальникова
Pages: 447
City: Москва
Tags: assemply, ассемблер, Абель, Abel, программирование

Обложка
Простой титул (стр. 1)
Титульная страница исходного издания (стр. 2)
Титульная страница настоящего издания (стр. 3)
Выходные сведения (стр. 4)
Оглавление (стр. 5)
Предисловие переводчика (стр. 13)
Предисловие (стр. 14)
Глава 1. Введение в семейство компьютеров IBM PC (стр. 17)
Введение (стр. 17)
Биты и байты (стр. 17)
ASCII-код (стр. 18)
Двоичные числа (стр. 19)
Шестнадцатиричное представление (стр. 21)
Сегменты (стр. 23)
Регистры (стр. 25)
Архитектура PC (стр. 27)
Основные положения на память (стр. 32)
Вопросы для самопроверки (стр. 32)
Глава 2. Машинное исполнение (стр. 34)
Введение (стр. 34)
Начало работы (стр. 34)
Просмотр памяти (стр. 35)
Пример машинных кодов: непосредственные данные (стр. 36)
Пример машинных кодов: определение данных (стр. 40)
Машинная адресация (стр. 44)
Пример машинных кодов: определение размера памяти (стр. 45)
Специальные средства отладчика (стр. 46)
Основные положения на память (стр. 48)
Вопросы для самопроверки (стр. 49)
Глава 3. Требования языка Ассемблер (стр. 51)
Введение (стр. 51)
Комментарии в программах на Ассемблере (стр. 51)
Формат кодирования (стр. 52)
Директивы (стр. 53)
Память и регистры (стр. 57)
Инициализация программы (стр. 57)
Пример исходной программы (стр. 59)
Основные положения на память (стр. 60)
Вопросы для самопроверки (стр. 60)
Глава 4. Ассемблирование и выполнение программы (стр. 61)
Введение (стр. 61)
Вывод программы (стр. 61)
Подготовка программы для выполнения (стр. 62)
Ассемблирование программы (стр. 63)
Компоновка программы (стр. 66)
Выполнение программы (стр. 68)
Пример исходной программы (стр. 70)
Файл перекрестных ссылок (стр. 73)
Основные положения на память (стр. 74)
Вопросы для самопроверки (стр. 74)
Глава 5. Определение данных (стр. 76)
Введение (стр. 76)
Директивы определения данных (стр. 76)
Директива определения байта (DB) (стр. 80)
Директива определения слова (DW) (стр. 80)
Директива определения двойного слова (DD) (стр. 81)
Директива определения поля из четырех слов (DQ) (стр. 81)
Директива определения десяти байтов (DT) (стр. 82)
Непосредственные операнды (стр. 82)
Директива (EQU) (стр. 84)
Основные положения на память (стр. 86)
Вопросы для самопроверки (стр. 87)
Глава 6. Программы в СОМ-файлах (стр. 88)
Введение (стр. 88)
Различия между программами в EXE- и COM-файлах (стр. 88)
Пример COM-программы (стр. 89)
Стек для COM-программы (стр. 91)
Особенность отладки (стр. 91)
Основные положения на память (стр. 91)
Вопросы для самопроверки (стр. 92)
Глава 7. Логика и организация программы (стр. 93)
Введение (стр. 93)
Командна JMP (стр. 94)
Командна LOOP (стр. 96)
Флаговый регистр (стр. 97)
Командны условного перехода (стр. 99)
Процедуры и оператор CALL (стр. 101)
Сегмент стека (стр. 103)
Программа: Расширенные операции пересылки (стр. 105)
Командны логических операций: AND, OR, XOR, TEST, NOT (стр. 108)
Программа: Замена строчных букв на заглавные (стр. 109)
Командна сдвига и циклического сдвига (стр. 111)
Организация программ (стр. 113)
Основные положения на память (стр. 114)
Вопросы для самопроверки (стр. 115)
Глава 8. Экранные операции I: Основные свойства (стр. 117)
Введение (стр. 117)
Командна прерывания INT (стр. 117)
Установка курсора (стр. 118)
Очистка экрана (стр. 119)
Экранные и клавиатурные операции в базовой версии DOS (стр. 119)
Вывод на экран в базовой версии DOS (стр. 120)
Программа: Вывод на экран набора символов ASCII-кода (стр. 120)
Ввод данных с клавиатуры: базовая версия DOS (стр. 122)
Программа: Ввод и вывод имен (стр. 123)
Экранные и клавиатурные операции: Расширенная версия DOS (стр. 128)
Вывод на экран в расширенной версии DOS (стр. 128)
Ввод с клавиатуры в расширенной версии DOS (стр. 129)
Использование символов возврата каретки, перевода строки и табуляции для вывода на экран (стр. 131)
Основные положения на память (стр. 132)
Вопросы для самопроверки (стр. 132)
Глава 9. Экранные операции II: Расширенные возможности (стр. 134)
Введение (стр. 134)
Байт-атрибут (стр. 135)
Прерывание BIOS INT 10H (стр. 136)
Программа: Мигание, инверсия, прокрутка (стр. 140)
Расширенный ASCII-код (стр. 143)
Другие операции ввода-вывода в DOS (стр. 144)
Ввод с клавиатуры по команде BIOS INT 16H (стр. 145)
Функциональные клавиши (стр. 146)
Основные положения на память (стр. 148)
Вопросы для самопроверки (стр. 149)
Глава 10. Экранные операции III: Цвет и графика (стр. 150)
Введение (стр. 150)
Текстовой (алфавитно-цифровой) режим (стр. 151)
Графический режим (стр. 152)
Режим средней разрешающей способности (стр. 153)
Программа: Вывод в цветном графическом режиме (стр. 155)
Основные положения на память (стр. 156)
Вопросы для самопроверки (стр. 156)
Глава 11. Команды обработки строк (стр. 157)
Введение (стр. 157)
Особенности команд обработки строк (стр. 157)
REP: Префикс повторения команды (стр. 158)
MOVS: Пересылка строки (стр. 159)
LODS: Загрузка строки (стр. 160)
STOS: Запись строки (стр. 161)
CMPS: Сравнение строк (стр. 161)
SCAS: Сканирование строки (стр. 164)
Сканирование и замена (стр. 165)
Альтернативное сканирование (стр. 166)
Дублирование образца (стр. 166)
Программа: Выравнивание справа при выводе на экран (стр. 167)
Основные положения на память (стр. 167)
Вопросы для самопроверки (стр. 170)
Глава 12. Арифметические операции I: Обработка двоичных данных (стр. 172)
Введение (стр. 172)
Сложение и вычитание (стр. 172)
Беззнаковые и знаковые данные (стр. 176)
Умножение (стр. 177)
Сдвиг регистровой пары DX:AX (стр. 183)
Деление (стр. 184)
Преобразование знака (стр. 188)
Процессоры Intel 8087 и 80287 для математических операций (стр. 189)
Основные положения на память (стр. 189)
Вопросы для самопроверки (стр. 190)
Глава 13. Арифметические операции II: Обработка данных в форматах ASCII и BCD (стр. 191)
Введение (стр. 191)
ASCII-формат (стр. 191)
Двоично-десятичный формат (BCD) (стр. 197)
Преобразование ASCII-формата в двоичный формат (стр. 199)
Преобразование двоичного формата в ASCII-формат (стр. 202)
Сдвиг и округление (стр. 202)
Программа: Преобразование времени и расценки работ для расчета заработной платы (стр. 203)
Основные положения на память (стр. 210)
Вопросы для самопроверки (стр. 210)
Глава 14. Обработка таблиц (стр. 212)
Введение (стр. 212)
Определение таблиц (стр. 212)
Прямой табличный доступ (стр. 214)
Табличный поиск (стр. 215)
Транслирующая команда XLAT (стр. 220)
Программа: Вывод шестнадцатиричных и ASCII-кодов (стр. 221)
Программа: Сортировка элементов таблицы (стр. 224)
Операторы типа, длины и размера (стр. 228)
Основные положения на память (стр. 229)
Вопросы для самопроверки (стр. 229)
Глава 15. Дисковая память I: Организация (стр. 231)
Введение (стр. 231)
Емкость диска (стр. 232)
Оглавление диска (стр. 232)
Таблица распределения файлов (FAT) (стр. 234)
Основные положения на память (стр. 236)
Вопросы для самопроверки (стр. 237)
Глава 16. Дисковая память II: Функции базовой версии DOS (стр. 238)
Введение (стр. 238)
Блок управления файлом FCB (стр. 239)
Использование блока FCB для создания дискового файла (стр. 240)
Программа: Использование FCB для создания файла на диске (стр. 242)
Последовательное чтение дискового файла (стр. 246)
Программа: Использование FCB для чтения дискового файла (стр. 248)
Прямой доступ (стр. 251)
Программа: Прямое чтение дискового файла (стр. 253)
Прямой блочный доступ (стр. 257)
Программа: Прямое блочное чтение (стр. 258)
Абсолютные операции дискового ввода-вывода (стр. 258)
Другие дисковые операции (стр. 262)
Программа: Выборочное удаление файлов (стр. 264)
Основные положения на память (стр. 266)
Вопросы для самопроверки (стр. 267)
Глава 17. Дисковая память III: Функции расширенной версии DOS (стр. 269)
Введение (стр. 269)
Данные в формате ASCIIZ (стр. 269)
Файловый номер и коды возврата (стр. 270)
Создание дискового файла (стр. 270)
Программа: Использование файлового номера для создания файла (стр. 272)
Чтение дискового файла (стр. 276)
Программа: Использование файлового номера для чтения файла (стр. 277)
Файлы в формате ASCII (стр. 277)
Другие дисковые функции в расширенной версии DOS (стр. 282)
Основные положения на память (стр. 289)
Вопросы для самопроверки (стр. 289)
Глава 18. Дисковая память IV: Функции BIOS (стр. 290)
Введение (стр. 290)
Дисковые операции в BIOS (стр. 290)
Байт состояния (стр. 292)
Программа: Использование BIOS для чтения секторов (стр. 293)
Основные положения на память (стр. 293)
Вопросы для самопроверки (стр. 296)
Глава 19. Печать (стр. 297)
Введение (стр. 297)
Символы управления печатью (стр. 298)
Функции печати в расширенной версии DOS (стр. 298)
Программа: Постраничная печать с заголовками (стр. 299)
Печать ASCII-файлов и табуляция (стр. 302)
Печать под управлением базовой версии DOS (стр. 307)
Специальные команды принтера (стр. 307)
Печать с помощью BIOS INT 17H (стр. 308)
Основные положения на память (стр. 310)
Вопросы для самопроверки (стр. 310)
Глава 20. Макрокоманды (стр. 311)
Введение (стр. 311)
Простое макроопределение (стр. 311)
Использование параметров в макрокомандах (стр. 312)
Комментарии в макрокомандах (стр. 316)
Использование макрокоманд внутри макроопределения (стр. 318)
Директива LOCAL (стр. 318)
Использование библиотек макроопределений (стр. 319)
Конкатенация (&) (стр. 322)
Директивы повторения: REPT, IRP и IRPC (стр. 322)
Условные директивы (стр. 324)
Директива выхода EXITM (стр. 325)
Макрокоманды, использующие директивы IF и IFNDEF (стр. 326)
Макрокоманды, использующие директиву IFIDN (стр. 326)
Основные положения на память (стр. 330)
Вопросы для самопроверки (стр. 330)
Глава 21. Связь между подпрограммами (стр. 331)
Введение (стр. 331)
Межсегментные вызовы (стр. 332)
Атрибуты EXTRN и PUBLIC (стр. 333)
Программа: Использование директив EXTRN и PUBLIC для меток (стр. 335)
Программа: Использование директивы PUBLIC в кодовом сегменте (стр. 337)
Программа: Общие данные в подпрограмме (стр. 340)
Передача параметров (стр. 343)
Компоновка программ на БЕЙСИК-интерпретаторе и Ассемблере (стр. 346)
Компоновка программ на языках ПАСКАЛЬ и Ассемблер (стр. 352)
Компоновка программ на языках СИ и Ассемблер (стр. 354)
Основные положения на память (стр. 355)
Вопросы для самопроверки (стр. 355)
Глава 22. Программный загрузчик (стр. 357)
Введение (стр. 357)
Командный процессор COMMAND.COM (стр. 358)
Префикс программного сегмента (стр. 359)
Выполнение COM-программы (стр. 361)
Выполнение EXE-программы (стр. 362)
Пример EXE-программы (стр. 364)
Функция загрузки и выполнения программ (стр. 366)
Глава 23. Прерывания BIOS и DOS (стр. 369)
Введение (стр. 369)
Обслуживание прерываний (стр. 369)
Прерывания BIOS (стр. 371)
Прерывания DOS (стр. 373)
Функции прерывания DOS INT 21H (стр. 374)
Резидентные программы (стр. 376)
Порты (стр. 380)
Генерация звука (стр. 381)
Глава 24. Справочник по директивам языка Ассемблер (стр. 384)
Введение (стр. 384)
Индексная адресация памяти (стр. 384)
Операторы языка Ассемблер (стр. 385)
Директивы Ассемблера (стр. 388)
Глава 25. Справочник по командам языка Ассемблер (стр. 400)
Введение (стр. 400)
Обозначение регистров (стр. 400)
Байт способа адресации (стр. 401)
Двухбайтовые команды (стр. 403)
Трехбайтовые команды (стр. 403)
Четырехбайтовые команды (стр. 403)
Команды в алфавитном порядке (стр. 404)
Приложения (стр. 429)
Приложение 1: Коды ASCII-символов (стр. 429)
Приложение 2: Шестнадцатирично-десятичные преобразования (стр. 430)
Приложение 3: Зарезервированные слова (стр. 432)
Приложение 4: Режимы ассемблирования и компоновки (стр. 433)
Ответы на некоторые вопросы (стр. 437)
Информация издательства (стр. 445)
Выпускные данные (стр. 448)
Обложка