Курсовые на заказ (Гомель)

На главную
На главную
Контакты
Оплата
Университеты
Частые вопросы
Заказать курсовую

Помощь с курсовой

Как заказать курсовую

Стоимость курсовых


Системное программное обеспечение



Контрольная работа на emu808. Контрольная работа на ассемблере посвящена дисциплине «Системное программное обеспечение» и должна быть оформлена как электронный документ в редакторе Word (номер варианта соответствует порядковому номеру студента в группе). На титульном листе указывается название учебного заведения, название дисциплины, подробные сведения об авторе: курс, шифр и название специальности, номер группы, шифр зачётной книжки, фамилия, имя и отчество, адрес постоянного проживания, телефон, а также фамилия и инициалы преподавателя и год написания работы. Обязательны: лист содержания и список использованной литературы.

Алгоритм написания TSR программ



Общий алгоритм построения и разработка TSR программ на ассемблере:
  1. Формулируем задачу.
  2. пределяем "точки входа" и, исходя из них, выбираем номера прерываний, которые нужно перехватить. При этом учитываем проблему нереентерабельности. Также анализируем целесообразность возвращения управления исходным обработчикам перехваченных нами прерываний.
  3. Пишем целевую процедуру (процедуры) с учетом или без учета реентерабельности.
  4. Пишем нерезидентную часть, в которой проделываем работы, исходя из необходимости пункта Не забываем о блокировании повторных загрузок программы в память.

Любая программа на ассембелере, будь то простейший пример типа “Hello world” или TSR всегда содержит ошибки, причем, если их нет в исходном тексте программы - значит есть наверняка в самом компиляторе. Под средствами анализа и отладки программ, написанных на языке ассемблер, понимают средства, которые статически или динамически позволяют анализировать ход выполнения программы и изучать ее структуру.

Самым распространенным средством отладки являются специальные программы на ассемблере – отладчики ( debugger ) . Стандартный отладчик debug.com входит в комплект поставки MS DOS , однако ввиду его простоты работать с ним очень сложно. Самым распространенным средством отладки под MS DOS является программа Turbo Debugger. Это средство позволяет работать с резидентами следующим образом. Для отладки резидентных программ необходимо загрузить отлаживаемую программу, запустить ее, найти точку входа, поставить там клавишей F2 точку останова и выбором в меню FILE – RESIDENT оставить отладчик резидентным в памяти, далее произойдет выход в MS DOS и пользователю будет необходимо предпринять действия по активизации резидента. При проходе точки останова управление будет передано отладчику, после чего можно приступать к работе.

Под статическими методами отладки понимают анализ структуры программы дизассемблером - программой, преобразующей код в ассемблерную мнемонику. Основная трудность в этом случае состоит в определении дизассемблером, какие участки программы являются данными, а какие - кодом. В первом случае дизассемблеру необходимо оставить их без изменений, а во втором преобразовать их в ассемблерные мнемоники. Задача такого рода не является тривиальной.


ЗАДАНИЕ 1.

  1. Разработать программы на ассембелере в соответствии с вариантом. Формат одной программы - COM-программа, второй - EXE-программа.
  2. Оформите одну из программ, как резидентную.
Вариант 1.
  1. Рисовать на экране шахматную доску и периодически через 2-5 секунд инвертировать цвет квадратов.
  2. Реализовать видеоэффект – «опадание» букв с экрана.
Вариант 2.
  1. Генерировать и выводить на экран случайные числа с помощью системного таймера.
  2. Генерировать звук изменяющейся частоты при нажатии на клавишу «Esc». Процедуру генерации звука оформить в виде макроса.
Вариант 3.
  1. Распознавать нажатие LeftCtrl + RightShift + F3 и реагировать на него звуковым сигналом. Оформить в виде программы обработки прерывания от клавиатуры.
  2. Выводить на стандартное устройство ввода-вывода символы второй половины кодовой таблицы (коды 128 - 255). Установить программируемую задержку вывода очередного символа в 0,5, 1,0 и 5,0 секунд.
Вариант 4.
  1. Генерировать звуковой сигнал и выводить на экран вашу фамилию при нажатой клавише F1
  2. Изменять цвет границы экрана при последовательном нажатии на клавишу F10 и выделять миганием цифры в текстовом режиме.
Найти и вывести цепочку, в которых все элементы отличаются от предыдущего на единицу. - рассматриваем только положительные числа, каждое из которых не больше 255 - ввод массива и его размера выполняется константой в сегменте данных - вывод цепочек осуществляется на экран Определить цепочку положительных элементов с наименьшей суммой. - один элемент не является цепочкой - элементы массива от -127 до 128 - ввод массива и его размера выполняется константой в сегменте данных - вывод цепочки осуществляется на экран

Вопросы к эказмену


  1. Основные принципы фон-Неймановской архитектуры компьютера.
  2. Функциональная схема микропроцессора фон-Неймановской архитектуры.
  3. Основные функции устройства управления. Микропрограмма. Микрооперация.
  4. Основной цикл работы CPU фон-Неймановской архитектуры.
  5. Основные компоненты системной платы ПК. Развитие Intel-совместимых процессоров (i8086, i8088, i80286, i80386).
  6. Основные компоненты системной платы ПК. Развитие Intel-совместимых процессоров (i80486, Pentium, Pentium II, Pentium III, Pentium IV).
  7. Основные характеристики процессоров шестого поколения (Р6). Понятия гарвардской структуры, конвейера, суперскалярной архитектуры, RISС- и CISС-архитектуры.
  8. Шины ПК. Системные шины ХТ, ISA, EISA, MCA.
  9. Шины ПК. Локальные шины VLB, PCI, host-шина.
  10. Адресное пространство ПК.
  11. Особенности реального режима работы CPU.
  12. Типы оперативной памяти ПК. Распределение адресного пространства 1-го Мбайта.
  13. Расширение адресации с помощью сегментирования. Сегмент, смещение, исполнительный адрес (ЕА). Замкнутость сегмента.
  14. Логический адрес. Схема вычисления физического адреса (реальный режим). Замкнутость адресного пространства.
  15. Внутренние регистры прцессора i808 Классификация, назначение. Группа регистров данных. нутренние регистры процессора i808 Флаговый регистр. Флаги состояния.
  16. Внутренние регистры процессора i808 Флаговый регистр. Управляющие флаги.
  17. Внутренние регистры процессора i808 Классификация, назначение. Регистры указатели. Сегментные регистры.
  18. Внутренние регистры процессора i808 Классификация, назначение. Указатель инструкций.
  19. Структурная схема CPU i808 Устройство сопряжения с шиной.
  20. Структурная схема CPU i808 Устройство обработки.
  21. Типы данных. Особенности машинной арифметики.
  22. Двоично-десятичные числа. Арифметика ВСD-операндов.
  23. Форматы команд. Кодировка регистров. Назначение полей ОРС, МОD, Reg/Mem, DISP, IMM формата команды.
  24. Режимы адресации памяти. Формирование исполнительного адреса ЕА операнда (общая формула) при использовании косвенной адресации.
  25. Регистровый, регистровый косвенный, непосредственный режимы адресации.
  26. Прямой абсолютный и прямой относительный режимы адресации.
  27. Базовый и индексный режимы адресации.
  28. Базово-индексный и базово-индексный со смещением режима адресации.
  29. Система команд CPU i808 Команды АDD, АDС, INC, DEC. Влияние на флаги.
  30. Система команд CPU i808 Команды SUВ, SВВ. Влияние на флаги.
  31. Система команд CPU i808 Команды DАА, DАS. Влияние на флаги.
  32. Система команд CPU i808 Команды сравненмя кодов. Команды пересылки. Влияние на флаги.
  33. Система команд CPU i808 Логические команды. Влияние на флаги.
  34. Система команд CPU i808 Команды арифметического сдвига. Влияние на флаги.
  35. Система команд CPU i808 Команды логического сдвига. Влияние на флаги.
  36. Система команд CPU i808 Команды циклического сдвига. Влияние на флаги.
  37. Система команд CPU i808 Команды циклического сдвига с учётом флага СF. Влияние на флаги.
  38. Система команд CPU i808 Команды передачи управления. Условный переход.
  39. Система команд CPU i808 Команды передачи управления. Безусловный переход. Ближняя (near) и дальняя (far) адресации.
  40. Система команд CPU i808 Команды передачи управления. Безусловный переход. Прямой короткий (short) переход.
  41. Система команд CPU i808 Команды передачи управления. Безусловный переход. Прямой ближний (near) переход.
  42. Система команд CPU i808 Команды передачи управления. Безусловный переход. Косвенный ближний переход.
  43. Система команд CPU i808 Команды передачи управления. Безусловный переход. Прямой дальний (far) переход.
  44. Система команд CPU i808 Команды передачи управления. Безусловный переход. Косвенный дальний переход.
  45. Система команд CPU i808 Команды загрузки исполнительного адреса. Команды обмена операндами.
  46. Система команд CPU i808 Команды, организующие циклы.
  47. Общие положения по обработке строк в ассемблере.
  48. Команды строковых примитивов. Особенности выполнения. Использование префиксов повторения при работе со строковыми примитивами.
  49. Система команд CPU i808 Команды CALL и RET.
  50. Основные понятия защищенного режима: селектор, дескриптор, страница, виртуальный адрес.
  51. Объём виртуального адресного пространства. Определение линейного адреса.
  52. Определение физического адреса при включении страничной адресации.
  53. Стек. Принципы функционирования стека.
  54. Использование стека в программировании. Команды, работающие со стеком.
  55. Система ввода/вывода. Порты ввода/вывода.
  56. Использование команд ввода/вывода. Доступ к портам.
  57. Система прерываний. Типы прерываний.
  58. Работа CPU по обслуживанию маскируемых прерываний.
  59. Работа CPU по обслуживанию немаскируемых прерываний.
  60. Команды CPU, обслуживающие прерывания.
  61. Назначение и состав системного ПО. Основные понятия и определения системного ПО.
  62. Структура системного ПО.
  63. Основные принципы построения ОС.
  64. Микроядерные ОС.
  65. Монолитные ОС.
  66. Понятие операционной среды.
  67. Ассемблер: назначение, состав, структура предложений и программ.
  68. Формат представления базовых данных в IBM PC.
  69. Модели памяти.
  70. Общая структура программы на языке Ассемблера в MS-DOS.
  71. Этапы создания программы.
  72. Системы программирования. Трансляторы и интерпретаторы. Общая схема работы.
  73. Таблицы идентификаторов. Организация таблиц идентификаторов.
  74. Этапы трансляции программы. Многопроходные и однопроходные трансляторы.
  75. Проблема опережающей метки.
  76. Назначение и функции компоновщика.
  77. Назначение и функции программы – загрузчика.
  78. Программные отладчики и их эксплуатация.
  79. Формат директив и машинных команд. Директивы инициализации и описания данных на языке Ассемблера.
  80. Представление команд в ассемблере: структура и формат.
  81. Директивы представления данных. Директивы эквивалентности и присваивания.
  82. Способы описания массивов на языке ассемблера.
  83. Одномерные массивы. Организация и принципы обработки.
  84. Двумерные массивы. Организация и принципы обработки.
  85. Организация поиска заданного элемента в массиве.
  86. Методы сортировки массивов.
  87. Функции контроллера клавиатуры. Скен-коды.
  88. Ввод/вывод при помощи функций прерывания INT 21h, INT 16h, INT 10h
  89. Организация подпрограмм. Директивы описания подпрограмм. Передача параметров в подпрограммы: через регистры, через общие ячейки памяти, через зону, через стек.
  90. Организация системы прерываний.Внешние и внутренние прерывания. Их обслуживание.
  91. Нестандартные типы данных. Структуры. Записи. Их описание и использование.
  92. Макрокоманды. Макроопределения и макровызовы. Сравнение макрокоманды и подпрограммы. Макрокоманды повторения. Библиотеки макроопределений и их использование.
  93. Модульное программирование. Методы и проблемы. Реализация модульности за счет библиотек макроопределений.
  94. Реализация модульности за счет связывания объектных модулей. Объединение логических сегментов. Описание межмодульных обращений. Библиотеки объектных модулей и операции над ними. Использование библиотек объектных модулей.
  95. Работа с файлами.
  96. Организация ввода/вывода функциями DOS и BIOS.
  97. Разработка резидентных программ.

