Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программа ГЭ_спец_2012 ответы light.doc
Скачиваний:
31
Добавлен:
15.11.2019
Размер:
3.71 Mб
Скачать
  1. Ассемблер: основные понятия, директивы, команды. Условный и безусловный переходы. Циклы. Массивы. Процедуры. Упакованные данные. Структуры.

Директивы представляют собой команды транслятору языка ассемблера. Эти команды, в основном, определяют параметры трансляции программы. По функциональному назначению, директивы можно разделить на следующие группы:

  1. директивы управления размещением данных;

  2. директивы связи модулей программы;

  3. директивы создания элементов программы;

  4. директивы условной компиляции;

  5. прочие директивы.

Директивы управления размещением данных позволяют определить ячейки памяти программы, их тип, количество и задать начальные значения.

Директивы связи модулей программы предназначены для управления связыванием различных модулей в одну программу. Используются, в основном, при написании больших программ или библиотек.

Директивы создания элементов программы позволяют создавать такие элементы программы, как программные сегменты, структуры, процедуры и макросы. Эти директивы используются в любой программе написанной на языке ассемблера.

Директивы условной компиляции предназначены для обозначения фрагментов программы, обрабатываемых транслятором в зависимости от определенных условий.

Все директивы ассемблера записываются в виде символьных операторов. Некоторые директивы могут располагаться в любом месте программы, другие – только в определенных местах или между определенными директивами. Директива не преобразуется в машинную команду процессора, а лишь влияет на трансляцию программы и определяет параметры трансляции. Рассмотрим расположение кодов и данных в пределах одного программного сегмента. Особенностью МП 8086 является то, что и коды команд и данные хранятся в одной области памяти размером 1 Мб. Не существует способа определить, является ли какая-либо последовательность байт командой процессора или данными программы. Если в программном сегменте среди команд располагаются и данные, то процессор при выполнении команд может дойти до данных и попытаться «выполнить» эти данные, так как интерпретирует их как команды. Поэтому при размещении данных в одном сегменте с командами следует избегать передачи управления процессора с команд на данные. Это можно выполнить несколькими способами:

  1. перед данными поставить команду безусловного перехода так, чтобы управление передавалось на следующую после данных команду – таким образом, процессор как бы «обходит» данные и приступает к выполнению следующей команды;

  2. разместить данные в конце программного сегмента, а перед ними поставить вызов какой-либо функции DOS, завершающей выполнение программы.

  1. Защищенный режим процессора Intel 80386: страничная адресация, переключение контекста, использование возможностей защищенного режима различными ос.

С помощью введенных 4-х уровней привилегий (0,1,2,3) в 386+ введен принцип мандатного ограничения доступа. При исполнении процесса ему присваивается текущий уровень привилегии (изначально предполагается, что ядро ОС – 0 уровень, пользовательское приложение – 3 уровень, 1 и 2 уровни на усмотрения ОС). При вызове процедур или при переходе между сегментами разрешается использовать код, имеющий более высокий уровень привилегии, при этом уровень привилегии текущего процесса не изменяется. Если необходимо изменение (повышение обычно уровня привилегии), то используются шлюзы переходов. При вызове подобного прерывания меняется уровень привилегии процесса, процесс переходит на другой сегмент, стек.

Контекст задачи – структура данных, описывающая текущее содержимое регистров, селекторов сегментов, флагов, текущих значений привилегий и др. информация, используемая для аппаратного переключения между процессами.

В процессорах 80386 преодолено жесткое ограничение на длину непрерывно сегмента памяти и составляет 64Кбайта. В защищенном режиме 32 разрядных процессоров оно отодвинулось до 4Гбайт. Процессоры могут работать в 2 режимах: Real address mode – режим реальной адресации, полностью совместим с 8086(этом режиме возможна адресация до 1мб); Protected Virtual Address mode – защищенный режим (в этом режиме возможна адресация до 4гб физической памяти).

Страница в 80386 имеет длину 4к байт. Этот размер находится в согласии с промышленной тенденцией к увеличению длины страниц и ведет к увеличению производительности по двум направлениям. Во-первых, он обеспечивает хорошее отношение показаний страниц в кэш при данном объеме кэш-памяти. Во-вторых, 4кбайтов являются эффективным размером блока для дисковых передач.

80386 включает страничный механизм, устанавливая бит PG в управляющем регистре 0 при помощи привилегированной команды. Когда страничный механизм включен, процессор транслирует линейный адрес в физический адрес, используя страничные таблицы. Страничные таблицы являются частью таблиц дескрипторов сегментов. Так же как таблицы дескрипторов сегментов задачи определяют ее логическое адресное пространство, страничные таблицы задачи определяют ее линейное адресное пространство. Аналогично супер-мини-эвм и большим эвм страничные таблицы 80386 организованы по принципу двухуровневой иерархии. Каждая задача может иметь справочник системных таблиц. Системный регистр CR3 процессора 80386 (база справочника системных таблиц) указывает на справочник страничных таблиц работающей задачи. Процессор обновляет регистр CR3 при каждом переключении задачи, получая новый адрес задачи из TSS(сегмент состояния задачи) новой задачи. Справочник страничных таблиц имеет длину, равную одной странице и содержит элементы страничной таблицы описывают 1024 страницы. Таким образом, каждая страничная таблица описывает 4м байта, а оглавление может описать до 4г байт - максимальное адресное пространство.

Windows графическая 32 разрядная многозадачная ОС. Windows 1) основана на защищенном 386+; 2) динамически загружаемые библиотеки DLL. Блок программного кода, который по требованию может быть загружен в ОЗУ, используется несколькими программами одновременно и может быть выгружен в тот момент когда надобность в нем отпадает. (exe ->dll->dll). Основные DLL это Kernel, работа с файлами, потоками, процессами, событиями, сообщениями, системными часами, управление памятью, загрузка библиотек, запуск и остановка процесса.

Advapi32 – системный log файл.

Gdi32 – графический интерфейс.

User32 - клавиатура, мышь, сообщения пользователю и высоко уровненная работа с графическим интерфейсом.

II. СПЕЦИАЛЬНЫЕ ДИСЦИПЛИНЫ