для чего используется регистры

Регистры и для чего они нужны

Регистрами называют устройства для хранения одного двоичного числа. Ко­личество разрядов в регистрах, выпускаемых отдельно, обычно не превышает восьми, но в составе других микросхем могут быть и регистры с большей разрядностью— вплоть до 128 или 256 бит в «продвинутых» микропроцес­сорах. Большинство типов электронных запоминающих устройств, вообще говоря, можно рассматривать как совокупность регистров. Но собственно регистры, как входящие в состав процессоров, так и выпускаемые отдельно, отличаются тем, что позволяют не только записывать и считывать информа­цию, но и производить некоторые простейшие операции, например, сдвиг разрядов.

Простейший регистр — это упомянутый ранее статический D-триггер. Четы­ре таких триггера, входящих в микросхему 561ТМЗ, образуют четырехраз­рядный регистр с параллельной записью и считыванием, причем тактовый вход в этой микросхеме у всех четырех разрядов общий. Как и сам триггер, такой регистр называют «защелкой».

Если регистр-защелка позволяет осуществлять только параллельную запись, то последовательный регистр (пример— 561ИР2) наоборот, имеет возмож­ность записи только через один вход, который является D-входом самого младшего разряда. Последовательный регистр является неким обобщением конструкции D-триггера. Работу динамического D-триггера можно рассмат­ривать, как процесс сдвига информации от входа через первый триггер ко второму при поступлении соответствующих перепадов на тактовом входе. В последовательном регистре, который в простейшем случае представляет собой просто последовательное соединение таких триггеров, происходит не­что подобное — с каждым фронтом тактового импульса информация сдвига­ется от младшего разряда к старшему, при этом в младший разряд записыва­ется состояние входа. Считывать информацию при этом можно из каждого разряда в отдельности, как и в случае регистра-защелки. Такие регистры по­лучили еще название сдвиговых. Они широко используются для последова­тельного ввода и вывода информации — скажем, для вывода восьми бит че­рез последовательный порт RS-232 достаточно записать их в такой регистр, а потом подать на него восемь тактовых импульсов с нужной частотой.

Сдвиговый регистр можно закольцевать — соединить выход старшего разря­да со входом младшего и получить нечто подобное.слону из анекдота, кото­рый засунул хобот себе в известное место. Однако в случае одного сдвигово­го регистра такое соединение приведет к тому же результату, что и для слона, то есть довольно бесполезно практически, ибо мы без дополнительных ухищрений запись информации производить уже не сможем. Поэтому ис­пользуют объединение параллельной и последовательной записи/считывания в одном устройстве (пример— четырехразрядный регистр 561ИР9 или вось­миразрядный 561ИР6).

Такие сдвиговые регистры с параллельной записью и последовательным счи­тыванием информации — неотъемлемая часть устройств памяти большой ем­кости, без них чтение и запись в большие массивы запоминающих ячеек были бы невозможны. Имеются они, например, в матрицах цифровых камер. Инте­ресное применение таких регистров — организация последовательного ин­терфейса SPI, широко используемого для скоростного обмена информацией ме>кду различными микросхемами (например, ме>кду энергонезависимой памя­тью, вроде флэш-карточек, и микроконтроллером). В SPI наличествуют два восьмибитовых регистра, соединенных в кольцо входами/выходами, но они разделены пространственно: один регистр находится в одном устройстве, дру­гой — в другом. Если подавать тактовые импульсы на оба регистра одновре­менно (это осуществляет одно из устройств — ведущее), то после подачи ров­но 8 импульсов устройства обменяются содержимым своих регистров.

Источник

Начинаем изучать STM32: Что такое регистры? Как с ними работать?

Продолжаем рассмотрение базовых вопросов

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

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Память и регистры

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

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

Каждый из регистров имеет свой порядковый номер – адрес. Адрес регистра обозначается 32-битным числом представленным в шестнадцатеричной системе счисления. Путём записи по адресу регистра определённой комбинации единиц и нулей, которые обычно представлены в шестнадцатеричном виде, осуществляется настройка и управление тем или иным узлом в МК. Вспомним, что в программе для работы с битовыми операциями, мы могли представить в виде шестнадцатеричного числа произвольный набор единиц и нулей. В целом стоит отметить, что существует два вида регистров: регистры общего назначения и специальные регистры. Первые расположены внутри ядра МК, а вторые являются частью RAM-памяти.

Так же стоит отметить, что Reference Manual, который мы скачивали в первом уроке, это один большой справочник по регистрам, содержащимся в целевом микроконтроллере, а библиотека CMSIS позволяет нам оперировать символьными именами регистров вместо числовых адресов. Например, к регистру 0x40011018 мы можем обратиться просто, используя символьное имя GPIOC_BSSR. Конкретные примеры конфигурирования мы рассмотрим в ходе разбора нашей программы из первого занятия.

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

Разбор кода из первого занятия

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

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

Первым делом, при работе с STM32, даже для такой простой задачи как включение и выключение светодиода нам необходимо предварительно ответить на ряд вопросов:

Куда подключены наши светодиоды? К какому выводу микроконтроллера?

Для того, чтобы посмотреть где что находится на плате Discovery, а в частности, нужные нам светодиоды — нужно открыть Schematic-файл, либо тот который мы скачали с сайта ST, либо прямо из Keil:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Открыв Schematic мы увидим схему всего того, что есть на плате — схему ST-Link, обвязку всей периферии и многое другое. На текущий момент нас интересуют два светодиода, ищем их обозначение:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Как мы видим, наши светодиоды подключены к порту GPIOC на 8 и 9 пин.

Как включить тактирование на нужный порт GPIO?

В целом, любая работа с периферией в микроконтроллерах STM32 сводится к стандартной последовательности действий:

Внимание! Вопрос касательно системы тактирования, её настройки и использования мы подробно рассмотрим в отдельной статье.

Найти к какой шине подключен наш порт GPIOC можно найти в Datasheet’е на наш МК в разделе Memory Mapping в Таблице 16. STM32F051xx peripheral register boundary addresses.

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Как вы уже успели заметить, необходимая нам шина именуется как AHB2. Для того чтобы подробнее ознакомиться с регистром, в котором включается тактирование на нужный нам порт GPIO на шине AHB, надо перейти в соответствующий раздел в Reference Manual. По названию регистров мы можем определить тот, который нужен нам:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

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

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Смотрим на таблицу и видим нечто напоминающее опции включения тактирования на портах GPIO. Переходим к описанию и находим нужную нам опцию:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Соответственно если мы установим 19 бит в значение «1» то это обеспечит включение тактирования на порт I/O C – то есть на наш GPIOC. К тому же — нам нужно включить отдельно один бит из группы, не затрагивая остальные т.к. мы не должны мешать и изменять без надобности другие настройки.

Основываясь на материалах прошлого урока, мы знаем что для того чтобы выставить определенный бит нужно используя логическую операцию «ИЛИ» сложить текущее значение регистра с маской которая содержит те биты которые необходимо включить. Например, сложим значение регистра RCC->AHBENR по умолчанию, т.е. 0x14 и число 0x80000 тем самым включим тактирование GPIOC путем установки 19 бита:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Каким образом мы можем это сделать из программы? Всё достаточно просто. В данном случае у нас два варианта:

То есть, мы могли бы обращаться к адресам регистров напрямую по адресу и написать так:

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

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

Наш код будет выглядеть следующим образом:

Давайте для ознакомления копнём вглубь библиотеки CMSIS.

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

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

И мы переносимся в глубины библиотеки CMSIS, в которой увидим, что все регистры доступные для управления программным способом имеют вид TypeDef-структур, в том числе и наш RCC:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Провалившись подобным образом в RCC_TypeDef мы увидим структуру в которой описаны все поля нашего регистра:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Соответственно, мы можем спокойно обращаться к нужному нам регистру записью вида PERIPH_MODULE->REGISTER и присваивать ему определенное значение.

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

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Таким образом, используя библиотеку CMSIS у нас получается лаконичная читаемая запись нужного нам параметра в регистр, через установку которого мы запускаем тактирование на нужный нам порт:

В качестве задания: определите используя возможности Keil, каким образом получился адрес регистра RCC->AHBENR как 0x40021014.

Как настроить нужные нам пины GPIO для того чтобы можно было включить светодиод?

Итак, мы знаем что нужные нам светодиоды подключены к порту GPIOC к пинам PC8 и PC9. Нам нужно настроить их в такой режим, чтобы загорался светодиод. Хотелось бы сразу же сделать оговорку, что порты GPIO мы рассмотрим подробнее в другой статье и тут мы сконцентрируемся именно на работе с регистрами.

Первым делом нам нужно перевести режим работы пинов PC8 и PC9 в режим Output. Остальные параметры порта можно оставить по умолчанию. Переходим в Reference Manual в раздел 9. General-purpose I/Os (GPIO) и открываем пункт отвечающий за режим работы пинов порта GPIO и видим что за этот параметр отвечает регистр MODER:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Судя по описанию, для установки пинов PC8 и PC9 в режим Output мы должны записать 01 в соответствующие поля регистра GPIOC.

Это можно сделать через прямую установку с помощью числовых значений:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Или через использование определений из библиотеки:

После данной инструкции наши пины PC8 и PC9 перейдут в режим Output.

Как включить светодиод?

Если мы обратим внимание на список доступных регистров для управления портом GPIO то можем увидеть регистр ODR:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Каждый из соответствующих битов отвечает за один из пинов порта. Его структуру вы можете увидеть ниже:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Для того, чтобы обеспечить попеременную смену состояний светодиодов надо с определенным временным интервалом включать/выключать 8 и 9 биты. То есть попеременно присваивать регистру значение 0x100 и 0x200.

Сделать это мы можем через прямое присвоение значений регистру:

Можем через использование определений из библиотеки:

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

На этом первоначальное знакомство с регистрами и методами работы с ними мы можем закончить.

Проверка результатов работы нашего кода

Небольшое приятное дополнение в конце статьи: в Keil имеется отличный Debug-инструмент с помощью которого мы можем пошагово выполнить нашу программу и просмотреть текущее состояние любого периферийного блока. Для этого после загрузки прошивки после компиляции мы можем нажать кнопку Start Debug Session:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

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

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

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

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

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Если вы кликните по одному из пунктов данного меню, вы увидите адрес регистра и его краткое описание. Так же можно просмотреть описание к каждому отдельному параметру регистра:

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

Попробуйте самостоятельно пошагово выполнить программу, включить/выключить светодиоды не используя программу, а используя данный режим работы с микроконтроллером. Простор для фантазии тут обширный. Так же попробуйте поиграться с длительностями задержек, сделайте одновременное моргание обоими светодиодами. В общем экспериментируйте! )

Источник

Регистры микропроцессоров, их виды и назначение

для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистрыОбщие сведения.

При составлении программ в первую очередь необходимо

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

В регистровой модели современных процессоров обычно выделяют следу­ющие группы регистров:

● регистры, используемые при выполнении прикладных программ. К ним относят:

• основные функциональные регистры (регистры общего назначения; ука­затель команд, или программный счетчик; сегментные регистры; регистр флагов, или слова состояния);

обработки чисел с плавающей точкой (регистры данных, тегов, состояния, управления, регистры–указатели команды и операнда);

обработки пакетов чисел с плавающей точкой (регист­ры пакетов данных и регистр управления–состояния);

системные регистры (регистры управления режимом, регистры системных адресов, регистры отладки);

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

О неоднородности регистров.

Регистровая область памяти микропроцессора (

— регистровый сегмент) представляет собой набор неоднородных по возможности доступа и по выполняемым функциям регистров. Например, в рас­смотренном выше 8–разрядном процессоре:

● регистр команд является неадресуемым регистром и предназначен только для приема первого байта (кода команды) из памяти;

адресуемые регистры В и С могут быть использованы для хранения одного байта данных или 16–разрядного адреса (в паре);

указатель стека, представляющий собой 16–разрядный регистр, использует­ся для доступа к стеку путем явной и неявной (с помощью специальных ко­манд

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

Функциональная неоднородность области

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

регистры данных, используемые в операциях АЛУ в качестве источника и приемника операндов;

адресные регистры, или указатели, предназначенные для формирования ад­ресов данных и команд;

специальные регистры, служащие для индикации текущего состояния про­цессора и управления режимами его работы.

Функциональная специализация затрудняет программирование (из–за необхо­димости учета организации регистров), однако позволяет создать быстро испол­няемую программу с меньшим требуемым объемом памяти для ее хранения.

Регистры обозначаются латинскими буквами, используемыми для символи­ческого кодирования и отражающими назначение регистра.

Среди регистров данных важное место занимает аккуму­лятор А (

), который выполняет функции временного хранения исход­ных операндов и результатов операций арифметическо–логических устройств (АЛУ). Интенсивное использование аккумулятора и связанное с ним большинство команд арифметической и логической обработки операндов способствует сниже­нию загруженности шины данных, упрощению адресации, повышению быстро­действия процессора. В системах команд микропроцессора выделяются опера­ции с аккумулятором. Поэтому ссылка на аккумулятор при адресации, как прави­ло, производится неявно с помощью кода операции. Неявная адресация позволя­ет не указывать в командах месторасположение одного из операндов и (или) результата операции, что уменьшает длину их кода. В составе микропроцессора может быть не один, а два аккумулятора (например, в МС6809). К регистрам данных относятся явно адресуемые рабочие регистры

1, …., используемые как сверхскоростные регистровые ОЗУ.

Рабочие регистры могут использоваться в операциях совместно с аккумулятором. Некоторые из них могут совмещать функцию хранения данных с функцией адресации. Для образования полноразмерного адреса регистры данных объединяются в пары.

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

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

Среди регистров, на которые возложена функция адре­сации, следует выделить:

), или указатель инструкций–команд (

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

увеличивается на 1 или 2 для указания следующего байта или слова. Увеличение содержимого счетчика происходит автоматически сразу после начала выполнения команды. Изменение после­довательной выборки команд из ячеек памяти осуществляется путем загруз­ки программного счетчика адресом требуемой ячейки. Такая ситуация возни­кает, например:

• при выполнении команд условных и безусловных переходов;

• при инициализации микропроцессора путем сброса;

• при обслуживании запросов на прерывание;

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

т. е. в него можно только последовательно добавлять (втал­кивать) или извлекать (выталкивать) элементы данных. Типовой стек, приме­няемый в большинстве процессоров, заполняется в сторону уменьшения ад­ресов.

всегда показывает на последнюю заполненную ячейку, называемую вершиной стека (

Поэтому при операции за­писи (

) в стек элемента данных сначала содержимое указателя

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

) сначала элемент данных извлекается из стека, после чего содержимое указателя

увеличивается на 1 или 2.

Принцип взаимодействия указателя

со стеком проиллюстрирован на примере записи в стек и считывания из него четырех однобайтных элементов (рис. 2.4.1, а). для чего используется регистры. Смотреть фото для чего используется регистры. Смотреть картинку для чего используется регистры. Картинка про для чего используется регистры. Фото для чего используется регистры

При операциях со стеком значение указателя

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

) — специально зарезерви­рованный адресный регистр. Регистр

, указывающий на начало области па­раметров в стеке (рис. 2.4.1, б), принадлежит к классу базовых регистров. В 16–разрядных процессорах указателем кадра служит индексный регистр ВХ;

регистры, предназначенные для хранения адресов обращения к основной па­мяти. Такие регистры, называемые указательными или индексными, позволя­ют сократить размер кода (программы). К ним следует отнести:

• регистры косвенного адреса (

), содержащие непосред­ственно адрес операнда;

), хранящие начальные (базовые) адреса массивов и записей;

индексные регистры I или X (

), содержимое которых является относи­тельным (смещенным) адресом операнда;

• регистры автоинкрементной и автодекрементной адресации, автоматиче­ски увеличивающие или уменьшающие свое содержимое после выполне­ния операции;

• регистры расширения адресного пространства (до 1М байт).

К специальным регистрам следует отнести регистр флагов (

), или регистр слова состояния программы (

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

На регистр флагов возлагается функция хранения признаков. С каждым при­знаком связывается одноразрядная переменная (бит), называемая флагом (флажком). Регистр флагов содержит:

биты признаков состояния процессора. Обычно эти признаки формируются в АЛУ после выполнения операции и характеризуют ее результат;

● биты управления и системных признаков, которые устанавливаются операци­онной системой (некоторые пользователем) и задают режим процессора при организации ввода–вывода данных, обслуживании прерываний и исключений, решении последовательности вызываемых задач и реализации ряда других процедур.

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

Ниже приведены обозначение, название и назначение флагов признаков состояния, а также показан принцип формирования некоторых флагов из отдельных бит

–разрядных операндов вида

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *