Зарегистрироваться
Восстановить пароль
FAQ по входу

Фельдман С. Системное программирование на персональном компьютере

  • Файл формата djvu
  • размером 3,10 МБ
  • Добавлен пользователем
  • Отредактирован
Фельдман С. Системное программирование на персональном компьютере
М.: Бук-пресс, 2006. — 512 с. 2-е изд. - ISBN 5-9643-0027-8.
В этом курсе лекций излагаются классические модели, методы и алгоритмы языка программирования высокого уровня, дается строгое изложение основ теории системного программирования, приводятся примеры программ на языке Ассемблер. Главное внимание уделяется объяснению того, как использовать на практике полученные знания. Курс разбит на лекции, включающие теоретический материал и лабораторные работы.
Данное издание рекомендуется в качестве дополнительного учебного пособия студентам высших учебных заведений по дисциплине "Системное программирование" и по специальности 351400 "Прикладная информатика".
Содержание
Основные понятия и определения
Программы и программное обеспечение
Системное программирование
Этапы подготовки программы
Ассемблеры
Программирование на языке Ассемблера
Предложения языка Ассемблера
Регистры
Биты и байты
ASCII
Двоичные числа
Шестнадцатеричное представление
Сегменты
Расширение набора команд
Способы адресации
Директивы
Директивы определения данных
Директива определения байта (DB)
Директива определения слова (DW)
Директива определения двойного слова (DD)
Директива определения учетверенного слова (DQ)
Директива определения десяти байт (DT)
Непосредственные операнды
Директива EQU
Регистры
Сегментные регистры: CS, DS, SS и ES
Регистры общего назначения: AX, BX, CX и DX
Регистровые указатели: SP и BP
Индексные регистры: SI и DI
Регистр командного указателя: IP
Флаговый регистр
Арифметические операции
Обработка двоичных данных
Беззнаковые и знаковые данные
Умножение
Сдвиг регистровой пары DX:AX
Деление
Преобразование знака
Обработка данных в форматах ASCII и BCD
Двоичнодесятичный формат (BCD)
Сдвиг и округление
Команды обработки строк
Свойства операций над строками
REP: Префикс повторения цепочечной команды
MOVS: Пересылка строк
LODS: Загрузка строки
STOS: Запись строки
CMPS: Сравнение строк
SCAS: Сканирование строк
Сканирование и замена
Альтернативное кодирование
Дублирование образца
Обработка таблиц
Определение таблиц
Прямой табличный доступ
Табличный поиск
Транслирующая команда XLAT
Операторы типа, длина и размеры
Свойства операторов работы с экраном
Команда прерывания INT
Установка курсора
Очистка экрана
Использование символов возврата каретки,
конца строки и табуляции для вывода на экран
Расширенные возможности экранных операций
Расширенный ASCII код
Другие операции ввода/вывода
Ввод с клавиатуры по команде BIOS INT H
Функциональные клавиши
Цвет и графика
Требования языка
Комментарии в программах на Ассемблере
Формат кодирования
Директивы
Память и регистры
Инициализация программы
Ввод и выполнение программ
Ввод программы
Подготовка программы для выполнения
Ассемблирование программы
Компоновка программы
Выполнение программы
Файл перекрестных ссылок
Алгоритмы работы
Ассемблеров
Двухпроходный Ассемблер — первый проход
Структура таблиц Ассемблера
Двухпроходный Ассемблер — второй проход
Некоторые дополнительные директивы
Директивы связывания
Одно и многопроходный Ассемблер
Логика и организация
программы
Команда JMP
Команда LOOP
Флаговый регистр
Команды условного перехода
Процедуры и оператор CALL
Сегмент стека
Команды логических операций: AND, OR, XOR, TEST, NOT
Изменение строчных букв на заглавные
Команды сдвига и циклического сдвига
Организация программ
Компоновка программ
Межсегментные вызовы
Атрибуты EXTRN и PUBLIC
Компоновка программ на языке С и Ассемблере
Выполнение COMпрограммы
Выполнение EXEпрограммы
Функции загрузки и выполнения программы
Выполнение программ
Начинаем работать
Определение данных
Машинная адресация
Определение размера памяти
Специальные средства отладчика
Макросредства
Простое макроопределение
Использование параметров в макрокомандах
Комментарии
Использование макрокоманд в макроопределениях
Директива LOCAL
Использование библиотек макроопределений
Конкатенация (&)
Директивы повторения: REPT, IRP, IRPC
Условные директивы
Директива выхода из макроса EXITM
Макрокоманды, использующие IF и IFNDEF
Макрос, использующий IFIDNусловие
Макропроцессоры
Основные понятия
Сравнение макросредств и подпрограмм
Некоторые возможности Макроязыка
Локальные переменные макроопределения
Присваивание значений переменным макроопределения
Глобальные переменные макроопределения
Уникальные метки
Операторы повторений
Выдача сообщения
Завершение обработки
Комментарии макроопределения
Макрорасширения в листинге
Алгоритм работы Макропроцессора
Библиотеки макроопределений
Вложенные макровызовы Вложенные макроопределения
Качественное расширение возможностей
Структурный Ассемблер
Объектноориентированный Ассемблер
Переносимый машинный язык
Загрузчики и редакторы связей
Основные понятия
Формат объектного модуля
Алгоритм работы Непосредственно Связывающего Загрузчика
Кросс-системы
Вычислительные системы
Модель регистров
Модель оперативной памяти
Модель процессора
Ошибки программирования
Классификация ошибок программирования
Ошибки при задании необходимых начальных
условий для отдельных программ
Распознавание ошибок Ассемблером
Распространенные ошибки в драйверах вводавывода
Распространенные ошибки в программах прерывания
Введение в макроассемблер
Состав пакета
Общие сведения
Запуск макроассемблера
Опции MASM
LINK: линкер модулей
SYMDEB: символьный отладчик программ
CREF: утилита перекрестных ссылок
LIB: утилита обслуживания библиотек
MAKE: утилита сопровождения программ
Сегментация программы
Условные директивы
Директивы условной генерации ошибок
Макросредства
Макродирективы
Блоки повторений
Макрооператоры
Директивы определения памяти
Скалярные данные
Записи
Структуры
Описание символических имен
Директивы управления файлами
Управление листингом
Другие директивы
Глобальные объявления
Инструкции процессоров
Инструкции пересылки данных
Инструкции общего назначения
Ввод/вывод
Адресные операции
Операции с флагами
Арифметические инструкции
Арифметические операции и флаги
Сложение
Вычитание
Умножение
Деление
Инструкции обработки бит
Сдвиги
Вращения
Инструкции обработки строк
Пересылка строк
Сравнение строк
Сканирование
Практикум
Двупросмотровый алгоритм
Однопросмотровый алгоритм
Реализация внутри Ассемблера
Лабораторные работы
Общие указания к выполнению
Язык С как инструмент системного программирования
Порядок выполнения работ
Содержание отчета
Лабораторная работа Работа с символьными строками
Пример решения задачи
Лабораторная работа Представление в памяти массивов и матриц
Лабораторная работа Проверка оборудования
Лабораторня работа Управление клавиатурой
Лабораторная работа Управление таймером
Лабораторная работа Управление видеоадаптером
Лабораторная работа Главная загрузочная запись
Лабораторная работа Дисковые структуры данных DOS
Лабораторная работа N Управление программами

Что нужно знать для экзамена
Функции прерывания DOS INT H
Порты
Что нужно знать для семинара
Справочник по директивам языка Ассемблера
Справочник по командам языка Ассемблера
Список использованной литературы
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация