Регистры ЦП - Разработка программ на языке Ассемблер и на языке HTML
Для выполнения арифметических действий, пересылки данных и адресации, компьютер имеет ряд регистров. Регистр - это область памяти для временного хранения данных. По назначению различают:
Аккумуляторы - хранение промежуточных результатов арифметических и логических операций, инструкций ввода-вывода.
Флаговые - хранение признаков результатов арифметических и логических операций.
Общего Назначения - хранение операндов арифметических и логических выражений, индексы, адреса.
Индексные - индексы исходящих и целевых элементов массива.
Указательные - указатели на специальные области памяти, указатели текущей операции, указатели базы, указатели стека.
Сегментные - адреса и селекторы сегментов памяти.
Управляющие - информация управляющая состоянием процессора, адреса системных таблиц.
Регистры общего назначения
ЕАХ (Accumulator) - хранение промежуточных данных
EBX (Base) - хранение базового адреса
ECX (Counter) - регистр-счетчик применяется в командах, производящих некоторые повторяющееся действия, его использование зачастую не явно - скрыто в алгоритме работы команды.
EDX (Data)-хранение промежуточных данных. Данные Регистры являются 32-разрядными и делятся на две части по 16 бит, старшая часть - не доступна, а младшая тоже делится на две части по 8 бит.
Регистры указатели
ESI И EDI-индексы источника и приемника, используются при обработке длинных полей.
EBP И ESP-указатели базы и вершины, используются при работе со стеком. Эти регистры также 32-разрядные и имеют младшие 16-ти разрядные части SI, DI, BP, SP соответственно.
Сегментные регистры
Структура программы разделена на блоки - сегменты, выделяют следующие типы сегментов:
Сегмент Кода содержит команды программы, адрес сегмента кода с которым в настоящий момент работает программа располагается в сегментном регистре Сs.
Сегмент Данных содержит данные, которыми оперирует программа. Программа одновременно может работать с несколькими сегментами данных. Адрес основного сегмента данных располагается в регистре Ds, а дополнительных -- в Es, Gs, Fs.
Сегмент Стека - специальная область памяти, ее адрес располагаться в регистре Ss.
Сегментные регистры являются 16-разрядными.
Регистр указателя инструкций
EIP-32
IP-16
Содержит смещение следующей подлежащей выполнению команды относительно начала сегмента кода. После выполнения команды меняется автоматически.
Полный адрес команды формирует пара регистров CS:IP
Регистр флагов
EFLAGS-32
FLAGS-16
Биты этих регистров называются флагами.
Различают флаги состояния, управляющие, системные и зарезервированные флаги.
Флаг переноса CF
(Carry Flag) идентифицирует перенос или заем при выполнении арифметических операций, а также служит индикатором ошибки при обращении к системным функциям.
Флаг паритета PF
(Parity Flag) устанавливается в 1, если младшие 8 бит результата операции содержат четное число двоичных единиц.
Флаг вспомогательного переноса AF
(Auxiliary Flag) используется в операциях над упакованными двоично-десятичными числами.
Он идентифицирует перенос или заем из старшей тетрады (бита 4).
Флаг нуля ZF
(ZeroFlag) устанавливается в 1, если результат операции равен нулю.
Флаг знака SF
(SignFlag) показывает знак результата операции, устанавливаясь в 1 при отрицательном результате.
Флаг переполнения OF
(OverflowFlag) фиксирует переполнение, т. е. выход результата операции за пределы допустимого для данного процессора диапазона значений. Флаги состояния автоматически устанавливаются процессором после выполнения каждой команды.
Управляющий флаг трассировки TF
(TraceFlag) используется в отладчиках для осуществления пошагового выполнения программы. Если TF = 1, то после выполнения каждой команды процессор реализует процедуру прерывания 1 (через вектор прерывания с номером 1).
Управляющий флаг разрешения прерываний IF
(InterruptFlag) разрешает (если равен 1) или запрещает (если равен 0) процессору реагировать на прерывания от внешних устройств.
Управляющий флаг направления DF
(DirectionFlag) используется особой группой команд, предназначенных для обработки строк. Если DF = 0, строка обрабатывается в прямом направлении, от меньших адресов к большим; если DF = 1, обработка строки идет в обратном направлении.
Похожие статьи
-
Описание разработанной структуры Описание структуры данных, используемой в программе, имеет вид: Struct Worker{ Char surname [20]; //фамилия Double...
-
Проектирование и разработка сайта Средства разработки Язык гипертекстовой разметки HTML В Интернете сосредотачивается и передается достаточно большое...
-
Введение - Разработка программ на языке Ассемблер и на языке HTML
Учебная практика по МДК 01.01 "Системное программирование" и МДК 01.03 "WEB-программирование" предназначена для закрепления теоретических знаний,...
-
Введение, Теоретические основы - Разработка консольного приложения на языке С++
Данная работа посвящена созданию своего рода базы данных на языке программирования С++. База данных содержит информацию о сотрудниках этого предприятия,...
-
ClassBase_Korabl {:Color;:_Korabl();Prorisovka(short x, short y); } В этом листинге в производном классе был переопределен метод Prorisovka() для...
-
Постановка задачи, Язык программирования Delphi - Разработка программы "Будильник"
Поставленная задача заключается в следующем. Необходимо создать программу для подачи до 5-ти сигналов в заданное время суток на заданную дату или...
-
ВВЕДЕНИЕ - Разработка программы на языке C++, реализующей игру "Морской бой"
Данная курсовая работа направлена на изучение принципов объектно-ориентированного программирования. Разработать программу на языке C++, реализующую игру...
-
Регистр системных флагов, Регистры сегментов - Модельный процессор МП 80386
Регистр EFLAGS управляет вводом-выводом, маскируемыми прерываниями, отладкой, переключением задач и включением исполнения в режиме виртуального МП 8086 в...
-
Регистры, Регистры общего назначения - Модельный процессор МП 80386
Регистр является устройством временного хранения данных и используется с целью облегчения арифметических, логических и пересылочных операций. Регистры МП...
-
В - Разработка программы на языке C++, реализующей игру "Морской бой"
ИСХОДНЫЙ КОД ЛИСТИНГА В данной программе четко прослеживаются группы функций, которые из-за выполняемых ними операций стоит объединить в классы....
-
Исходя из того, что в программе необходимо предусмотреть запись базы в файл, вытекает следующее: - у пользователя должна быть возможность изначально...
-
ЗАКЛЮЧЕНИЕ - Разработка программы на языке C++, реализующей игру "Морской бой"
В данной курсовой работе была разработана игра "Морской бой". В программе использовались классы, наследование, виртуальные методы. В качестве языка...
-
Тестирование, Анализ работы - Разработка программы на языке C++, реализующей игру "Морской бой"
Чтобы проверить корректность работы программы нужно провести тестирование. Бой с противником продолжается до полной победы, т. е. пока не будут...
-
С целью более удобного проектирования, настройки, и разделения отдельных исполняемых операций, программа построена на классах, которые взаимодействуют...
-
Компромиссная система, для удобства восприятия данных человеком и корректной работы компьютера, двоично-десятичная запись чисел. Принцип построения этой...
-
В данном разделе выпускной квалификационной работы описывается процесс разработки программы извлечения КП текста, а также производится оценка качества ее...
-
Рисунок 2 - Главное окно программного обеспечения Рисунок 3 - Меню программного обеспечения Рисунок 4 - Справочная система Рисунок 5 - Метод...
-
Рисунок 10. Архитектура программы В структуре программы обработки сложноструктурированных данных для научного эксперимента в ИИС "Шлаковые расплавы"...
-
Язык Ассемблера - Компьютерный парк централизованной библиотечной системы
Язык ассеемблера (англ. assemblylanguage) - машино-ориентированный язык низкого уровня с командами, обычно соответствующими командам машины, который...
-
Описание предметной области Предметная область данного проекта - игра "Морской бой". Она реализуется с помощью нажатий на клавиши мыши (размещение...
-
Синтаксис объявления класса в языке С++ имеет следующий вид: Class<имя класса>: <спецификатор доступа><имя базового класса> { Элементы класса...
-
Выбор языка программирования Язык С++ является в настоящее время наиболее распространенным и перспективным языком промышленного программирования. Он...
-
Постановка задачи на разработку программного обеспечения Для того чтобы предлагаемая схема была интегрирована в САПР, который не имеет функции интеграции...
-
Приложение разрабатывается в соответствии с паттерном проектирования Model-View-Presenter (MVP), который является производным от Model-View-Controller...
-
У каждого языка программирования есть свои преимущества и недостатки, и их стоит рассматривать в контексте тех принципов, на которых строился язык, а так...
-
Актуальность разработки - Система автоматизированного разделения кода прикладных программ
В большинстве современных систем, работающих с БД, набор параметров к запросам не фиксирован, а потенциально создаваемая избыточность негативно повлияет...
-
Средства разработки В качестве целевого языка программирования была выбрана Java из-за ее распространенности. Данная система разделения кода также...
-
Клиентская программа, Инструменты разработки - Визуализация графа цитирования
Клиентская программа - является основной частью программы, так как она реализует все алгоритмы, описанные в главе 2 данного документа. Несмотря на то,...
-
Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии...
-
Для перехода к описанию выбора средств разработки, необходимо выделить этапы работы программы. Алгоритм работы программы представлен ниже: Пользователь...
-
При начале разработки после выбора технологического стэка необходимо определить сущности, с набором свойств, которые будут использоваться при дальнейшей...
-
Тестирование и отладка программы - Разработка электронного учебного пособия "VBA. Решение задач"
Процесс отладки является неотъемлемой частью создания любой программы. При программировании могут быть допущены ошибки, которые принадлежат к одному из...
-
Физическая модель базы данных определяет способ размещения данных в среде хранения и способ доступа к этим данным, которые поддерживаются на физическом...
-
Словесное описание Подключаем базы, вводим числа A B C, задаем неравенство (A<B<C) Если A<B<C, то выражение истинно Если неравенство не...
-
Сравнение аналогов - Разработка программы для реализации редактора временных графов синхронизации
Поскольку конечной целью работы был редактор сетей Петри, интегрированный с внешней библиотекой алгебраических вычислений, было рациональным рассмотреть...
-
Обоснование выбранного метода При дизайне системы согласно требованиям или при оптимизации существующей необходимо ввести модель, позволяющую не только...
-
Назначение и краткая характеристика встроенного языка Встроенный язык системы 1С: Предприятие предназначен для описания (на стадии разработки...
-
В программе присутствуют следующие основные модули: - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager...
-
Языки описания порождающих правил - Инструментальные средства разработки экспертных систем
Но, естественно, возможности языков высокого уровня также не беспредельны -- каждый из них имеет свои ограничения. Например, в языке OPS5 возможности...
-
Программный алгоритм визуальный гаусс В программу включены следующие процедуры: "gauss1", "gaussj", "New1Click", "Button1Click", "Button2Click",...
Регистры ЦП - Разработка программ на языке Ассемблер и на языке HTML