Для чего предназначены регистры процессора тест

Обновлено: 19.05.2024

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

По типу приёма и выдачи информации различают 2 типа регистров:

  • С последовательным приёмом и выдачей информации — сдвиговые регистры.
  • С параллельным приёмом и выдачей информации — параллельные регистры.

По назначению регистры различаются на:

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

· управляющие — хранят информацию, управляющую состоянием процессора, а также адреса системных таблиц.

Начиная с 80386 процессоры Intel предоставляют 16 основных регистров для пользовательских программ плюс еще 11 регистров для работы с мультимедийными приложениями (MMX(Multimedia Extension)) и числами с плавающей запятой (FPU/NPX (Float Point Unit / Numerical Processor Extension)). Все команды так или иначе изменяют значения регистров, и всегда быстрее и удобнее обращаться к регистру, чем к памяти.

Из реального (но не из виртуального) режима помимо основных регистров доступны так же регистры управления памятью (GDTR, IDTR, TR, LDTR), регистры управления (CR0, CR1 – CR4), отладочные регистры (DR0 – DR7) и машинно-специфичные регистры, но они не применяются для решения повседневных задач.

Регистры общего назначения.

Остальные четыре регистра – ESI (индекс источника), EDI (индекс приемника), EBP (указатель базы), ESP (указатель стека) - имеют более конкретное назначение и применяются для хранения всевозможных временных переменных. Регистры ESI и EDI необходимы в строковых операциях, EBP и ESP – при работе со стеком. Так же как в случае с регистрами EAX – EDX, младшие половины этих четырех регистров называются SI, DI, BP и SP соответственно, и в процессорах до 80386 только они и присутствовали.


(Регистры общего назначения)

Сегментные регистры.

При использовании сегментированных моделей памяти для формирования любого адреса нужны два числа – адрес начала сегмента и смещение искомого байта относительно этого начала (в бессегментной модели памяти flat адреса начала всех сегментов равны). Операционные системы (кроме DOS) могут размещать сегменты, с которыми работает программа пользователя, в разных местах памяти и даже временно записывать их на диск, если памяти не хватает. Так как сегменты способны оказаться где угодно, программа обращается к ним, применяя вместо настоящего адреса начала сегмента 16-битное число, называемое селектором. В процессорах Intel предусмотрены шесть 16-битных регистров – CS, DS, ES, FS, GS, SS, где хранятся селекторы. Это означает, что в любой момент можно изменить параметры, записанные в этих регистрах.




В отличие от DS, ES, GS, FS, которые называются регистрами сегментов данных, CS и SS отвечают за сегменты двух особенных типов – сегмента кода и сегмент стека. Первый содержит программу, исполняющуюся в данный момент, следовательно, запись нового селектора в этот регистр приводит к тому, что далее будет исполнена не следующая по тексту программы команда, а команда из кода, находящегося в другом сегменте, с тем же смещением. Смещение очередной выполняемой команды всегда хранится в специальном регистре EIP (указатель инструкции, 16-битная форма IP), запись в который также приведет к тому, что далее будет исполнена какая-нибудь другая команда. На самом деле все команды передачи управления – перехода, условного перехода, цикла, вызова подпрограммы и т. п. – и осуществляют эту самую запись в CS и EIP.

Стек.

Стек – организованный специальным образом участок памяти, который используется для временного хранения переменных, передачи параметров вызываемым подпрограммам и сохранения адреса возврата при вызове процедур и прерываний. Легче всего представить стек в виде стопки листов бумаги (это одно из значений слова «stack» в английском языке) – вы можете класть и забирать листы только с вершины стопки. Поэтому, если записать в стек числа 1, 2, 3, то при чтении они окажутся в обратном порядке – 3, 2, 1. Стек располагается в сегменте памяти, описываемом регистром SS, и текущее смещение вершины стека отражено в регистре ESP, причем во время записи значение этого смещения уменьшается, то есть он «растет вниз» от максимально возможного адреса. Такое расположение стека «вверх ногами» может быть необходимым, к примеру, в бессегментной модели памяти, когда все сегменты, включая сегменты стека и кода, занимают одну и туже область – память целиком. Тогда программа исполняется в нижней области памяти, в области малых адресов, и EIP растет, а стек располагается в верхней области памяти, и ESP уменьшается. При вызове подпрограммы параметры в большинстве случаев помешают в стек, а в EBP записывают текущее значение ESP. Если подпрограмма использует стек для хранения локальных переменных, ESP изменится, но EBP можно будет использовать для того, чтобы считывать значения параметров напрямую из стека (их смещения запишутся как EBP + номер параметра).


Регистр флагов.

Еще один важный регистр, использующийся при выполнении большинства команд, - регистр флагов. Его младшие 16 бит, представлявшие собой весь этот регистр до процессора 80386, называются FLAGS. В E FLAGS каждый бит является флагом, то есть устанавливается в 1 при определенных условиях или установка его в 1 изменяет поведение процессора. Все флаги, расположенные в старшем слове регистра, имеют отношение к управлению защищенным режимом, поэтому будем рассматривать только регистр FLAGS.


  • CF – флаг переноса. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос старшего бита или если требуется заем (при вычитании), в противном случае – в 0. Например, после сложения слова 0FFFFh и 1, если регистр, в который надо поместить результат, - слово, в него будет записано 0000h и флаг CF=1.
  • PF – флаг четности. Устанавливается в 1, если младший байт результата предыдущей команды содержит четное число битов, равных 1, и в 0, если нечетное. Это не тоже самое, что делимость на два. Число делится на 2 без остатка, если его самый младший бит равен нулю, и не делится, когда он равен 1.
  • AF – флаг полупереноса или вспомогательного переноса. Устанавливается в 1, если в результате предыдущей операции произошел перенос (или заем) из третьего бита в четвертый. Этот флаг используется автоматически командами двоично-десятичной коррекции.
  • ZF – флаг нуля. Устанавливается в 1, если результат предыдущей команды – ноль.
  • SF – флаг знака. Он всегда равен старшему биту результата.
  • TF – флаг ловушки. Он был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его в 1 приводит к тому, что после выполнения каждой программной команды управление временно передается отладчику (вызывается прерывание 1 – описание команды INT).
  • IF – флаг прерываний. Сброс этого флага приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств (описание команды INT). Обычно его сбрасывают на короткое время для выполнения критических участков кода.
  • DF – флаг направления. Он контролирует поведения команд обработки строк: когда он установлен в 1, строки обрабатываются в сторону уменьшения адресов, когда DF=0 – наоборот.
  • OF – флаг переполнения. Он устанавливается в 1, если результат предыдущей арифметической операции над числами со знаком выходит за допустимые для них пределы. Например, если при сложении двух положительных чисел получается число со старшим битом, равным единице, то есть отрицательное, и наоборот.

Флаги IOPL (уровень привилегий ввода-вывода) и NT (вложенная задача) применяются в защищенном режиме.

7. Режим адресации, в котором операнд задается в команде явно?

А. регистровая адресация

Б. непосредственная адресация

В. прямая адресация

Г. косвенная адресация

8. Режим адресации, в котором операнд является содержимым регистра процессора; в команде задается адрес регистра?

А. непосредственная адресация

Б. прямая адресация

В. косвенная адресация

Г. регистровая адресация

9. Режим адресации, в котором операнд хранится в памяти, а его адрес в памяти задается непосредственно в команде?

А. прямая адресация

Б. непосредственная адресация

В. косвенная адресация

Г. регистровая адресация

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

А. непосредственная адресация

Б. регистровая адресация

В. косвенная адресация

Г. прямая адресация

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

А. непосредственная адресация

Б. косвенная адресация

В. прямая адресация

Г. индексная адресация

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

А. индексная адресация

Б. прямая адресация

В. относительная адресация

Г. непосредственная адресация

13. Сигналы управления функционированием операционного устройства и устройства сопряжения с шиной МП КР1810 формирует .

А. очередь команд

Б. регистр признаков

В. устройство управления

14. Разрядность МП КР1810 ?

15. Для чего предназначен блок регистров очереди команд МП КР1810?

А. для хранения признаков

Б. для накопления команд объемом до 6 байт

В. для хранения адреса

Г. фиксация информации о значениях координат операнда

16. Какие элементы входят в состав МПС?

А. центральный процессор

В. подсистема ввода-вывода

Г. все выше перечисленное

17. Напряжение питания микропроцессора?

18. Сумматор – это…

А. устройство обеспечивающее накопление команд объемом в 6-байт

Б. устройство которое хранит смещение очередной команды

В. устройство осуществляющее суммирование двоичных чисел по модулю два

Г. устройство выполняющее арифметические и логические операции

А. содержит адрес команды

Б. содержит адрес ячейки памяти

В. устройство осуществляющее суммирование двоичных чисел по модулю два

Г. выполняющее арифметические и логические операции

20. Сегментные регистры (ES,SS,DS,CS) предназначены…?

А. для хранения смещения очередной команды

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

В. для накопление команд объемом в 6-байт

Г. для хранения признаков

21. Регистр SS содержит…?

А. номер сегмента памяти (сегмента кода), в котором располагается текущая машинная инструкция

Б. номер сегмента памяти (сегмента данных), в котором располагаются данные

В. номер сегмента стека

Г. смещения очередной команды.

22. Регистр CS содержит…?

А. номер сегмента памяти (сегмента кода), в котором располагается текущая машинная инструкция

Б. номер сегмента памяти (сегмента данных), в котором располагаются данные

В. номер сегмента стека

Г. смещения очередной команды

23. Регистр DS содержит…?

А. номер сегмента памяти (сегмента кода), в котором располагается текущая машинная инструкция

Б. номер сегмента памяти (сегмента данных), в котором располагаются данные

В. номер сегмента стека

Г. смещения очередной

24. Регистр ES - это…?

А. регистр признаков

Б. регистр указатель команд

В. регистр для накопления команд объемом до 6 байт

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

25. Адресное пространство МП К1810 равно…?

26. Какую схему адресации использует МП К1810?

27. В блок РОН входят…?

А. очередь команд

Б. регистр признаков

Г. 4-сегментных регистра

28. С какой частотой поступает синхросигнал на вход СС?

29. Какого способа адресации не существует?

30. Микропроцессор К1810 использует…?

А. 16-разрядную адресацию памяти

Б. 20-разрядную адресацию памяти

Г. 10-разрядную адресацию памяти

31. CS содержит начальный адресс…?

А. сегмента программы

Б. сегмента стека

В. сегмента данных

Г. сегмента дополнительных данных

32. SS содержит начальный адресс…?

А. сегмента программы

Б. сегмента стека

В. сегмента данных

Г. сегмента дополнительных данных

33. DS содержит начальный адресс…?

А. сегмента программы

Б. сегмента стека

В. сегмента данных

Г. сегмента дополнительных данных

34. ES содержит начальный адресс…?

А. сегмента программы

Б. сегмента стека

В. сегмента данных

Г. сегмента дополнительных данных

35. При всех операциях с обращением к памяти содержимое сегментных регистров автоматически суммируется…?

А. с одержимым АЛУ

В. с исполнительным адресом

Г. ни с чем не сумируется

36. В МП К1810 могут выполнятся арифметические операции над…?

Б. 8 и 16-разрядными числами

В. 16-разрядными числами

Г. всеми существующими числами

37. Регистр выполняющий функции аккумулятора; с ним связаны операции умножения, деления, преобразования и десятичной коррекции?

38. Этот регистр используется как источник базового адреса и как сумматор в арифметических операциях ?

39. Этот регистр используется в качестве счетчика в командах сдвигов и зацикливания, а также при операциях с цепочками байт?

40. Сигналы предназначенные для управления режимом работы блоков памяти и УВВ

А. чтение, запись и стирание

Б. стирание и запись

В. чтение и стирание

Г. чтение и запись

41. В каких двух режимах может работать МП К1810?

А. чтения и записи

Б. минимальный и максимальный

В. прерывания и прямого доступа к памяти

Г. проверки и готовности

42. Эффективное программно-аппаратурное средство для сохранения и возврата данных при контекстном переключении и осуществления вложенных прерываний?

А. очередь команд

Б. регистр признаков

Г. устройство прерывания

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

44. Какие основные элементы входят в состав МПС?

А. центральный процессор

В. подсистема ввода-вывода

Г. все выше перечисленное

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

А. операционное устройство

Б. устройство сопряжения с шиной

В. устройство управления

Г. устройство формирования команд

46. Устройство извлекающее команды из очереди и реализующее предписанные командами операции в 16-разрядном АЛУ…?

А. операционное устройство

Б. устройство сопряжения с шиной

В. устройство управления

Г. устройство формирования команд

47. Прерывания которые управляются командами программы и имеют целью дать программисту возможность гибкого управления вычислительным процессом называются?

Б. гибкие прерывания

Г. негибкие прерывания

48. Прерывания, которые аппаратурно реализованы вне программного контроля и не управляются программистом называются?

Б. гибкие прерывания

49. Какого вида обмена данными в МП К1810 не существует?

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

Б. обмен данными по сигналам прерывания работы микропроцессора от внешних устройств

В. обмен данными в канале прямого доступа в память

Г. обмен данными по синхросигналу

50. В состав УСШ не входит?

Б. очередь команд

В. регистр признаков

Г. сегментные регистры и счетчик команд

51. В состав операционного устройства не входмт?

В. регистр признаков

52. При формировании исполнительного адреса содержимое сегментных регистров суммируется…?

А. с содержимым АЛУ

В. с содержимым регистра признаков

Г. с содержимым сегментных регистров

А. выполняет функции аккумулятора; с ним связаны операции умножения, деления, преобразования и десятичной коррекции

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

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

Г. используется для хранения номера сегмента памяти (сегмента кода), в котором располагается текущая машинная инструкция

А. выполняет функции аккумулятора; с ним связаны операции умножения, деления, преобразования и десятичной коррекции

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

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

Г. используется для хранения номера сегмента памяти (сегмента кода), в котором располагается текущая машинная инструкция

А. выполняет функции аккумулятора; с ним связаны операции умножения, деления, преобразования и десятичной коррекции

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

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

Г. используется для хранения номера сегмента памяти (сегмента кода), в котором располагается текущая машинная инструкция

56. Регистр IP это…?

А. сегмент стека

Б. сегмент данных

Г. счетчик команд

57. Регистр которых хранит смещение очередной команды переданной для выполнения?

Регистр процессора — сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или содержащая данные, необходимые для работы процессора — смещения базовых таблиц, уровни доступа и т. д. (специальные регистры).

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

Доступ к значениям, хранящимся в регистрах как правило в несколько раз быстрее, чем доступ к ячейкам оперативной памяти (даже если кеш-память содержит нужные данные), но объём оперативной памяти намного превосходит суммарный объём регистров (объём среднего модуля оперативной памяти сегодня составляет 1 Гб — 4 Гб [1] , суммарная «ёмкость» регистров общего назначения/данных для процессора 16 битов * 4 = 64 бита (8 байт)).

Основные регистры процессора, совместимого с Intel 386

IP (англ. Instruction Pointer ) — регистр, обозначающий смещение следующей команды относительно кодового сегмента.

IP — 16-битный (младшая часть EIP)

EIP — 32-битный аналог

Сегментные регистры — Регистры указывающие на сегменты.

CS — указатель на кодовый сегмент. Связка CS:IP указывает на адрес в памяти следующей команды.

Регистры данных — служат для хранения промежуточных вычислений.

RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 — R15 — 64-битные

EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP — 32-битные (extended AX)

AX, BX, CX, DX — 16-битные

например, AH - high AX - старшая половинка 8 бит

AL - low AX - младшая половинка 8 бит

RAX RBX RCX RDX
—— EAX —— EBX —— ECX —— EDX
—— —— AX —— —— BX —— —— CX —— —— DX
—— —— AH AL —— —— BH BL —— —— CH CL —— —— DH DL

Регистр флагов EFLAGS — содержит текущее состояние процессора.


Регистром называется функциональный узел, осуществляющий приём, хранение и передачу информации. Регистры состоят из группы триггеров, обычно D. По типу приёма и выдачи информации различают 2 типа регистров:

  • С последовательным приёмом и выдачей информации — сдвиговые регистры.
  • С параллельным приёмом и выдачей информации — параллельные регистры.

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

По назначение регистры различаются на:

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

См. также

Примечания

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое "Регистры процессора" в других словарях:

Регистр (цифровая техника) — У этого термина существуют и другие значения, см. Регистр. 4 х разрядный сдвиговый регистр, преобразователь последовательного кода в параллельный и обратно Регистр последовательное или параллельное … Википедия

7. В параллельном регистре с приходом каждого тактового импульса информация на выходах поразрядно сдвигается в направлении от выхода QD к выходу QА. Как называют такой регистр:
а) реверсивный регистр
б) регистр хранения
в) регистр прямого сдвига +

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

9. Разрешено ли последовательное перемещение сигналов в триггерной подсистеме параллельного регистра 74НС194_4V во время записи информации:
а) да
б) отчасти
в) нет +

10. Один из видов регистра:
а) второстепенный
б) последовательный +
в) главный

