
- •Программирование эвм
- •Int 21h ;кодом возврата 0 прерывания 21h
- •Работа с битами
- •Порядок выполнения работы
- •Устройства ввода-вывода
- •Ввод исходных данных с клавиатуры и вывод результатов на дисплей
- •Inc di ;смещение в видеопамяти на следующий символ
- •Порядок выполнения работы
- •Контрольные задания
- •Система команд процессора
- •Способы адресации
- •Влияние команд на регистр флагов
- •Расширенные регистры и типы данных процессоров x86
- •Система команд процессоров ia-32 и Intel 64
- •Int 21h ;системного прерывания 21h
- •Использование дальней подпрограммы
- •X dw 0aabBh, 0abbAh, 0baaBh, 0bbaAh ;исходные данные
- •Использование подпрограмм для ввода-вывода
- •Порядок выполнения работы
- •Контрольные задания
- •Дескрипторы
- •Порядок работы процессора в защищенном режиме
- •Использование дальней подпрограммы в защищенном режиме
- •Использование idt. Ввод данных с клавиатуры в защищенном режиме
- •Порядок выполнения работы
Порядок выполнения работы
Написать на языке ассемблера программу, выполняющую определенную задачу в защищенном режиме.
Исходные данные вводятся в память с клавиатуры, результаты выводятся на дисплей также в защищенном режиме.
Основную задачу должна выполнять дальняя подпрограмма.
Главная программа последовательно читает массив введенных с клавиатуры исходных данных из памяти и передает текущий элемент массива подпрограмме через стек. Подпрограмма проверяет исходные данные на допустимость или корректность, при положительном исходе проверки осуществляет преобразование и возвращает результат основной программе. Основная программа размещает результаты в другой области памяти также в виде массива. Затем они выводятся на дисплей.
Исследовать работу программы, отслеживая состояние системы после выполнения команд: значения регистров процессора, ячеек памяти, портов ввода-вывода. Результаты анализа работы программы оформить в виде дополнения к листингу.
Выполнить необходимые сравнения, сделать выводы.
Общие признаки всех вариантов:
-
Размер операндов — двойное слово.
-
Использование, по крайней мере, одной дальней подпрограммы.
-
Использование IDT для ввода данных с клавиатуры.
Признаки формирования вариантов:
-
Формат ввода данных с клавиатуры и вывода результатов на дисплей.
-
Задача.
Сравнения:
-
GDT и IDT.
-
Несистемный дескриптор и шлюз прерывания.
-
Вызов ближней и дальней подпрограммы в защищенном режиме.
Содержание отчета
-
Задание, конкретизированное вариантом.
-
Листинг программы, дополненный результатами исследования.
-
Сравнения и выводы по результатам исследования программы и выполненным сравнениям.
Контрольные вопросы
-
Почему после включения питания процессор работает в реальном, а не в защищенном режиме?
-
Каков максимальный размер GDT для процессоров семейства IA-32?
-
Каков максимальный размер GDT для процессоров семейства Intel64?
-
Каков максимальный размер IDT для процессоров семейства IA-32?
-
Каков максимальный размер IDT для процессоров семейства Intel64?
-
Используется ли IDTR в реальном режиме?
-
Каково максимальное количество дескрипторов в GDT?
-
Каково максимальное количество дескрипторов в IDT?
-
Каково максимальное количество шлюзов прерывания в IDT?
-
Что общего и различного в использовании сегментных регистров в реальном и защищенном режимах?
-
В каких регистрах и структурах данных может находиться селектор сегмента?
-
Все ли типы дескрипторов имеют селекторы?
-
Какие типы дескрипторов не описывают сегменты?
-
Каков максимальный размер сегмента в защищенном режиме для процессоров семейства IA-32?
-
Каков размер сегмента DSeg32 в примере PM3O_PFG.asm?
-
Нужна ли установка стека реального режима по выходе из защищенного режима в примере PM3O_PFG.asm?
-
Изменяется ли дескриптор при выполнении программы?
-
Что общего и различного между GDT и IDT?
-
Что общего и различного между несистемным дескриптором и шлюзом прерывания?
-
Какие таблицы дескрипторов являются отдельными сегментами?
-
Что общего и различного в механизмах обработки прерываний в реальном и защищенном режимах?
-
Нужна ли загрузка IDTR по выходе из защищенного режима в примере PM4IO.asm?
Контрольные задания
-
Определить значение GDTR при данной базе первого сегмента.
-
Определить значение IDTR при данной базе первого сегмента.
-
Выделить команды, изменяющие значения сегментных регистров.
-
Выделить системные команды.
-
Определить размер определенного сегмента в программе.
-
Пояснить механизм поиска операнда в защищенном режиме.
-
Пояснить механизм перехода к обработчику прерывания в защищенном режиме.
Библиографический список
-
Архитектуры и типологии многопроцессорных вычислительных систем: Учеб. пособие для вузов [Текст] / А. В. Богданов, В. В. Корхов, В. В. Мареев, Е. Н. Станкова. - М. : ИНТУИТ.РУ, 2004. - 176 с.
-
Голубь, Н. Г. Искусство программирования на ассемблере [Текст] / Н. Г. Голубь. - 3-е изд., перераб. и доп. - СПб. : Питер, 2006. - 820 с.
-
Хорошевский, В. Г. Архитектура вычислительных систем [Текст] / В. Г. Хорошевский. - М. : МГТУ им. Баумана, 2005.
-
Зубков, С. В. Assembler [Текст] / С. В. Зубков. - М. : ДМК, 1999. - 640 с.
-
Микропроцессоры и микропроцессорные комплекты интегральных микросхем : Справочник в 2-х тт. [Текст] / В. Б. Абрайтис и др. ; Под ред. В. А. Шахнова. - М. : Радио и связь, 1988. Т.1 - 368 с.
-
Пильщиков, В. Н. Программирование на языке ассемблера IBM PC [Текст] / В. Н. Пильщиков. - М. : "ДИАЛОГ-МИФИ", 1996. - 288 с.
-
Еременко, Ю. И. Архитектура, принципы функционирования и управление ресурсами IBM PC : Уч. пос. [Текст] / Ю. И. Еременко, Л. А. Кузнецов, А. Я. Скляров. - Старый Оскол : ТНТ, 2003. - 420 с.
-
Магда, Ю. С. Аппаратное обеспечение и эффективное программирование [Текст] / Ю. С. Магда. - СПб. : Питер, 2007. - 352 с.
-
Магда, Ю. С. Ассемблер для процессоров Intel Pentium [Текст] / Ю. С. Магда. - СПб. : Питер, 2006. - 410 с.
-
Таненбаум, Э. Архитектура компьютера [Текст] / Э. Таненбаум. - 4-е изд. - СПб. : Питер, 2003. - 704 с.
-
Таненбаум, Э. Архитектура компьютера [Текст] / Э. Таненбаум. - 4-е изд. - СПб. : Питер, 2005. - 699 с.
-
Таненбаум, Э. Архитектура компьютера [Текст] / Э. Таненбаум. - 5-е изд. - СПб. : Питер, 2007. - 844 с.
-
Хамакер, К. Организация ЭВМ [Текст] / К. Хамакер, З. Вранешич, С. Заки СПб. : Питер, 2003.
-
Юров, В. И. Assembler : Учеб. для вузов [Текст] / В. И. Юров. - 2-е изд. - СПб. : Питер, 2004. - 687 с.