Для чего нужны регистры?


The Presentation inside:

Slide 0

Для чего нужны регистры? Приняла: Смагулова К. К. Выполнила: студент группы РЭТ 13-1 Муратова А. К. Министерство образования и науки Республики Казахстан Карагандинский Государственный Технический университет


Slide 1

Содержание Что такое регистр? Классификация регистров Регистры, доступные пользователю Регистр стека Управляющие регистры процессора и регистры состояния Назначение регистров Заключение Список использованной литературы


Slide 2

Что такое регистр? Регистры процессора - это ячейки сверхбыстрой оперативной памяти, которые предназначены для временного хранения промежуточных данных. Различные регистры содержат информацию в различном виде: адреса и указатели сегментов памяти или системных таблиц, индексы элементов массива и пр. В процессоре находится большое количество регистров, которые можно разделить на несколько основных групп: аккумуляторы, флаги, указатели, индексные, сегментные и регистры управления. Любой регистр процессора это цифровая электронная схема, содержащая последовательность двоичных чисел различной разрядности (16, 32 или 64) и результаты выполнения преобразований между ними. По типу приема и передачи информации могут быть последовательными (сдвиговыми) и параллельными.


Slide 3

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


Slide 4

Регистры, доступные пользователю Эти регистры позволяют программисту сократить число обращений к основной памяти, оптимизируя использование регистров с помощью машинного языка или ассемблера. В состав языков высокого уровня входят оптимизирующие компиляторы, построенные на алгоритмах, которые, в частности, позволяют определить, какие переменные следует заносить в регистры, а какие — в основную память. Некоторые языки высокого уровня, такие, как С, предоставляют программисту возможность предложить компилятору хранить те или иные данные в регистрах. К доступным регистрам пользователь может обращаться с помощью команд машинного языка. К этим регистрам, как правило, имеют доступ все программы — как приложения, так и системные. Обычно среди доступных регистров есть регистры данных, адресные регистры и регистры кода условия.


Slide 5

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


Slide 6

Сегментный регистр. При сегментной адресации память разделяется на блоки (сегменты), состоящие из различного количества машинных слов. Адрес ячейки памяти складывается из адреса сегмента и смещения относительно начала сегмента. Имея представление о таком режиме адресации, легче будет усвоить материал, изложенный в главе 7, "Управление памятью", в которой обсуждаются методы управления памятью. При этом режиме адресации базовый адрес сегмента (его начало) хранится в одном из регистров. Таких регистров может быть несколько; например, один — для операционной системы (т.е. использующийся при выполнении процессором кода операционной системы), другие — для исполняющихся в данный момент приложений.


Slide 7

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


Slide 8

Управляющие регистры процессора и регистры состояния Используются в процессоре для контроля над выполняемыми операциями; с их помощью привилегированные программы операционной системы могут контролировать ход выполнения других программ. Для разделения регистров на эти две категории не существует определенного признака. Конечно, у разных типов машин организация регистров отличается; для их классификации также используется различная терминология. Здесь приводится довольно полный список типов регистров и дается их краткое описание. Кроме ранее упомянутых регистров, MAR, MBR, I/OAR и I/OBR, важными для выполнения команд являются следующие.


Slide 9

Программный счетчик (program counter — PC). Содержит адрес команды, которая должна быть выбрана из памяти. Регистр команд (instruction register — IR). Содержит последнюю выбранную из памяти команду. В состав всех процессоров входит также регистр (или набор регистров), известный под названием регистра слова состояния программы (program status word — PSW). В нем, как правило, содержатся коды условий и другая информация о состоянии, например бит разрешения/запрещения прерываний или бит режима системный/пользовательский.


Slide 10

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


Slide 11

Назначения регистров Начиная с модели 80386 процессоры Intel предоставляют 16 основных регистров для пользовательских программ и ещё 11 регистров для работы с мультимедийными приложениями (MMX) и числами с плавающей точкой (FPU/NPX). Все команды так или иначе изменяют содержимое регистров. Регистры EAX, EBX, ECX, EDX – это регистры общего назначения. Они имеют определённое назначение (так уж сложилось исторически), однако в них можно хранить любую информацию. Регистры EBP, ESP, ESI, EDI – это также регистры общего назначения. Они имеют уже более конкретное назначение. В них также можно хранить пользовательские данные, но делать это нужно уже более осторожно, чтобы не получить «неожиданный» результат.


Slide 12

Таблица 1 - Основные регистры процессора


Slide 13

В целом, каждый регистр процессора по определению служит определённой цели, и используя регистры по назначению, по-видимому, можно улучшить программу, хотя не факт. Вот для чего нужны данные регистры:  1) eax – аккумулятор (для хранения результата действий);  2) ebx – регистр базы; 3) ecx – используется в качестве счётчика (в циклах); 4) edx – регистр данных (подобно eax); 5) esi – индекс источника; 6) edi – индекс приёмника;  7) ebp – регистр базы (используется компилятором); 8) esp – регистр стека (используется компилятором).


Slide 14

Заключение Регистр – это определенный участок памяти внутри самого процессора, от 8 до 32 бит длиной, который используется для промежуточного хранения информации, обрабатываемой процессором. Некоторые регистры содержат только определенную информацию. Регистры общего назначения – EAX, EBX, ECX, EDX. Они 32 битные и делятся еще на две части: нижние, из которых AX,BX,CD,DX -16 битные и делятся еще на два 8 битных регистра. Так AX делится на AH и AL, DX на DH и DL и т. Д.


Slide 15

Список использованной литературы Barbara J. Burian. Программирование на языке ассемблера системы IBM/370 упрощённый подход = A simple approach to S/370 assembly language programming. — New York: Prentice-Hall, Inc, 2007. Погорелый С. Д., Слободянюк Т. Ф. Программное обеспечение микропроцессорных систем. Справочник. — 2-е, переработанное и дополненное. — К: Техника, 1989. — С. 7, 48-51. — 301 с. — (Справочник специалиста). — 50 000 экз.


×

HTML:





Ссылка: