 
        
        - •Программирование эвм
- •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 с. 