11. Укажите функцию, которую в общем случае может выполнять регистр:
а) обнуление (очистку) хранимой информации, запись входной информации в последовательном или в параллельном коде +
б) преобразование десятичных чисел в двоичные или в двоично-десятичные
в) сравнение двух бинарных чисел одинаковой разрядности с целью определения их равенства или неравенства

12. Укажите функцию, которую в общем случае может выполнять регистр:
а) сравнение двух бинарных чисел одинаковой разрядности с целью определения их равенства или неравенства
б) преобразование информации путём её сдвига под воздействием тактовых импульсов +
в) суммирование по модулю 2 всех разрядов бинарных чисел с целью выяснения чётности числа

13. Укажите функцию, которую в общем случае может выполнять регистр:
а) хранение информации, её сдвиг вправо и влево, выдачу хранимой информации в последовательном или в параллельном коде +
б) преобразование десятичных чисел в двоичные или в двоично-десятичные
в) суммирование по модулю 2 всех разрядов бинарных чисел с целью выяснения чётности числа

14. Чем отличается динамическое управление регистрами от статического управления:
а) у регистров с динамическим управлением сигналы на информационных входах должны оставаться неизменными на всём интервале действия активного логического сигнала синхронизации (С = 1)
б) принципиальных отличий нет: сигналы, поступающие на информационные входы всех модификаций регистров, действуют в момент их поступления
в) при динамическом управлении запоминание сигналов, действующих на информационных входах регистра, происходит во входных ёмкостях МДП-транзисторов в момент изменения значения сигнала на входе синхронизации, а в статических регистрах, построенных, например на RS-триггерах, сигналы действуют в момент их поступления на информационные входы +

15. Укажите, сколько входов имеет последовательный регистр с динамическим управлением:
а) три: один информационный, вход для тактовых импульсов и установочный вход +
б) два: один информационный вход и вход для тактовых импульсов (импульсов сдвига)
в) четыре: два информационных входа, вход для тактовых импульсов и установочный вход

16. Укажите, в какой разряд вводится информация последовательного регистра 74НС194_4V при S0 = 1, S1 = 0 на управляющих входах и сигналах SR = 1 и CLR= 1:
а) в разряд С
б) в разряд А +
в) в разряд В

17. Регистр представляет собой упорядоченный набор:
а) майнеров
б) драггеров
в) триггеров +

18. Основой построения регистров является:
а) F-триггеры
б) D-триггеры +
в) T-триггеры

19. Основой построения регистров является:
а) PS-триггеры
б) AS-триггеры
в) RS-триггеры +

20. Основой построения регистров является:
а) AK-триггеры
б) JK-триггеры +
в) IK-триггеры

21. Один из видов, на которые классифицируются регистры:
а) накопительные +
б) информационные
в) хранящие

22. Один из видов, на которые классифицируются регистры:
а) суммарные
б) сдвигающие или сдвиговые +
в) плюсующие

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

24. Общими для разрядов обычно являются:
а) цепи доминирования
б) цепи тактирования +
в) цепи тактики

25. Общими для разрядов обычно являются:
а) цепи влечения
б) цепи информирования
в) цепи управления +

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

27. Троичные регистры строятся на:
а) троичных триггерах +
б) кубических триггерах
в) двоичных триггерах

28. Запоминает состояние входа и выдаёт его на выход:
а) JK-триггер
б) Т-триггер
в) D-триггер +

29. Сдвигающие регистры:
а) комбинированные +
б) конверторные
в) комбинационные

30. По направлению передачи информации:
а) равнонаправленные
б) реверсивные +
в) прямонаправленные

Как уже упоминалось, внутренние регистры процессора представляют собой сверхоперативную память небольшого размера, которая предназначена для временного хранения служебной информации или данных. Количество регистров в разных процессорах может быть от 6—8 до нескольких десятков. Регистры могут быть универсальными и специализированными. Специализированные регистры, которые присутствуют в большинстве процессоров, — это регистр - счетчик команд , регистр состояния ( PSW ), регистр указателя стека. Остальные регистры процессора могут быть как универсальными, так и специализированными.

Например, в 16-разрядном процессоре Т-11 фирмы DEC было 8 регистров общего назначения (РОН) и один регистр состояния . Все регистры имели по 16 разрядов. Из регистров общего назначения один отводился под счетчик команд , другой — под указатель стека . Все остальные регистры общего назначения полностью взаимозаменяемы, то есть имеют универсальное назначение, могут хранить как данные, так и адреса (указатели), индексы и т.д. Максимально допустимый объем памяти для данного процессора составлял 64 Кбайт ( адрес памяти 16-разрядный).

В 16-разрядном процессоре MC68000 фирмы Motorola было 19 регистров: 16-разрядный регистр состояния , 32-разрядный регистр счетчика команд , 9 регистров адреса (32-разрядных) и 8 регистров данных (32-разрядных). Два регистра адреса отведены под указатели стека. Максимально допустимый объем адресуемой памяти — 16 Мбайт (внешняя шина адреса 24-разрядная). Все 8 регистров данных взаимозаменяемы. 7 регистров адреса – тоже взаимозаменяемы.

В 16-разрядном процессоре Intel 8086, который стал базовым в линии процессоров, используемых в персональных компьютерах, реализован принципиально другой подход. Каждый регистр этого процессора имеет свое особое назначение, и заменять друг друга регистры могут только частично или же не могут вообще. Остановимся на особенностях этого процессора подробнее.

Процессор 8086 имеет 14 регистров разрядностью по 16 бит . Из них четыре регистра ( AX , BX , CX , DX ) — это регистры данных, каждый из которых помимо хранения операндов и результатов операций имеет еще и свое специфическое назначение:

  • регистр AX — умножение, деление, обмен с устройствами ввода/вывода (команды ввода и вывода);
  • регистр BX — базовый регистр в вычислениях адреса;
  • регистр CX — счетчик циклов;
  • регистр DX — определение адреса ввода/вывода.

Для регистров данных существует возможность раздельного использования обоих байтов (например, для регистра AX они имеют обозначения AL – младший байт и AH — старший байт ).

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

  • регистр CS (Code Segment) соответствует сегменту команд, исполняемых в данный момент;
  • регистр DS (Data Segment) соответствует сегменту данных, с которыми работает процессор;
  • регистр ES (Extra Segment) соответствует дополнительному сегменту данных;
  • регистр SS (Stack Segment) соответствует сегменту стека.

Рис. 3.10. Сегменты команд, данных и стека в памяти.

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

Следующие пять регистров процессора ( SP — Stack Pointer , BP — Base Pointer , SI — Source Index , DI — Destination Index , IP —Instruction Pointer ) служат указателями (то есть определяют смещение в пределах сегмента). Например, счетчик команд процессора образуется парой регистров CS и IP , а указатель стека — парой регистров SP и SS . Регистры SI , DI используются в строковых операциях, то есть при последовательной обработке нескольких ячеек памяти одной командой.

Последний регистр FLAGS — это регистр состояния процессора ( PSW ). Из его 16 разрядов используются только девять (рис. 3.11): CF ( Carry Flag ) — флаг переноса при арифметических операциях, PF ( Parity Flag ) — флаг четности результата, AF ( Auxiliary Flag ) — флаг дополнительного переноса, ZF (Zero Flag ) — флаг нулевого результата, SF ( Sign Flag ) — флаг знака (совпадает со старшим битом результата), TF ( Trap Flag ) — флаг пошагового режима (используется при отладке), IF (Interrupt-enable Flag ) — флаг разрешения аппаратных прерываний, DF ( Direction Flag ) — флаг направления при строковых операциях, OF ( Overflow Flag ) — флаг переполнения.

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

Во многих процессорах выделяется специальный регистр , называемый аккумулятором (то есть накопителем). При этом, как правило, только этот регистр -аккумулятор может участвовать во всех операциях, только через него может производиться взаимодействие с устройствами ввода/вывода. Иногда в него же помещается результат любой выполненной команды (в этом случае говорят даже об "аккумуляторной" архитектуре процессора). Например, в процессоре 8086 регистр данных АХ можно считать своеобразным аккумулятором, так как именно он обязательно участвует в командах умножения и деления, а также только через него можно пересылать данные в устройство ввода/вывода и из устройства ввода/вывода. Выделение специального регистра-аккумулятора упрощает структуру процессора и ускоряет пересылки кодов внутри процессора, но в некоторых случаях замедляет работу системы в целом, так как весь поток информации должен пройти через один регистр -аккумулятор. В случае, когда несколько регистров процессора полностью взаимозаменяемы, таких проблем не возникает.

Читайте также: