Защищенный режим

Автор: Пользователь скрыл имя, 13 Декабря 2011 в 21:28, реферат

Описание работы

По мере повышения нашей зависимости от компьютеров пользователям необходимы все более надежные и защищенные системы, способные выполнять несколько задач одновременно.
Процессоры могут работать в различных режимах. Под термином «режим» подразумевается способы, которым процессор создает (и обеспечивает) для себя рабочую среду. Режим работы процессора задает способ адресации к оперативной памяти и способ управления отдельными задачами. Процессоры персональных компьютеров могут работать в трех режимах: реальном, защищенном и виртуальном режимах.

Содержание

Максимальный режим работы ЦП. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
Уровни привилегий. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Адресация памяти в защищенном режиме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Работа прерываний. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Компиляция и отладка ассемблерных программ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Общие сведения о языке ассемблера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Процесс разработки программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Компиляция программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Отладка программы. . . . . . . . . . . . . . . . . . . . .

Работа содержит 1 файл

защищенный режим.docx

— 100.21 Кб (Скачать)

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

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

Например: 

MOV(MOVE)-передать, переслать

ADD(ADDITION)-сложение

SUB(SUBSTRACT)-вычитание

LDA(LOAD DIRECT ACCUMULATOR)-непосредственная загрузка аккумулятора

INR(INSCREMENT REGISTER)-инкремент регистра

DCR(DECREMENT REGISTER)декремент регистра

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

Поле ОПЕРАНД определяется обычно в зависимости от поля кода команды. Оно может содержать либо один, либо несколько операндов, разделенных запятыми, либо не содержать ни одного операнда для тех команд, которые оперируют внутренними рабочими регистрами.

Операнд представляет собой выражение, содержащее мнемоническое  обозначение, константы и операторы.

Простейшие операнды содержат одно мнемоническое обозначение  или одну константу.

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

Константы могут  быть представлены в различных системах счисления. 
 

Процесс разработки программы. 

На рис.1 приведена общая схема процесса разработки программы на ассемблере. На схеме выделено четыре этапа этого процесса. На первом этапе, когда вводится код программы, можно использовать любой текстовый редактор. В Windows таким редактором может быть Блокнот (Notepad). При выборе редактора нужно учитывать, что он не должен вставлять «посторонних» символов (специальных символов форматирования). С этой точки зрения Microsoft Word в качестве основного редактора ассемблерных программ не годится. Созданный с помощью текстового редактора файл должен иметь расширение *.ASM.

Рис. 1. Схема  процесса разработки программы на ассемблере 

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

Компиляция. 

Компиляция  трансляция программы, составленной на исходном языке, и последующая её компоновка в программу на некоем интерпретируемом коде. Любой компилятор состоит из транслятора и компоновщика. 

Трансляция  программы. 

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

На этапе  трансляции решается несколько задач:

  • перевод команд ассемблера в соответствующие машинные команды;
  • построение таблицы символов;
  • расширение макросов;
  • формирование файла листинга и объектного модуля.

Программа, которая реализует эти задачи, называется ассемблером. Итог работы ассемблера — два файла: 

  1.  файл  объектного модуля. Осуществляется преобразование текстового Файла с расширением *.ASM в объектный Файл, содержащий программу в машинном коде с расширением *.OBJ .
  2. файл листингаФайл с расширением *.LST, в котором содержится основная информация о программе, а так же Файл перекрёстных ссылок с расширением *.CRF. На этом этапе происходит проварка текста программ на наличие ошибок.
 

При использовании  пакета TASM получение объектного модуля исходного файла производится программой (ассемблером) TASM.EXE. 

Формат командной  строки для запуска tasm.exe следующий: 

TASM [ключи]  имя_исходнрго_файла [,имя_объектного_файла] [,имя_файла_листинга] [,имя_файла_перекрестных_ссылок] 

Параметры, заключенные  в скобки – это необязательные параметры. Отсюда следует, что обязательным аргументом командной строки является лишь имя исходного файла. Этот файл должен находиться на диске и обязательно иметь расширение *.ASM.

Необязательный  аргумент [ключи] позволяет задавать режим работы транслятора TASM (например, ключ  /zi включает полную информацию для отладчика).

После того как  инициировали трансляцию программы  командной строкой, на экране появиться  последовательность строк.  Если программа содержит ошибки, то транслятор выдаст на экран строки сообщений, начинающиеся словами Error и Warning. Для устранения ошибок нужно определить место их возникновения и проанализировать ситуацию. 

Файл  листинга содержит код ассемблера исходной программы, а также расширенную информацию об этом коде. Для каждой команды ассемблера указываются ее машинный (объектный) код и смещение в кодовом сегменте. Кроме того, в конце листинга TASM формирует таблицы с информацией о метках и сегментах, используемых в программе. Если есть ошибки или сомнительные участки кода, то TASM включает в конец листинга сообщения о них. Если сравнить их с сообщениями, выводимыми на экран, то видно, что они совпадают. Кроме того, что очень удобно, эти же сообщения включаются в текст листинга непосредственно после ошибочной строки. 

Строки в файле  листинга имеют следующий формат: 

глубина_вложенности номер_строки смещение машинный_код исходный_код 

глубина_вложенности — уровень вложенности включаемых файлов или макрокоманд в файле.

номер_строки — номер строки в файле листинга. Номера строк листинга используются для локализации ошибок и формирования таблицы перекрестных ссылок.

смещение — смещение в байтах текущей команды относительно начала сегмента кода. Это смещение называют также счетчиком адреса. Величину смещения вычисляет транслятор для адресации в сегменте кода.

машинный_код — машинное представление команды ассемблера, представленной далее в этой строке полем исходный_код.

исходный_код — строка кода из исходного файла. 

Компоновка  программы. 

После устранения ошибок и получения объектного модуля можно приступать к следующему этапу  — созданию исполняемого (загрузочного) модуля, или, как еще называют этот процесс, к компоновке программы. Главная цель этого этапа — преобразовать код и данные в объектных файлах в их перемещаемое выполняемое отображение.

Результатом работы компоновщика является создание загрузочного файла с расширением *.ЕХЕ или *.Com. После этого операционная система может загрузить такой файл в память и выполнить его. Для этого используется TLINK.exe фирмы Borland

 (для макроассемблера LINK.EXE фирмы Microsoft). 

Для выполнения компоновки запускается программа например tlink.exe командной строкой вида: 

TLINK [ключи]  список_объектных_файлов [необязательные параметры] 

список_объектных_файлов — обязательный параметр, содержащий список компонуемых файлов с расширением .obj. Файлы должны быть разделены пробелами или знаком + (плюс), например:  t l i n k /v prog + mdf + fdr

В результате получаем исполняемый модуль с расширением *.ЕХЕ. 

Отладка программы. 

На этапе  отладки в соответствие с алгоритмом проверяется правильность функционирования, как отдельных фрагментов кода, так и программы в целом. Но даже успешное завершение отладки еще не является гарантией того, что программа будет работать правильно со всеми возможными исходными данными. Поэтому нужно обязательно провести тестирование программы, то есть проверить ее работу на «пограничных» и заведомо некорректных исходных данных. Для этого составляются тесты. Вполне возможно, что результаты тестирования не удовлетворят разработчика программы. В этом случае ему придется вносить поправки в код программы, то есть возвращаться к первому шагу процесса разработки.

Специфика программ на ассемблере состоит в том, что  они интенсивно работают с аппаратными  ресурсами компьютера. Это обстоятельство заставляет программиста постоянно  отслеживать содержимое определенных регистров и областей памяти. Естественно, что человеку трудно следить за этой информацией с большой степенью детализации. Поэтому для локализации  логических ошибок в программах используют специальный тип программного обеспечения  — программные отладчики. 

Отладчики бывают двух типов: 

    1. интегрированные отладчики, реализованные в виде интегрированной среды, напоминающей среду для языков высокого уровня (Turbo Pascal, Visual C++ и т. д.);
    2. автономные отладчики, представляющие собой отдельные программы.
 

Ни MASM, ни TASM не имеет своей интегрированной среды, поэтому для отладки написанных на языке ассемблера программ используют либо автономные отладчики, либо отладчики некоторой среды программирования (например, Visual C++). С помощью автономного отладчика можно исследовать работу любой программы, для которой создан исполняемый модуль, независимо от того, на каком языке был написан его исходный текст.

Например отладчик Turbo Debugger (TD), разработанный фирмой Borland International.

Представляет собой оконную среду отладки программ на уровне исходного ассемблерного текста.  

Он позволяет  решить две главные задачи: 

  1.  определить  место логической ошибки;
  2. определить причину логической ошибки.
 

Некоторые возможности TD: 

  • трассировка программы в прямом направлении, то есть последовательное выполнение программы, при котором за один шаг  выполняется одна машинная

инструкция;

  • трассировка программы в обратном направлении, то есть выполнение программы по одной команде за один шаг, но в обратном направлении;
  • просмотр и изменение состояния аппаратных ресурсов процессора во время

трассировки. 

Эти действия позволяют  определить место и источник ошибки в программе.

TD не позволяет вносить исправления в исходный текст программы. Однако после определения причины ошибочной ситуации можно, не завершая работу отладчика, внести исправления прямо в машинный код и снова запустить программу. 
 
 
 
 
 
 
 

    Список  использованной литературы: 

    1. В. И. Юров «Assembler 2-е издание» (издательство «Питер», 2003 г.).
    2. http://ru.wikipedia.org
    3. http://sistemprog.elitno.net/lec/modul_3/lec_10/lec_32-4.html

Информация о работе Защищенный режим