Список рекомендуемой литературы


  1. Гук, М. Процессоры Pentium, Athlon и другие. / М.Гук, В.Юров. – С-П.: Питер, 2000
  2. Нортон, П. Персональный компьютер. Аппаратно-программная реализация. / П.Нортон. – С-П.: BHV, 1999
  3. Финогенов, К.Г. Основы языка Ассемблера. / К.Г.Финогенов. - М.: Радио и связь, 2000
  4. Шагурин, И.И. Процессоры семейства Intel P / И.И.Шагурин. - М.: Горячая линия, 2000
  5. Рудометов, Е. Архитектура ПК, комплектующие, мультимедиа. / Е.Рудометов. – С.-П.: Питер, 2000
  6. Юров, В.И. Assembler: учеб.пособие. / В.И.Юров. – СПб.: Питер, 2002
  7. Финогенов К.Г. Использование языка Ассемблера: учебное пособие, / К.Г.Финогенов. – М.: Горячая линия – Телеком, 2004
  8. Брукшир, Дж. Введение в компьютерные науки. / Дж.Брукшир. – М.: издательский дом "Вильямс", 2001
  9. Гук, М. Энциклопедия. Аппаратные средства IBM PC. / М.Гук. – C-П.: Питер, 2000
  10. Корнеев, В.В. Современные микропроцессоры. / В.В.Корнеев, А.В.Киселев. - СПб.: БХВ-Петербург, 2003
  11. Танненбаум, Э. Архитектура компьютера. / Э. Танненбаум. - СПб.: Питер, 2002
  12. Цилькер, Б.Я. Организация ЭВМ и систем: учеб.пособие. / Б.Я.Цилькер, С.А.Орлов. - СПб.: Питер, 2004
  13. Степанов А.Н. Архитектура вычислительных систем и компьютерных сетей: учеб.пособие. / А.Н.Степанов. - СПб.: Питер, 2007
  14. Жмакин А.П. Архитектура ЭВМ: учеб.пособие. / А.П.Жмакин. - СПб.: БХВ-Питер, 2006
  15. Бройдо В.Л Архитектура ЭВМ и систем: учеб.пособие. / В.Л.Бройдо, О.П.Ильина. - СПб.: Питер, 2006
  16. Рудаков П.И., Финогенов К.Г. Программируем на языке Ассемблер ІВМ РС: В 4-х частях. - М.: Энтроп, 199
  17. Скляров В.А. Программное и лингвистическое обеспечение персональных ЭВМ. Системы общего назначения: Справ. пособие. - Мн.: Выш. шк., 199
  18. Юров В.И. АSSEMBLER. Практикум. 2-е издание. - СПб.: Питер, 200
  19. Магда Ю. С. Ассемблер для процессоров Intel Pentium. — СПб.: Питер, 200
  20. Зубков С.В. Assembler. Язык неограниченных возможностей. - М.: ДМК Пресс, 199
  21. Митницкий В.Я. Архитектура IBM PC и язык ассемблера: Учеб. пособие. – М.: МФТИ, 200


Контрольная работа и вопросы к экзамену (зачёту) рассмотрены и утверждены на заседании филиала кафедры «Дистанционные технологии образования».