Системное программное обеспечение
Контрольная работа на emu808. Контрольная работа на ассемблере посвящена дисциплине «Системное программное обеспечение» и должна быть оформлена как электронный документ в редакторе Word (номер варианта соответствует порядковому номеру студента в группе).
На титульном листе указывается название учебного заведения, название дисциплины, подробные сведения об авторе: курс, шифр и название специальности, номер группы, шифр зачётной книжки, фамилия, имя и отчество, адрес постоянного проживания, телефон, а также фамилия и инициалы преподавателя и год написания работы.
Обязательны: лист содержания и список использованной литературы.
Алгоритм написания TSR программ
Общий алгоритм построения и разработка TSR программ на ассемблере:
- Формулируем задачу.
- пределяем "точки входа" и, исходя из них, выбираем номера прерываний, которые нужно перехватить. При этом учитываем проблему нереентерабельности. Также анализируем целесообразность возвращения управления исходным обработчикам перехваченных нами прерываний.
- Пишем целевую процедуру (процедуры) с учетом или без учета реентерабельности.
- Пишем нерезидентную часть, в которой проделываем работы, исходя из необходимости пункта Не забываем о блокировании повторных загрузок программы в память.
Любая программа на ассембелере, будь то простейший пример типа “Hello world” или TSR всегда содержит ошибки, причем, если их нет в исходном тексте программы - значит есть наверняка в самом компиляторе. Под средствами анализа и отладки программ, написанных на языке ассемблер, понимают средства, которые статически или динамически позволяют анализировать ход выполнения программы и изучать ее структуру.
Самым распространенным средством отладки являются специальные программы на ассемблере – отладчики ( debugger ) . Стандартный отладчик debug.com входит в комплект поставки MS DOS , однако ввиду его простоты работать с ним очень сложно. Самым распространенным средством отладки под MS DOS является программа Turbo Debugger. Это средство позволяет работать с резидентами следующим образом. Для отладки резидентных программ необходимо загрузить отлаживаемую программу, запустить ее, найти точку входа, поставить там клавишей F2 точку останова и выбором в меню FILE – RESIDENT оставить отладчик резидентным в памяти, далее произойдет выход в MS DOS и пользователю будет необходимо предпринять действия по активизации резидента. При проходе точки останова управление будет передано отладчику, после чего можно приступать к работе.
Под статическими методами отладки понимают анализ структуры программы дизассемблером - программой, преобразующей код в ассемблерную мнемонику. Основная трудность в этом случае состоит в определении дизассемблером, какие участки программы являются данными, а какие - кодом. В первом случае дизассемблеру необходимо оставить их без изменений, а во втором преобразовать их в ассемблерные мнемоники. Задача такого рода не является тривиальной.
ЗАДАНИЕ 1.
- Разработать программы на ассембелере в соответствии с вариантом. Формат одной программы - COM-программа, второй - EXE-программа.
- Оформите одну из программ, как резидентную.
Вариант 1.
- Рисовать на экране шахматную доску и периодически через 2-5 секунд инвертировать цвет квадратов.
- Реализовать видеоэффект – «опадание» букв с экрана.
Вариант 2.
- Генерировать и выводить на экран случайные числа с помощью системного таймера.
- Генерировать звук изменяющейся частоты при нажатии на клавишу «Esc». Процедуру генерации звука оформить в виде макроса.
Вариант 3.
- Распознавать нажатие LeftCtrl + RightShift + F3 и реагировать на него звуковым сигналом. Оформить в виде программы обработки прерывания от клавиатуры.
- Выводить на стандартное устройство ввода-вывода символы второй половины кодовой таблицы (коды 128 - 255). Установить программируемую задержку вывода очередного символа в 0,5, 1,0 и 5,0 секунд.
Вариант 4.
- Генерировать звуковой сигнал и выводить на экран вашу фамилию при нажатой клавише F1
- Изменять цвет границы экрана при последовательном нажатии на клавишу F10 и выделять миганием цифры в текстовом режиме.
Найти и вывести цепочку, в которых все элементы отличаются от предыдущего на единицу.
- рассматриваем только положительные числа, каждое из которых не больше 255
- ввод массива и его размера выполняется константой в сегменте данных
- вывод цепочек осуществляется на экран
Определить цепочку положительных элементов с наименьшей суммой.
- один элемент не является цепочкой
- элементы массива от -127 до 128
- ввод массива и его размера выполняется константой в сегменте данных
- вывод цепочки осуществляется на экран
Вопросы к эказмену
- Основные принципы фон-Неймановской архитектуры компьютера.
- Функциональная схема микропроцессора фон-Неймановской архитектуры.
- Основные функции устройства управления. Микропрограмма. Микрооперация.
- Основной цикл работы CPU фон-Неймановской архитектуры.
- Основные компоненты системной платы ПК. Развитие Intel-совместимых процессоров (i8086, i8088, i80286, i80386).
- Основные компоненты системной платы ПК. Развитие Intel-совместимых процессоров (i80486, Pentium, Pentium II, Pentium III, Pentium IV).
- Основные характеристики процессоров шестого поколения (Р6). Понятия гарвардской структуры, конвейера, суперскалярной архитектуры, RISС- и CISС-архитектуры.
- Шины ПК. Системные шины ХТ, ISA, EISA, MCA.
- Шины ПК. Локальные шины VLB, PCI, host-шина.
- Адресное пространство ПК.
- Особенности реального режима работы CPU.
- Типы оперативной памяти ПК. Распределение адресного пространства 1-го Мбайта.
- Расширение адресации с помощью сегментирования. Сегмент, смещение, исполнительный адрес (ЕА). Замкнутость сегмента.
- Логический адрес. Схема вычисления физического адреса (реальный режим). Замкнутость адресного пространства.
- Внутренние регистры прцессора i808 Классификация, назначение. Группа регистров данных.
нутренние регистры процессора i808 Флаговый регистр. Флаги состояния.
- Внутренние регистры процессора i808 Флаговый регистр. Управляющие флаги.
- Внутренние регистры процессора i808 Классификация, назначение. Регистры указатели. Сегментные регистры.
- Внутренние регистры процессора i808 Классификация, назначение. Указатель инструкций.
- Структурная схема CPU i808 Устройство сопряжения с шиной.
- Структурная схема CPU i808 Устройство обработки.
- Типы данных. Особенности машинной арифметики.
- Двоично-десятичные числа. Арифметика ВСD-операндов.
- Форматы команд. Кодировка регистров. Назначение полей ОРС, МОD, Reg/Mem, DISP, IMM формата команды.
- Режимы адресации памяти. Формирование исполнительного адреса ЕА операнда (общая формула) при использовании косвенной адресации.
- Регистровый, регистровый косвенный, непосредственный режимы адресации.
- Прямой абсолютный и прямой относительный режимы адресации.
- Базовый и индексный режимы адресации.
- Базово-индексный и базово-индексный со смещением режима адресации.
- Система команд CPU i808 Команды АDD, АDС, INC, DEC. Влияние на флаги.
- Система команд CPU i808 Команды SUВ, SВВ. Влияние на флаги.
- Система команд CPU i808 Команды DАА, DАS. Влияние на флаги.
- Система команд CPU i808 Команды сравненмя кодов. Команды пересылки. Влияние на флаги.
- Система команд CPU i808 Логические команды. Влияние на флаги.
- Система команд CPU i808 Команды арифметического сдвига. Влияние на флаги.
- Система команд CPU i808 Команды логического сдвига. Влияние на флаги.
- Система команд CPU i808 Команды циклического сдвига. Влияние на флаги.
- Система команд CPU i808 Команды циклического сдвига с учётом флага СF. Влияние на флаги.
- Система команд CPU i808 Команды передачи управления. Условный переход.
- Система команд CPU i808 Команды передачи управления. Безусловный переход. Ближняя (near) и дальняя (far) адресации.
- Система команд CPU i808 Команды передачи управления. Безусловный переход. Прямой короткий (short) переход.
- Система команд CPU i808 Команды передачи управления. Безусловный переход. Прямой ближний (near) переход.
- Система команд CPU i808 Команды передачи управления. Безусловный переход. Косвенный ближний переход.
- Система команд CPU i808 Команды передачи управления. Безусловный переход. Прямой дальний (far) переход.
- Система команд CPU i808 Команды передачи управления. Безусловный переход. Косвенный дальний переход.
- Система команд CPU i808 Команды загрузки исполнительного адреса. Команды обмена операндами.
- Система команд CPU i808 Команды, организующие циклы.
- Общие положения по обработке строк в ассемблере.
- Команды строковых примитивов. Особенности выполнения. Использование префиксов повторения при работе со строковыми примитивами.
- Система команд CPU i808 Команды CALL и RET.
- Основные понятия защищенного режима: селектор, дескриптор, страница, виртуальный адрес.
- Объём виртуального адресного пространства. Определение линейного адреса.
- Определение физического адреса при включении страничной адресации.
- Стек. Принципы функционирования стека.
- Использование стека в программировании. Команды, работающие со стеком.
- Система ввода/вывода. Порты ввода/вывода.
- Использование команд ввода/вывода. Доступ к портам.
- Система прерываний. Типы прерываний.
- Работа CPU по обслуживанию маскируемых прерываний.
- Работа CPU по обслуживанию немаскируемых прерываний.
- Команды CPU, обслуживающие прерывания.
- Назначение и состав системного ПО. Основные понятия и определения системного ПО.
- Структура системного ПО.
- Основные принципы построения ОС.
- Микроядерные ОС.
- Монолитные ОС.
- Понятие операционной среды.
- Ассемблер: назначение, состав, структура предложений и программ.
- Формат представления базовых данных в IBM PC.
- Модели памяти.
- Общая структура программы на языке Ассемблера в MS-DOS.
- Этапы создания программы.
- Системы программирования. Трансляторы и интерпретаторы. Общая схема работы.
- Таблицы идентификаторов. Организация таблиц идентификаторов.
- Этапы трансляции программы. Многопроходные и однопроходные трансляторы.
- Проблема опережающей метки.
- Назначение и функции компоновщика.
- Назначение и функции программы – загрузчика.
- Программные отладчики и их эксплуатация.
- Формат директив и машинных команд. Директивы инициализации и описания данных на языке Ассемблера.
- Представление команд в ассемблере: структура и формат.
- Директивы представления данных. Директивы эквивалентности и присваивания.
- Способы описания массивов на языке ассемблера.
- Одномерные массивы. Организация и принципы обработки.
- Двумерные массивы. Организация и принципы обработки.
- Организация поиска заданного элемента в массиве.
- Методы сортировки массивов.
- Функции контроллера клавиатуры. Скен-коды.
- Ввод/вывод при помощи функций прерывания INT 21h, INT 16h, INT 10h
- Организация подпрограмм. Директивы описания подпрограмм. Передача параметров в подпрограммы: через регистры, через общие ячейки памяти, через зону, через стек.
- Организация системы прерываний.Внешние и внутренние прерывания. Их обслуживание.
- Нестандартные типы данных. Структуры. Записи. Их описание и использование.
- Макрокоманды. Макроопределения и макровызовы. Сравнение макрокоманды и подпрограммы. Макрокоманды повторения. Библиотеки макроопределений и их использование.
- Модульное программирование. Методы и проблемы. Реализация модульности за счет библиотек макроопределений.
- Реализация модульности за счет связывания объектных модулей. Объединение логических сегментов. Описание межмодульных обращений. Библиотеки объектных модулей и операции над ними. Использование библиотек объектных модулей.
- Работа с файлами.
- Организация ввода/вывода функциями DOS и BIOS.
- Разработка резидентных программ.
Список рекомендуемой литературы
- Гук, М. Процессоры Pentium, Athlon и другие. / М.Гук, В.Юров. – С-П.: Питер, 2000
- Нортон, П. Персональный компьютер. Аппаратно-программная реализация. / П.Нортон. – С-П.: BHV, 1999
- Финогенов, К.Г. Основы языка Ассемблера. / К.Г.Финогенов. - М.: Радио и связь, 2000
- Шагурин, И.И. Процессоры семейства Intel P / И.И.Шагурин. - М.: Горячая линия, 2000
- Рудометов, Е. Архитектура ПК, комплектующие, мультимедиа. / Е.Рудометов. – С.-П.: Питер, 2000
- Юров, В.И. Assembler: учеб.пособие. / В.И.Юров. – СПб.: Питер, 2002
- Финогенов К.Г. Использование языка Ассемблера: учебное пособие, / К.Г.Финогенов. – М.: Горячая линия – Телеком, 2004
- Брукшир, Дж. Введение в компьютерные науки. / Дж.Брукшир. – М.: издательский дом "Вильямс", 2001
- Гук, М. Энциклопедия. Аппаратные средства IBM PC. / М.Гук. – C-П.: Питер, 2000
- Корнеев, В.В. Современные микропроцессоры. / В.В.Корнеев, А.В.Киселев. - СПб.: БХВ-Петербург, 2003
- Танненбаум, Э. Архитектура компьютера. / Э. Танненбаум. - СПб.: Питер, 2002
- Цилькер, Б.Я. Организация ЭВМ и систем: учеб.пособие. / Б.Я.Цилькер, С.А.Орлов. - СПб.: Питер, 2004
- Степанов А.Н. Архитектура вычислительных систем и компьютерных сетей: учеб.пособие. / А.Н.Степанов. - СПб.: Питер, 2007
- Жмакин А.П. Архитектура ЭВМ: учеб.пособие. / А.П.Жмакин. - СПб.: БХВ-Питер, 2006
- Бройдо В.Л Архитектура ЭВМ и систем: учеб.пособие. / В.Л.Бройдо, О.П.Ильина. - СПб.: Питер, 2006
- Рудаков П.И., Финогенов К.Г. Программируем на языке Ассемблер ІВМ РС: В 4-х частях. - М.: Энтроп, 199
- Скляров В.А. Программное и лингвистическое обеспечение персональных ЭВМ. Системы общего назначения: Справ. пособие. - Мн.: Выш. шк., 199
- Юров В.И. АSSEMBLER. Практикум. 2-е издание. - СПб.: Питер, 200
- Магда Ю. С. Ассемблер для процессоров Intel Pentium. — СПб.: Питер, 200
- Зубков С.В. Assembler. Язык неограниченных возможностей. - М.: ДМК Пресс, 199
- Митницкий В.Я. Архитектура IBM PC и язык ассемблера: Учеб. пособие. – М.: МФТИ, 200
Контрольная работа и вопросы к экзамену (зачёту) рассмотрены и утверждены на заседании филиала кафедры «Дистанционные технологии образования».
|