рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Компоновка программы - раздел Образование, Определение операционной системы ОС. Назначение и основные функции ОС. Tlink [Ключи] Список_Объектных_Файлов [,имя_Загрузочного_Модуля] [,имя_Файла_...

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

[,имя_ресурсного_файла]

Ключ /v указывает на необходимость сохранения отладочной информации в исполняемом файле.

 

48. Основные регистры процессора Pentium.

В организации вычислительного процесса важную роль играют регистры процессора. В процессорах Pentium эти регистры делятся на несколько групп:

· регистры общего назначения;

· регистры сегментов;

· указатель инструкций;

· регистр флагов;

· управляющие регистры;

· регистры системных адресов;

· регистры отладки и тестирования, а также регистры математического сопроцессора, выполняющего операции с плавающей точкой.

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

Программист может обращаться к этим регистрам как к единому целому, используя обозначения ЕАХ, ЕВХ, ЕСХ, EDX, а также к некоторым их частям.

 

Остальные четыре регистра общего назначения — ESI, EDI, EBP и ESP — предназначены для задания смещения адреса относительно начала некоторого сегмента данных.

Регистры сегментов CS, SS, DS, ES, FS и GSв защищенном режиме ссылаются на дескрипторы сегментов памяти — описатели, в которых содержатся такие параметры сегментов, как базовый адрес, размер сегмента, атрибуты защиты и некоторые другие. Регистр CS (Code Segment) предназначен для хранения индекса дескриптора кодового сегмента, регистр SS (Stack Segment) — дескриптора сегмента стека, а остальные регистры используются для указания на дескрипторы сегментов данных.

Указатель инструкций EIP содержит смещение адреса текущей инструкции, которое используется совместно с регистром CS для получения соответствующего виртуального адреса.

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

В процессоре Pentium имеется пять управляющих регистров — CRO, CR1, CR2, CR3 и CR4, которые хранят признаки и данные, характеризующие общее состояния процессора.

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

Регистр CR1 в настоящее время не используется (зарезервирован).

Регистры CR2 и CR3 предназначены для поддержки работы системы виртуальной памяти. Регистр CR2 содержит линейный виртуальный адрес, который вызвал так называемый страничный отказ (отсутствие страницы в оперативной памяти или отказ из-за нарушения прав доступа).

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

В регистре CR4 хранятся признаки» разрешающие работу так называемых архитектурных расширений, например возможности использования страниц размером 4 Мбайт и т. п.

 

 

49. Ассемблерные команды пересылки данных. Пример программы.

К группе команд пересылки данных относятся следующие команды:

mov <операнд назначения>,<операнд-источник>

xchg <операнд!>,<операнд2>

MOV — это основная команда пересылки данных. Она реализует самые разнооб­разные варианты пересылки.

Основные особенности применения этой команды:

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

masm

model small

.data

fls db 5

fld db ?

.code

start:

…..

mov al, fls

mov fld,al

end start

2. Нельзя загрузить в сегментный регистр значение непосредственно из памяти. Для такой загрузки требуется промежуточный объект. Это может быть регистр общего назначения или стек.

Например:

mov ax,dseg ; в регистр ах записывается адрес сегмента данных

mov ds,ax ;адрес сегмента данных записывается в регистр ds

; сегмент данных

dseg segment

mes db 64 dup('~')

dseg ends

В начале сегмента кода две командыMOV, выполняющие настройку сегментного регистра DS.

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

mov ax,ds

mov es,ax

Но есть и другой способ выполнения данной операции -использование стека и команд PUSH и POP:

push ds ;поместить значение регистра ds в стек

pop es ;записать в es число из стека

Для двунаправленной пересылки данных применяют команду XCHG. Естественно, что операнды должны иметь один тип. Не допускается (как и для всех команд ассемблера) напрямую обменивать между собой содержи­мое двух ячеек памяти. К примеру:

xchg ax,bx ;обменять содержимое регистров ах и bx

xchg ax, word ptr [si] ;обменять содержимое регистра ах и слова в памяти по адресу в [si]

 

 

50. Работа с адресами и указателями на ассемблере. Пример программы.

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

· ,<источник> — загрузка эффективного адреса;

· lds <приемник>,< а указателя в регистр сегмента данных ds;

· les <приемник>,<источник> — загрузка указателя в регистр дополнительного сег­мента данных es;

· lgs <приемник>,<источник> — загрузка указателя в регистр дополнительного сег­мента данных gs;

· lfs <приемник>,<источник> — загрузка указателя в регистр дополнительного сег­мента данных fs;

· Iss <приемник>,<источник> — загрузка указателя в регистр сегмента стека ss.

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

– Конец работы –

Эта тема принадлежит разделу:

Определение операционной системы ОС. Назначение и основные функции ОС.

Операционная система ОС комплекс программ обеспечивающих управление ресурсами вычислительной системы и процессами использующие эти ресурсы при... Ресурсы любой физический или логический компонент компьютера это процессор... Функции ОС...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Компоновка программы

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Эволюция ОС.
I. 1945-1955 г.г. В восемнадцатом веке английский математик Чарльз Бэббидж изобрёл компьютер (теоретически). ОС он не имел. С середины 40-х годов были изобретены первые ламповые вычислительн

Краткий обзор архитектуры Windows.
  Процессы поддержки системы Процессы сервисов

Основные системные файлы Windows 95, NT, 2000.
ntoskrnl.exe - исполнительная система и ядро hal.dll - уровень абстрагирования от оборудования win32k.sys - часть подсистемы win32, работающий в режиме ядра. kernel32.dll

Страничная или сегментно-страничная организация памяти.
Память процессора разбивается на страницы, размер которых зависит от типа процессора (обычно 4 - 8 Кб). 1) С помощью сегментной организации из логического адреса формируется линейный. Начи

В физическом адресном пространстве выбрана страница. Выбранная страница 1.
Каждый процесс имеет свой каталог страниц. Как только процесс (программа) загружается на выполнение в системный регистр CR3 записывается адрес каталога страниц. Индекс каталога страниц требуется дл

Алгоритм NRU (Not Recently Used - не использовавшаяся в последнее время страница)
Используются биты обращения (R-Referenced) и изменения (M-Modified) в таблице страниц. При обращении бит R выставляется в 1, через некоторое время ОС не переведет его в 0. M перев

Алгоритм FIFO (первая прибыла - первая выгружена)
Недостаток заключается в том, что наиболее часто запрашиваемая страница может быть выгружена. 7.1.3 Алгоритм "вторая попытка" Подобен FIFO, но

Алгоритм LRU (Least Recently Used - использовавшаяся реже всего)
Первый метод: Чтобы реализовать этот алгоритм, можно поддерживать список, в котором выстраивать страницы по количеству использования. Эта реализация очень дорога. Второй м

Регионы в адресном пространстве.
4 Гб адресное пространство выделяется процессу в момент создания и является практически свободным, незарезервированным. Для того, чтобы воспользоваться адресным пространством нужно выделить регион,

Передача физической памяти региону.
Чтобы получить возможность практического использования зарезервированного региона адресного пространства, необходимо выделить физическую область, а затем увязать ее с регионом. Физическая память вс

Механизм выделения страниц физической памяти.
  СФ – страничный файл. Если данные в страничном файле есть. LIFO. LRU - менеджер виртуальной памяти отмечает и выгружается та страница, к которой наиболее длительно

Выделение физической памяти под программный код.
Физическая память выделяется в страничном файле. При запуске приложения ОС открывает его исполняемый файл и определяет объем кода и данных приложения. ОС резервирует регион адресного пространства и

Атрибуты защиты страниц.
Отдельные страницы имеют различные атрибуты защиты: 1) PAGE_NOACCESS. Попытка чтения, записи, исполнения в этом регионе памяти вызовет нарушение доступа. 2) PAGE_READONLY. Попытка

Функции компилятора для контроля стека.
В случае DOS при компиляции программ нужно было включать дополнительный программный код для конроля размера стека. В Windows 95, 98, NT этой проблемы нет, но возникает проблема контроля за выделени

КУЧИ (Heaps).
Мы рассматривали функции для работы с виртуальной памятью. Для работы с небольшими областями памяти используются кучи. В DOS кучей являлась вся свободная память. Каждая программа имеет сле

Особенности кучи в Windows 95, Windows NT.
1. В Windows максимальный размер кучи может быть практически равен размеру свободного адресного пространства. По умолчанию выделяется 1 Мб и передаются 2 страницы физической памяти. 2. В W

Структура кучи. Список(Заголовок и арена) кучи Win32.
… 2 блок 2 арена 1 блок 1 арена … критическая секция массив из 4-х заголовков размер   заголовок куч

Список свободных блоков
куча заголовок ////////////////////////////    

Структура арены.
Арена в занятых блоках. Начинается с поля длины блока. Затем в некоторых версиях Windows кроме длины блока могут указываться значения счётчика команд перед обращением к куче. Арена в свобо

Удаление кучи.
HeapDestroy(…). Проблема состоит в том, что 1.куча должна быть свободной, то есть CriticalSection=0. 2. куча может иметь подкучи. Необходимо удалить весь список связанных подкуч. Wi

Дополнительные кучи Win32 процесса.
Создаются по следующим причинам: 1. для защиты компонентов кучи. 2. для более эффективного управления памятью. 3. для локализации доступа. Рассмотрим вариант 1.

Создание дополнительных куч для эффективного управления памятью.
А3 А5 А4 х А6 В5 В1 А2 х

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

Файлы проецируемые в память (ФПВП).
Как и виртуальная память проецирование файлов в память позволяет резервировать регион адресного пространства и передавать ему физическую память, но физическая память берётся не из страничного файла

Проецирование в память exe и dll файлов.
Чтобы запустить ехе файл CreateProcess(…), где имя файла – это один из параметров. 1. Отыскивается ехе файл, вызванный функцией. 2. Создаётся объект ядра процесс. 3. Созд

Совместное использование статических данных несколькими экземплярами exe и dll модулей.
Например, имеется ехе файл, который состоит из ехе файл виртуальная память ВАП раздел кода 3 страницы   раздел данных 2 страницы

Иерархия функций работы с памятью.
Можно выделить 4 уровня функций работы с памятью, причём функции последнего уровня зависят от функций предыдущего уровня. 1. Функции управления памятью на уровне системных сервисов – 0 кол

Объекты kernel32.dll.
Объекты kernel32 являются ключевыми структурами данных ОС и находятся в куче, которой владеет kernel32. Например, в Windows 95,98 около 17 объектов, в Windows 2000 около 26 объектов. Примеры объект

Структура IMTE.
таблица модулей IMTE kernel32.dll pModuleTableArray user32.dll

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

Основные функции для работы с потоками.
1) CreateThread(…). Создаёт новый поток в текущем процессе. 2) CreateRemoteThread(…).Создаёт новый поток в другом процессе. 3) ExitThread(…). Нормальное завер

Уровни приоритета.
В Windows поддерживается 32 уровня приоритета от 0 до 31. Все приоритеты делятся на четыре класса. Класс приоритета присваивается процессу с помощью одного из флагов функции CreateProcess. Рассмотр

Функции Win32 связанные с планированием.
SuspendThread(…) – приостанавливает поток. ResumeThread(…) – возобновляет. SetPriorityClass(…) – установить класс приоритета процесса. GetPriorityClass(…) – получить. SetThreadPriority(…) – установ

Сценарий планирования.
1) Самостоятельное переключение потока 2) Вытеснение потоков 3) Завершение кванта времени 4) Завершение потока   1) Самостоятельное переключение

Динамическое повышение приоритета потока.
Windows может динамически повышать значение текущего приоритета потока в следующих случаях. 1. После завершения операций ввода/вывода. 2. По окончанию ожидания какого-либо события

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

Синхронизация потоков без использования объектов синхронизации.
Пусть есть 2 потока. Поток 1 синхронизирует себя завершением какой-либо задачи в другом потоке, постоянно просматривая значения некоторой переменной, доступной из обоих потоков.

Синхронизация потоков.
1. Объекты синхронизации могут находится в двух состояниях. 1) signaled – свободен 2) non-signaled – занят 2. Если состояние свободное, то работа потока разрешена, если в занятом,

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

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

Синхронизация объектов.
Для синхронизации с использованием объектов используются функции WaitForSingleObject(…), WaitForMultipleObject(…). Синхронизация с использованием таких объе

События со сбросом вручную.
При освобождении события со сбросом вручную из состояния ожидания могут выйти одновременно несколько потоков. Пример. Один поток считывает, другой эти данные обрабатывает. ResetEv

События с автоматическим сбросом.
Освобождаются с помощью SetEvent(…), переходят в занятое состояние с помощью WaitForMultipleObjects(…), как только событие освобождается.   WaitForMultipleObjects(…);

События со сбросом вручную.
При освобождении события со сбросом вручную из состояния ожидания могут выйти одновременно несколько потоков. Пример. Один поток считывает, другой эти данные обрабатывает. ResetEvent(…) –

События с автоматическим сбросом.
Освобождаются с помощью SetEvent(…), переходят в занятое состояние с помощью WaitForMultipleObjects(…), как только событие освобождается. WaitForMultipleObjects(…); . Set

Посылка асинхронных сообщений в очередь потока
Когда с потоком связывается структура THREADINFO, он получает свой набор очередей сообщений. Если процесс создает три потока и все они вызывают функцию Create Window, то и наборов очередей с

Формат PE-файла.
Фирма Microsoft разработала переносимый формат файла Portable Executable для использования во всех ОС. Эта же фирма разработала новый формат для объектных (obj) и для библиотечных (lib) фа

Особенности РЕ-формата.
1. Исполняемый файл на диске и модуль, получаемый после загрузки практически идентичны. Загрузчик должен создать из файла процесс без усилий механизмом проецирования в память. 2. Использов

Заголовок РЕ-файла.
Заголовок – это набор полей, который определяет, как будет выглядеть остальная часть файла. Несколько сотен байт РЕ-файлов заняты под заглушку (‘This program must be run u

Основные секции исполняемого PE-файла.
В ней (text.) обычно собран весь программный код общего назначения. BC++ помещает весь программный код в секцию CODE. Особенностью данной секции в РЕ-файле являетс

Импорт в PE-файлах.
Рассмотрим структуру секции .idata. Перед загрузкой в память в секции .idata хранится информация, необходимая для того, чтобы загрузчик мог определить адреса целев

Экспорт в PE-файлах
Информация об экспортируемых функциях хранится в секции .edata (обычно в dll файлах). Таблица экспорта имеет следующую структуру:   Из dll экспортируется 3 ф

Базовые поправки РЕ-файла.
Компоновщик, создавая ехе файл предполагает, где в памяти будет создаваться РЕ-файл в соответствии с предполагаемыми адресами ячеек, в которых создаются данные, адреса переходов. Е

Особенности NTFS.
1. Восстанавливаемость. В случае отключения питания или какого-либо другого сбоя NTFS восстанавливает дисковые тома и возвращает их в целостное состояние. Восстановление происходит

Возможности NTFS.
1. Множественные потоки данных. В NTFS файл – это набор атрибутов, причём данные – это один из атрибутов файла. В файле можно создавать несколько атрибутов данных.

Тома в NTFS.
Структура NTFS начинается с тома. Том соответствует логическому разделу на диске и создаётся при форматировании диска или его части под NTFS. Оснастка Disk Management (Управ

Кластеры в NTFS.
Размер кластера на томе NTFS, или кластерный множитель (cluster factor), уста­навливается при форматировании тома командой

Назначение основных файлов NTFS.
Так, имя файла MFT –– $Mft. Остальные файлы NTFS-тома являются обычными файлами и каталогами. Обычно каждая запись MFT соответств

HKEY_LOCAL_MACHINESystemCurrentControlSetControlFileSystem
Windows NT не генерирует коротких имен для файлов, созданных приложениями POSIX в разделе NTFS. Это означает, что приложения MS-DOS и Wind

Структура файловых ссылок.
Файл на томе NTFS идентифицируется 64-битным значением, которое называ­ется файловой ссылкой (file reference). Файловая ссылка состоит из номера фай­ла и но

Атрибуты файла NTFS
NTFS рассматривает файл не просто как хранилище текстовых или двоичных данных, а как совокупность пар атрибутов их значения, одна из которых со­держит данные файла (соответствующий

Резидентные атрибуты.
Тело резидентного атрибута хранятся в файловой записи, расположенной внутри MFT. Если 8-разрядное поле, расположенное по смещению 08h байт от начала атрибутного заголовка, равно ну

Нерезидентные атрибуты.
Тело нерезидентного атрибута хранится вне MFT, в одном или нескольких кластерах, перечисленных в заголовке данного атрибута в специальном списке. Если 8-разрядное поле, расположенн

Структура каталогов в NTFS
Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки,

Структура больших файлов в NTFS
Файлы NTFS в зависимости от способа размещения делятся на небольшие, большие, очень большие и сверхбольшие. Большие файлы (large). Если данн

Индексация файлов в NTFS.
Здесь мы будем говорить о структуре каталогов NTFS. Каталог в NTFS представляет собой индекс имён файлов, т. е список имён, упорядоченных по любому признаку. В нас

Битовая карта.
Используется для отслеживания того, какие VCN в индексных буферах заняты, а какие свободны. Каждый индексный буфер размером 2 Кб может содержать около 15 записей для имён файлов. Э

Восстанавливаемость NTFS.
NTFS представляет собой останавливающуюся файловую систему. Файловые системы делятся на: 1. Файловые системы с точной записью. 2. Файловые системы с отложенной записью или останав

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

Журнал транзакций.
Используется несколько типов записей. Это записи модификации и записи контрольной точки. Записи модификации. Большинство зап

Записи модификации.
Большинство записей в журнале – это запись модификации. Каждая запись модификации содержит два вида информации: 3. Информация для повтора, которая содержит сведения о том, как вновь примен

Восстановление данных в NTFS.
При выполнении операций NTFS ведёт две таблицы, которые записываются в журнал транзакций одновременно с записью контрольной точки. Эти таблицы следующие: 1. Таблица транза

Проход анализа.
При проходе анализа (analysis pass) NTFS просматривает журнал транзакций в прямом направлении, начиная с последней операции контрольной точки, чтобы найти записи м

Проход повтора.
На проходе повтора (redo pass) NTFS сканирует журнал транзакций в прямом направлении, начиная с LSN самой старой записи, которая была обнаружена на проходе анализа. Она ищет записи

Проход отмены.
Откатывает неподтверждённые транзакции. В таблице транзакций для каждой незавершённой транзакции хранится LSN.   Транзакция 1 – Транзакция 2 – – – – – – Каж

Переназначение плохих кластеров.
Не восстанавливает данные. Для восстановления используются три схемы избыточного хранения: 1. Зеркальные наборы. 2. Дуплексные наборы. 3. Чередование дис

Выбор операционной системы.
Во время загрузки Ntldr считывает файл Boot.ini. Если в этом файле за-Дан выбор одной из нескольких ОС, будет выведен запрос (Выберите операционную систему для запуска

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

Листинг Копирование строки
<1> ; - Prg.asm - <2> masm <3>model small <4> .data <5> ... <6> str_l db "Асс

Команды циклического сдвига
К командам линейного сдвига относятся команды, осуществляющие сдвиг по следующему алгоритму. 1. Очередной «выдвигаемый» бит устанавливает флаг CF. 2. Бит, появляющийся с другого к

Команды циклического сдвига через флаг переноса CF.
К командам простого циклического сдвига относятся: rol перанд, счетчик_сдвигов — циклический сдвиг влево (Rotate Left). Содержимое операнда сдвигается влево на количество

Перечень команд условного перехода для команды cmp
Типы операндов Мнемокод команды услов­ного перехода Критерий условного перехода Значения флагов для перехода

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги