
- •В.А. Афанасьев
- •Часть 1 Лабораторный практикум
- •Предисловие
- •1. Краткая характеристика операционной среды ms-dos в компьютерах с операционной системой Windows
- •2. Составные части ms-dos и её инициализация
- •3. Взаимодействие Ассемблерной программы с ms-dos и аппаратными средствами Компьютера
- •4. Сегментированная организация памяти в реальном режиме. Виды памяти в среде ms-dos
- •Распределение первого мегабайта памяти компьютера
- •Содержание некоторых полей области данных bios
- •5. Программная модель 32-разрядных процессоров i80x86
- •Назначения сегментных регистров
- •6.2.2. Путь выполнения команды
- •6.2.3. Трансляция программы. Опции командной строки
- •6.2.4. Структура программы для .Exe- и .Com-файлов. Образ программы в памяти
- •Сегменты упрощенной модели памяти Small
- •%Title "Имя exe-файла программы"
- •%Title "Имя com – файла программы"
- •6.2.5. Работа с отладчиком Turbo Debugger (td)
- •6.2.6. Форматы машинных команд и их кодирование
- •Определение эффективного адреса
- •Косвенные виды адресации
- •6.2.6.2. Использование 32-битных регистров
- •6.2.7. Работа над синтаксическими ошибками при ассемблировании программы
- •6.3. Задание к работе. Порядок выполнения
- •6.4. Контрольные вопросы
- •Приложения к лабораторной работе № 1 п.1.1. Машинные коды команд базового процессора i8086
- •Машинные коды команд базового процессора i8086
- •П.1.2. Демонстрационные файлы
- •П.1.3. Форматы исполняемых файлов .Exe и .Com на диске
- •А) Листинг prog_com. Lst
- •Содержимое префикса программы psp
- •А) Листинг prog_exe.Lst
- •Б) Машинный код исполняемого файла prog_exe.Exe на диске объёмом 624 байта
- •Формат заголовка исполняемого .Exe – файла на диске
- •7.2.2. Ввод с клавиатуры символьной информации
- •7.2.2.1. Буфер ввода данных с клавиатуры
- •7.2.2.2. Системные функции dos ввода данных с клавиатуры
- •Сравнительная характеристика функций dos ввода с клавиатуры
- •7.2.3. Функции dos вывода данных на экран
- •7.2.4. Расширенные коды ascii и управление программой с клавиатуры
- •Расширенные коды для функциональных клавиш
- •7.2.5. Строковые команды. Общая характеристика
- •Команды обработки строк
- •7.3. Задания к работе. Подготовка и выполнение
- •7.4. Контрольные вопросы
- •Приложения к лабораторной работе № 2 Приложение п.2.1. Примеры реализаций типового задания
- •Приложение п.2.2. Esc-последовательности
- •Параметры Esc-последовательности
- •Приложение п.2.3. Таблица символов в кодировке ascii
- •8.2.2. Прямое программирование видеобуфера в текстовом режиме
- •8.2.3. Справочные данные по функциям bios
- •8.2.3.1. Прерывание int 10h. Видеофункции bios
- •Текстовые видеорежимы и страницы в стандарте vga, поддерживаемые современными видеоконтроллерами
- •8.2.3.2. Рекомендации по использованию видеосервиса bios
- •8.2.3.3. Прерывание int 16h
- •8.2.3.4. Задержка программных операций
- •Int 15h, функция 86h
- •8.3. Варианты индивидуального задания
- •8.4. Контрольные вопросы
- •Приложения к работе № 3 Примеры реализаций типовых заданий п.3.1. Листинг 3.4. Программа получения скан-кодов клавиш клавиатуры
- •П.3.2. Листинг 3.5. Демонстрационная программа использования функций bios для работы с экраном и клавиатурой
- •9.2.1. Представление знаковых и беззнаковых чисел в 16-разрядном компьютере
- •Представление чисел в 16- разрядном компьютере
- •9.2.2. Преобразование ascii-кодов чисел с произвольным основанием в двоичное число
- •9.2.3. Преобразование двоичного числа в ascii-строку числа по произвольному основанию
- •9.2.4. Задание к работе. Порядок выполнения
- •Варианты заданий 1-7
- •Варианты заданий 8-14
- •9.2.5. Вопросы построения многомодульных программ
- •9.2.6. Ассемблирование и компоновка отдельных модулей в программу. Создание библиотеки объектных модулей
- •9.3. Контрольные вопросы
- •Список использованной и рекомендуемой Литературы
- •Оглавление
Министерство образования Российской Федерации
Новосибирский Государственный Технический Университет
________________________________________________________________________________
В.А. Афанасьев
Assembler IBM PC
Часть 1 Лабораторный практикум
Утверждено Редакционно-издательским советом университета в качестве учебного пособия
Новосибирск
2003
УДК 004.431.4(075.8)
А 941
Рецензенты: канд. техн. наук, доц. Г.П. Голодных, ст. преп. Л.Г. Макаревич,
Работа подготовлена на кафедре вычислительной техники для студентов II курса АВТФ, обучающихся по специальности 2201 «Вычислительные машины, комплексы, системы и сети»
Афанасьев В.А.
А 941 Assembler IBM PC: Учебное пособие. Ч.1. Лабораторный практикум. – Новосибирск: Изд-во НГТУ, 2003. – 115 с.
Учебное пособие условно содержит два раздела. В первом излагаются вопросы системного характера - операционная среда MS DOS и её взаимодействие с ассемблерными программами в процессе их исполнения. Второй раздел представлен методическими рекомендациями к лабораторному практикуму (4 работы). Как первый, так и второй разделы содержат значительное число практических сведений справочного характера, которые используются в процессе программирования на языке ассемблера. Описание каждой работы содержит большое количество программных фрагментов и процедур, иллюстрирующих выполнение типовых заданий.
Учебное пособие ориентировано на самостоятельное изучение студентами прикладных вопросов программирования на языке ассемблера в рамках учебного курса.
УДК 004.431.4(075.8)
В.А. Афанасьев, 2003
Новосибирский государственный
технический университет, 2003
Предисловие
Assembler IBM PC, являющийся символическим представлением машинного языка, неразрывно связан с архитектурой процессоров Intel 80x86, что создаёт возможность изучения компьютера на "нижнем уровне", а именно: систему команд и форматы данных, программную модель компьютера и логическую организацию памяти, управление операциями ввода-вывода и систему обработки прерываний, функции базовой системы ввода/вывода BIOS и операционной системы DOS. Следовательно, язык ассемблера является неотъемлемой частью профессионального компьютерного образования.
Предлагаемое читателю учебное пособие (часть 1) ориентировано на проведение лабораторного практикума по дисциплине "Программирование. Раздел: Assembler IBM PC", включающей, помимо лекций и лабораторных занятий, выполнение курсовой работы. Выполнению курсовой работы "Разработка прикладных обработчиков прерываний и резидентных программ в MS-DOS." – будет посвящена вторая часть учебного пособия.
Содержание данного пособия (шлифовалось в течение последних четырёх лет) определил тот круг вопросов, знание которых необходимо как разработчику первых ассемблерных программ, так и уже имеющему определённый опыт в этой сфере деятельности. Так, специфика разработки программ на языке ассемблера требует использования большого количества справочного материала, относящегося:
к использованию программного пакета Turbo Assembler фирмы Borland (TASM) для ассемблирования, компоновки и отладки программ;
применению сервисных функций DOS и BIOS в ассемблерных программах;
архитектурным особенностям процессоров Intel (организация памяти, программная модель, система команд процессора и обработка программных прерываний).
Все эти вопросы нашли отражение в пособии.
Описание каждой лабораторной работы включает большое количество фрагментов и целых программ, иллюстрирующих выполнение типовых заданий. Кроме того, в работу включены разделы, которые не содержатся в традиционной литературе по ассемблеру, но являются важными для профессиональной подготовки специалистов в области программирования:
характеристика операционной среды MS DOS в операционной системе Windows;
особенности взаимодействия ассемблерных программ с MS DOS и аппаратными средствами компьютера;
форматы исполняемых файлов .EXE и .COM в памяти и на диске.
Книга может служить практическим пособием для самостоятельной разработки программ и упражнений в рамках заданий к лабораторным работам.