BitTorrent Трекер RusTrek.ru http://5.45.70.241/ |
|
Серова M. - Программирование и кодирование [1996, TXT, RUS] http://5.45.70.241/viewtopic.php?f=289&t=25413 |
Страница 1 из 1 |
Автор: | Релизер [ 2011-11-23 21:39 ] |
Заголовок сообщения: | Серова M. - Программирование и кодирование [1996, TXT, RUS] |
Программирование и кодирование #777 Год: 1996 Автор: Марина Серова Язык: Русский Формат: TXT Качество: Изначально компьютерное (eBook) Количество страниц: 546 Описание: Хорошая книга по ассемблеру. Рассматривается системное и аппаратное программирование в MSDos. ЧАСТЬ I. ПРОГРАММИРОВАНИЕ И КОДИРОВАНИЕ Глава 1. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ 1: ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ 1-1 Потребность в короткой записи операторов 1-1 Введение в МАКРОСЫ 1-2 Метки типа LOCAL 1-4 Директивы листинга макро 1-9 Макробиблиотеки 1-9 Макродиректива повторения - REPT 1-10 Более подробно о макродирективах повторения - IRP и IRPC 1-12 Резюме по использованию макро 1-13 Условное ассемблирование 1-13 Операторы отношений 1-19 Выводы 1-21 Условное ассемблирование и МАКРОСЫ 1-21 Определение типов операндов 1-22 Фазовые ошибки и некоторые особенности MASM 1-23 Сравнение строк. Пример 1-24 Синтаксический анализ аргументов макро 1-26 Предупреждения по использованию в MASM условного ассемблирования и макросов 1-29 Структурированные операторы управления в языке Ассемблер 1-31 Как работают структурированные макросы 1-38 Приемы кодирования и некоторые предупреждения 1-40 Макро псевдо-CASE 1-43 Макросы данных 1-44 Макросы генерации программного кода 1-50 Условные макросы 1-51 Вложенные макросы 1-52 Несколько слов о возможностях макро 1-53 Макро, вызывающее подпрограммы 1-54 Применение директивы STRUC 1-56 Адресация к данным во множественных структурах 1-57 Структуры как параметры подпрограмм 1-59 Заключение 1-60 Глава 2. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ 2: ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ МОДУЛЬНЫХ ПРОГРАММ 2-1 Принципы модульного программирования 2-1 Опции проектирования 2-2 Функциональная декомпозиция 2-2 Минимизации количества передаваемых параметров 2-3 Минимизации количества необходимых вызовов 2-3 Правила модульного программирования 2-4 Справочная литература 2-5 Реализация модульных программ на языке Ассемблер 2-5 Определение параметра, аргумента, переменной константы 2-6 Параметры и модули 2-7 Опции передачи параметров 2-7 Передача через регистры 2-7 Передача данных через общую область памяти 2-8 Передача данных через память программы 2-9 Передача данных в стек 2-9 Краткое изложение опций передачи параметров 2-15 Передача параметров по значению или адресу 2-16 Передача по значению 2-16 Передача по адресу 2-17 Защита целостности передаваемых данных 2-17 Функции в сравнении с подпрограммами 2-18 Возврат значений в регистрах 2-18 Возврат значений в общей области 2-18 Возврат значений в стеке 2-19 Отчеты об исключительных ситуациях 2-19 Типы кодирования 2-20 Размещение программного кода в памяти 2-21 Относительное размещение 2-21 Адресация относительно текущего сегмента 2-21 Абсолютная адресация 2-22 Типы программного кода 2-22 Переместимый код 2-23 Отдельные области данных 2-24 Рекурсивные программы 2-25 Повторно-входимый код - необходимое условие локальной памяти 2-25 Локальная память в стеке 2-26 Инструкции ENTER и LEAVE для локальной памяти стека 2-27 Краткое изложение размещения программного кода 2-31 Интерфейс с языками высокого уровня 2-32 Модель сегмента фирмы "Микрософт" 2-36 Назначение и использование локального ЗУ в памяти 2-37 Введение в управление памятью в MS-DOS 2-39 Распределение памяти из языков высокого уровня 2-42 Защита данных и управление областью действия данных 2-42 Локальная память в сравнении с глобальной памятью 2-43 Использование регистров сегмента 2-43 Управление размером доступных данных 2-44 Защита целостности данных 2-44 Заключение 2-45 Глава 3. УПРАВЛЕНИЕ ПРОГРАММАМИ И ПАМЯТЬЮ 3-1 Память MS-DOS 3-1 Формат физической памяти MS-DOS 3-1 Расширяемая и расширенная память 3-1 Использование памяти MS-DOS 3-3 Цепочки памяти MS-DOS 3-5 Блок операционной среды программы 3-12 Процессы MS-DOS 3-13 Контекст процесса MS-DOS 3-13 Сегмент программного префикса 3-13 Адреса завершения PSP 3-14 Таблица описателей файлов PSP 3-15 SHOWMEM и указатель адреса среды PSP 3-21 Функции для манипулирования PSP 3-22 Файлы процессов MS-DOS: .EXE в сравнении с .COM 3-23 Загрузка файла типа .COM 3-25 Формат программного файла типа .EXE 3-25 Блок начального распределения памяти .EXE 3-27 Загрузчик процесса .EXE MS-DOS 3-29 Перекрытия 3-30 Резидентные программы 3-31 Описание библиотеки исполняющей системы 3-31 Загрузка резидентных подпрограмм из командной строки 3-32 Доступ к резидентным подпрограммам через прерывания 3-34 Как определить, установлены ли резидентные программы? 3-41 Удаление резидентных подпрограмм из памяти 3-42 Функция 4Bh - загрузка и выполнение программ 3-44 Загрузка и выполнение программ через MS-DOS (код 4Bh с AL=0) 3-48 Наследство и управление порожденной программой 3-49 Выполнение команд MS-DOS с функцией 4Bh 3-50 Важное предупреждение 3-50 Загрузка программного оверлея (перекрытия) посредством MS-DOS (код функции 4Bh с AL = 3) 3-51 Доступ к программному оверлею из порождающей программы 3-52 Загрузка резидентных программ 3-55 Специальный случай: библиотеки исполняющей системы (RTL) с неполным временем работы 3-55 Переключение контекста и переключение стека 3-57 Дополнительные соображения по переключению стеков 3-59 Введение в резидентную часть оперативной памяти 3-60 ROM-BIOS в сравнении с загружаемой BIOS 3-60 Прерывания в сравнении с системами с опросом 3-61 Внесение "заплат" в векторы прерываний 3-62 REMOVE - пример интегрированной программы 3-65 Заключение 3-72 Глава 4. ПРОГРАММЫ TSR (ЗАВЕРШИТЬ И ОСТАВИТЬ РЕЗИДЕНТНОЙ) 4-1 Обзор 4-1 Работа с аппаратурой PC 4-2 Аппаратные прерывания 4-3 Программные прерывания 4-4 Прерывания от таймера 4-4 Клавиатура 4-4 Аппаратура отображения 4-6 МDA и CGA 4-6 Занесение в память дисплея 4-7 Видео поддержка ROM-BIOS 4-8 Подмена прерывания 4-8 Создание горячего ключа 4-9 Подмена Int 16h 4-10 Опрос буфера клавиатуры прерыванием от таймера Int 1Ch 4-11 Ловушка для Int 9 4-12 Управление состоянием клавиатуры 4-12 Альтернатива для перехвата Int 1Сh 4-14 Управление отображением на экране 4-15 Работа в среде DOS 4-17 Структуры данных ввода/вывода DOS 4-17 "Список списков" 4-17 Системная таблица файлов 4-18 Сегмент программного префикса (PSP) 4-20 Рабочая таблица файлов (JFT) 4-21 Диспетчер BIOS, Int 21h 4-23 Подпрограммы в/в символов 4-24 Глобальные переменные DOS 4-25 Обработка break 4-25 Обработка критической ошибки 4-26 Загрузка программы 4-27 Завершение программы 4-28 Загрузка и инициализация TSR 4-29 Проверка версии используемой DOS 4-30 Размещение резидентных копий TSR 4-30 Запись адреса сегмента программного префикса (PSP) 4-34 Запись адреса критической секции (INDOS) и адреса критической ошибки 4-34 Захват векторов прерываний 4-35 Проверка типа дисплея 4-37 Освобождение операционной среды 4-37 Завершение программы 4-38 Реактивация, архитектура DOS и сервис 4-39 Определение безопасности повторной активации 4-39 Переключение стека и сохранение регистров 4-41 Организация "ловушек" break и критических ошибок 4-41 Обращение к глобальным переменным 4-43 Фоновая обработка с использованием Int 28h 4-43 Удаление из памяти программ TSR 4-48 Заключение 4-48 Глава 5. ПРОГРАММЫ РЕАЛЬНОГО ВРЕМЕНИ В СРЕДЕ MS-DOS 5-1 Обзор программ реального времени 5-1 Что такое реальное время? 5-1 Характеристики систем реального времени 5-2 Основные типы систем реального времени 5-3 Однонаправленные системы 5-3 Двухнаправленные стабильные системы 5-4 Двухнаправленные потенциально нестабильные системы 5-4 Типичные временные характеристики и решения систем реального времени 5-5 Использование MS-DOS для приложений реального времени 5-6 Быстродействие MS-DOS 5-6 Тактовая частота MS-DOS 5-6 Передача данных в операционной системе MS-DOS 5-8 Передача данных методом прямого доступа к памяти (DMA) 5-14 Передача данных методом прерываний данных 5-14 Сравнение методов передачи данных 5-15 Средства ускоренной записи программ 5-16 Случаи, когда следует использовать операционную систему MS DOS для прикладных программ реального времени 5-18 Проектирование систем реального времени в MS-DOS 5-19 Пример (упрощенной системы управления домашним хозяйством) 5-20 Система упорядоченного опроса 5-24 Основной цикл с прерываниями 5-25 Циклические планировщики 5-27 Выбор метода построения системы 5-30 Многозадачность в MS-DOS 5-30 Условия существования мультизадачного режима в персональном компьютере IBM PC/AT 5-31 Заключение 5-31 ЧАСТЬ II. УСТРОЙСТВА Глава 6. УСТАНАВЛИВАЕМЫЕ ДРАЙВЕРЫ УСТРОЙСТВ 6-1 Зачем нужны драйверы устройств? 6-2 Когда использовать драйверы устройств? 6-3 MS-DOS - нереентерабельная система 6-3 Установка драйверов устройств 6-4 Файл CONFIG.SYS 6-5 Использование команды ASSIGN для замены драйверов дисковых устройств 6-9 Типы драйверов устройств 6-9 Работа с драйвером в среде MS-DOS 6-10 Функции CP/M-стиля для работы с символьными устройствами 6-11 Работа с устройством с использованием блоков управления файлами 6-11 Работа с устройствами на основе описателей файлов 6-11 Функция 44H - управление вводом/выводом для устройств (IOCTL) 6-12 Конфигурация с помощью команд управления вводом/выводом 6-13 Группа команд управления вводом/выводом 6-15 Прямой доступ к диску через прерывания INT 25H и INT 25H 6-15 Опция "Ввод/вывод с проверкой" 6-16 Выводы 6-17 Создание драйверов устройств 6-17 Заголовок драйвера 6-19 Поле связи 6-19 Слово атрибутов 6-19 Вектора точек входа программ СТРАТЕГИЙ и ПРЕРЫВАНИЙ 6-22 Поле имени/количества устройств 6-23 Программа ПРЕРЫВАНИЙ 6-24 Команды драйверов устройств 6-29 Получение блока параметров BIOS 6-35 Создание загрузочного файла драйвера устройства 6-46 Отладка драйверов устройств 6-47 Отображение списка загруженных в системе драйверов 6-48 Пример драйвера виртуального диска 6-53 Заключение 6-68 Глава 7. ИСПОЛЬЗОВАНИЕ РАСШИРЕННОЙ ПАМЯТИ 7-1 Урок истории 7-3 LIM EMS 7-4 LIM EMS 3.2 7-5 Идеи и терминология LIM EMS 3.2 7-5 Улучшенная спецификация расширенной памяти 7-6 Ограничение размера окна 7-6 LIM EMS 4.0 7-7 LIM EMS 4.0 по сравнению с LIM EMS 3.2 и AQA EEMS 7-9 Соображения по совместимости 7-9 Технические соображения 7-11 Менеджер расширенной памяти 7-11 Функции менеджера расширенной памяти 7-11 Реализации менеджера расширенной памяти 7-20 Оборудование и программное обеспечение расширенной памяти 7-21 Аппаратура и программное обеспечение 80386 7-21 Только программное обеспечение 7-22 Совместимость 7-22 IBM PS/2 80286 опция увеличенной памяти 7-22 Интерфейс прикладной программы EMS 7-23 Конфликт прерываний 7-24 Языки высокого уровня 7-24 Обработка условий ошибок 7-24 Написание программ, использующих расширенную память 7-28 Общие руководящие указания по программированию 7-28 Применение расширенной памяти в нерезидентных программах 7-30 Обнаружение наличия менеджера расширенной памяти 7-30 Метод открытого обработчика 7-30 Проверка версии спецификации расширенной памяти, поддерживаемой менеджером расширенной памяти 7-31 Определение доступного объема расширенной памяти 7-32 Размещение расширенной памяти 7-32 Адресация расширенной памяти 7-33 Управление логическими адресами 7-34 Управление физическими адресами 7-35 Чтение и запись расширенной памяти 7-36 Два способа задания физических страниц 7-37 Разделение расширенной памяти между программами 7-38 Выполнение кода в расширенной памяти 7-40 Освобождение расширенной памяти 7-41 Системное программное обеспечение 7-42 Сравнение нерезидентных и резидентных программ 7-42 Обнаружение наличия менеджера расширенной памяти 7-43 Управление контекстом 7-43 Переключение задач 7-45 Неразрушаемая память 7-46 Управление доступом 7-46 Заключение 7-46 Библиография 7-47 Программы интерфейса низкого уровня и пример приложения 7-49 О примере приложения 7-50 Несколько соображений по кодированию 7-51 Глава 8. ПРОГРАММИРОВАНИЕ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА 8-1 Основы асинхронной последовательной связи 8-1 Контроль по четности и обнаружение ошибок 8-4 Связь с использованием стандарта RS-232C 8-4 Управление потоком с помощью XON/XOFF 8-5 Последовательный порт с точки зрения программиста 8-6 Управляемый прерываниями последовательный ввод/вывод 8-8 Прерывания последовательного адаптера 8-9 Программирование контроллера 8259A 8-12 Использование средств MS-DOS для программирования последовательного порта 8-13 Драйвер, TSR или автономная программа 8-13 Использование BIOS для последовательной связи 8-14 Установка коммуникационных параметров с использованием BIOS 8-14 Получение адреса последовательного порта 8-17 Настройка на управляемый прерываниями последовательный ввод/вывод 8-17 Обработка прерываний последовательного порта 8-19 Очереди обработчика прерываний 8-21 Уборка перед закрытием магазина 8-21 Пример программы 8-22 Заключение 8-32 Глава 9. ПРОГРАММИРОВАНИЕ EGA И VGA 9-1 Мониторы и возможности EGA 9-2 Усовершенствованный графический дисплей 9-2 Монохромные графические режимы 9-3 Соображения по установке и проверка наличия 9-5 Организация памяти 9-11 Регистры-защелки 9-12 Прямая запись на экран 9-14 Много точек 9-17 Использование регистра установки/сброса 9-19 Использование режимов записи EGA 9-20 Чтение битовых матриц 9-24 Цветовые палитры EGA 9-25 Регистр циклического сдвига данных 9-28 Режим отображения 256 цветов VGA 9-32 Заключение 9-31 Глава 10. ПРОГРАММИРОВАНИЕ РАСШИРЕНИЯ ЧИСЛОВОЙ ОБРАБОТКИ ФИРМЫ INTEL 10-1 NPX с точки зрения программиста 10-2 Регистры данных в NPX 10-2 Представление в NPX вещественных чисел с плавающей точкой 10-3 Другие форматы данных, используемые в NPX 10-5 Короткий вещественный и длинный вещественный форматы данных 10-5 Целое слово, короткий целый и длинный целый форматы данных 10-6 Форматы упакованного двоично-десятичного кода (BCD) 10-6 Коротко о типах данных 10-7 Набор команд NPX 10-9 Префикс FWAIT 10-9 Способы адресации NPX 10-12 Команды FINIT и FFREE 10-13 Управление NPX 10-14 Слово состояния NPX 10-15 Обработка особых ситуаций в NPX 10-18 Использование средств MS-DOS с NPX 10-19 Использование MASM и NPX 10-19 NPX переключатели MASM - /r и /s 10-20 Типы данных NPX в MASM 10-20 Отладка регистров NPX 10-22 Форматы кодировки команд 10-23 Примеры программирования NPX с помощью MASM 10-23 Команды FWAIT и FINIT 10-23 Программа DUMP87 10-23 Использование программы DUMP87 10-32 Использование NPX для преобразований двоичного кода в десятичный 10-34 Операции с целым 10-34 Операции с плавающей запятой 10-35 Вычисления в 2-ной системе 10-35 Вычисления в 10-ричной системе 10-36 Функция масштабирования десятичного в вещественное 10-36 Функция масштабирования вещественного в десятичное 10-37 Заключение 10-44 ЧАСТЬ III. ВОССТAHОВЛЕНИЕ 11-1 Глава 11. СТРУКТУРА ДИСКА И ВОССТAHОВЛЕНИЕ ФАЙЛОВ 11-1 Основные принципы восстановления файлов 11-3 Структура 40-трековых, односторонних, 5,25-дюймовых гибких дисков 11-3 Структура 40-трековых, двухсторонних, 5,25-дюймовых гибких дисков 11-5 Структура 80-трековых, двухсторонних, 5,25-дюймовых гибких дисков 11-5 Сектор начальной загрузки 11-9 Таблицы разделения жесткого диска 11-31 Сектора каталога 11-33 Имя файла, тип файла и состояние файла 11-33 Атрибут 11-35 Начальный кластер 11-36 Размер файла 11-37 Элементы каталога "." и ".." 11-37 Cектора таблицы размещения файла (FAT) 11-38 Декодирование элементов таблицы FAT 11-42 Обработка 12-битовых входов таблицы FAT 11-46 Обработка 16-битовых входов таблицы FAT 11-48 Преобразование кластеров в логические сектора 11-48 Обзор процедур восстановления 11-49 Восстановление разрушенных файлов при помощи утилит CHKDSK и RECOVER 11-50 Восстановление стертых файлов 11-51 Основные принципы 11-51 Восстановление стертых файлов аппаратным способом 11-54 Использование программы контроля RESCUE 11-55 Использование утилит Нортона 11-68 Использование "Ultra-утилит" 11-69 Заключение 11-70 Глава 12. ВОССТАНОВЛЕНИЕ ДАННЫХ, ПОТЕРЯННЫХ В ПАМЯТИ 12-1 Восстановление после сбоев, произошедших во время обра- ботки текста или редактирования текста 12-1 Восстановление программ на языке Бейсик из памяти 12-5 Заключение 12-7 ЧАСТЬ IV. СОВМЕСТИМОСТЬ 13-1 Глава 13. РАЗЛИЧИЯ В ВЕPCИЯХ MS-DOS 13-1 Общие рекомендации по совместимости 13-2 Некоторые соображения относительно языков высокого уровня 13-6 Прерывания MS-DOS 13-7 Вызов функций 13-8 Выполнение вызова функций стандартным образом 13-9 Выполнение вызова функций в режиме совместимости 13-9 Еще один способ (только для версий операционной системы MS-DOS, начиная с 2.00 и выше) 13-10 Функции, выполняемые в разных версиях операционной системы MS-DOS 13-10 Группа завершения программы 13-21 Группа стандартного ввода-вывода с символьных устройств (01h - 0Ch) 13-22 Группа стандартного управления файлами (0Dh - 24h, 27h - 29h) 13-22 Стандартные функции, не связанные с устройствами (25h,26h, 2Ah - 2Eh) 13-22 Группа расширенных (общих) функций (2Fh - 38h, 4Ch - 4Fh,54h - 57h, 59h - 5Fh, 62h) 13-23 Группа функций работы с каталогом (39h - 3Bh, 47h) 13-24 Группа управления памятью/процессом (48h - 4Bh) 13-24 Коды ошибок 13-24 Коды критических и тяжелых ошибок (полученных при прерывании "Int 24h") 13-24 Коды возврата ошибок обращения к функциям (только версий 2.0 и выше операционной системы MS-DOS) 13-25 Расширенная информация по ошибкам обращения к функциям (для версий 3.0 и выше операционной системы MS-DOS) 13-30 Код ошибки 13-30 Класс ошибки 13-31 Предлагаемое действие 13-31 Местоположение 13-32 Форматы дисков 13-33 Управление файлами 13-35 Использование блоков управления файлами (FCB) 13-36 Описатели файлов операционной системы MS-DOS 13-37 Операционная система MS-DOS, персональный компьютер фирмы "ИБМ" IBM PC и персональный компьютер IBM PS/2 13-38 Сходства 13-39 Различия 13-40 Совместимость с другими операционными системами 13-41 Операционная система CP/M-80 13-42 Операционные системы СР/M-86 и "Concurrent CP/M-86" 13-44 Операционные системы "Concurrent PC-DOS" и "Concurrent DOS-286" 13-44 Операционные системы XENIX и UNIX 13-45 Операционная система OS/2 13-45 Заключение 13-46 ЧАСТЬ V. ПРИЛОЖЕНИЯ 17-1 Приложение А. СРЕДСТВА РАЗРАБОТКИ 17-1 Использование командных файлов для автоматизации процесса трансляции с языка Ассемблера П-1 Использование командных файлов для макроассемблера MASM версий с 1.00 по 5 П-1 Использование командных файлов для макроассемблера MASM версий 5 и выше П-3 Использование средства MAKE фирмы "Майкрософт" П-7 Использование шаблонов для создания программ с расширением ".COM" и ".EXE" П-9 Использование библиотечных стандартных программ П-26 Приложение Б. НЕ ОПИСАННЫЕ В ДОКУМЕНТАЦИИ ПО ОПЕРАЦИОННОЙ СИСТЕМЕ MS-DOS ПРЕРЫВАНИЯ И ФУНКЦИИ П-43 Не описанные в документации прерывания операционной системы MS-DOS П-43 Прерывание 28h(40): прерывание по безопасности DOS Прерывание 29h(41): Вывод на устройство консоли Прерывания с 2Ah(42) по 2Dh(45) : внутренние стандартные программы операционной системы MS-DOS Прерывание 2Eh(46). "Черный ход" для командного процессора Прерывания с 30h(48) по FFh(255) Не описанные в документации вызовы функций прерывания 21h(33) Функции 18h(24), 1Dh(29), 1Eh(30), 20h(32h): формальные функции, обеспечивающие совместимость с операционной системой CP/M Функция 1Fh(31): найти информацию о блоке на диске для текущего диска Функция 32h(50) : найти информацию о блоке на диске для указанного диска Функция 34h (52): получить флаг занятости операционной системы MS-DOS Функция 37h(55): получить/установить символ переключения Функция 50h(80): установить сегмент PSP Функция 51h(81): Считать сегмент PSP Функция 52h(82): Считать адрес "списка списков" операционной системы MS-DOS Функция 53h(83): Преобразовать блок параметров BIOS (BPB) в блок на диске Функция 55h(85): Создать блок PSP Функция 58h(88): Получить/установить стратегию распределения памяти Функция 60h(96): Разложить строку пути доступа на строку с полностью уточненным путем доступа Функция 63h(99): Получить таблицы начального байта Приложение В. ЛИТЕРАТУРА П-52 |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |