Старый 29.04.2009, 23:44   #11
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума

По умолчанию Память, регистры, ОЗУ


Использование регистров

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

И так, существуют такой замечательный регистр флагов как flags (eflags) – разрядность составляет 16 (32). Фактически в линейки из этих битов, каждый бит это и есть соответствующий флаг.

Приступим к рассмотрению флагов (биты) регистра flags. Можно разделить флаги по особенности использования, в результате получим три группы:

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

Флаг переноса CF (Carry Flag) – О нём уже говорилось ранее, при рассмотрении арифметики в ЭВМ. Значение флага:
1 – перенос имел место из старшего бита результата при выполнении арифметической операции.
0 – переноса не было.

Флаг паритета PF (Parity Flag) – значение флага описывает только 8 младших разрядов результата операции. Значение:
1 – 8 младших разрядов результата содержат чётное число единиц.
0 – соответственно число единиц не чётное в 8 младших разрядах.

Вспомогательный флаг переноса AF (Auxiliary carry Flag) - только для команд, работающих с BCD-числами. Фиксирует факт заема из младшей тетрады результата:
1 — в результате операции сложения был произведен перенос из разряда 3 в старший разряд или при вычитании был заем в разряд 3 младшей тетрады из значения в старшей тетраде;
0 — переносов и заемов в(из) 3 разряд(а) младшей тетрады результата не было

Флаг нуля ZF (Zero Flag) – Флаг, указывающий не нулевое значение после выполнения команды.
1 – результат нулевой.
0 – результат отличен от нуля.

Флаг знака SF (Sign Flag) – как уже ранее говорилось, последний бит в разно знаковых числах отражает знак значения. Данный флаг принимает значение, в зависимости от знака результата:
1 – старший бит равен 1, число отрицательное.
0 – старший бит 0, число положительное.

Флаг переполнения OF (Overflow Flag) – данный флаг указывает, что при проведении арифметической операции был потерян старший бит. О данном факте было рассказано в разделе арифметика в ЭВМ. Значение флага:
1 – старший бит был использован при проведении операции, то есть заём из бита, который скажем, мог обозначать знак.
0 – заёма из старшего бита не производилось.
Уровень привилегий ввода вывода IOPL (Input/Output Privilege Level) – применяется для контроля доступа к командам ввода / вывода в защищённом режиме, в зависимости от привилегий исполняемых задач.

Флаг вложенности задачи NT (Nested Task) – Используется в защищённом режиме работы процессора, для указания на тот факт, что задача имеет вложенную задачу.
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
5 системных флагов
Старый 29.04.2009, 23:46   #12
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума
По умолчанию 5 системных флагов

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

Флаг трассировки TR (Trace Flag) – само слово, отчётливо говорит, что это трассировка, то есть пошаговое выполнение программы, используется в отладчиках, ну или для ручной отладки. Значение флага:
1 – после выполнения каждой команды устанавливается прерывание с номером 1.
0 – обычная работа.

Флаг прерывания IF (Interrupt enable Flag) – используется для запрещения или разрешения аппаратных прерываний. Маскирование прерываний по входу INTR.
1 – разрешены аппаратные прерывания.
0 – запрещены.

Флаг возобновления RF (Resume Flag) – флаг используется для обработки прерываний вызываемых регистрами отладки.

Флаг виртуального 8068 режима VM (Virtual 8068 Mode) – свидетельствует о работе процессора в режиме виртуального 8068.
1 – работа идёт в виртуальном режиме 8068.
0 – работа в режиме реальном или защищённом.

Флаг контроля выравнивания AC (Alignment Check) - предназначен для разрешения контроля выравнивания при обращениях к памяти. Используется совместно с битом am в системном регистре cr0. Если требуется контролировать выравнивание данных и команд по адресам кратным 2 или 4, то установка данных битов приведет к тому, что все обращения по некратным адресам будут возбуждать исключительную ситуацию.
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
Регистры флаги
Старый 29.04.2009, 23:46   #13
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума
По умолчанию Регистры флаги

Третья группа это всего один флаг управления.

Эта группа включает в себя всего один флаг, входящий в состав регистра flag (eflag).
DF (Directory Flag) – используется в цепочных командах, определяет направление выполнения команд (элементов, поэлементной обработки). Значения:
1 – от конца к началу.
0 – от начала к концу.

При работе с этим флагом существуют специальные команды:
Установить флаг STD (SeT Direction Flag) – значение DF принимает значение 1.
Снять флаг CLD (CLear Direction flag) – значение DF принимает значение 0.


Регистры флаги.

Регистр указатель команд IP (EIP) (Instaction Pointer register) – прямого доступа к регистру программист получить не может, но может изменять его значения используя специальные команды. Разрядность регистра 16 (32) бита, содержит в себе смещение следующей команды подлежащей выполнению относительно содержания регистра CS (сегментный регистр, о нём было выше) в текущем сегменте команд.
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
Регистры флаги
Старый 29.04.2009, 23:47   #14
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума
По умолчанию Регистры флаги

Третья группа это всего один флаг управления.

Эта группа включает в себя всего один флаг, входящий в состав регистра flag (eflag).
DF (Directory Flag) – используется в цепочных командах, определяет направление выполнения команд (элементов, поэлементной обработки). Значения:
1 – от конца к началу.
0 – от начала к концу.

При работе с этим флагом существуют специальные команды:
Установить флаг STD (SeT Direction Flag) – значение DF принимает значение 1.
Снять флаг CLD (CLear Direction flag) – значение DF принимает значение 0.


Регистры флаги.

Регистр указатель команд IP (EIP) (Instaction Pointer register) – прямого доступа к регистру программист получить не может, но может изменять его значения используя специальные команды. Разрядность регистра 16 (32) бита, содержит в себе смещение следующей команды подлежащей выполнению относительно содержания регистра CS (сегментный регистр, о нём было выше) в текущем сегменте команд.

С уважением, HolyAnimal
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



взломать аську аську взломать взлом программы сделать взлом программы как сделать взлом программы хакерские сайты как легко взломать аську лучшие хакерские сайты топ список хакерские сайты взлом паролей легкий взлом паролей

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. Перевод: zCarot