Слайд 1Для чего нужны регистры?
Приняла: Смагулова К. К.
Выполнила: студент группы РЭТ 13-1
Муратова А. К.
Министерство образования и науки Республики Казахстан
Карагандинский Государственный Технический университет
Слайд 2Содержание
Что такое регистр?
Классификация регистров
Регистры, доступные пользователю
Регистр стека
Управляющие регистры процессора и
регистры состояния
Назначение регистров
Заключение
Список использованной литературы
Слайд 3Что такое регистр?
Регистры процессора - это ячейки сверхбыстрой оперативной памяти, которые
предназначены для временного хранения промежуточных данных. Различные регистры содержат информацию в различном виде: адреса и указатели сегментов памяти или системных таблиц, индексы элементов массива и пр. В процессоре находится большое количество регистров, которые можно разделить на несколько основных групп: аккумуляторы, флаги, указатели, индексные, сегментные и регистры управления. Любой регистр процессора это цифровая электронная схема, содержащая последовательность двоичных чисел различной разрядности (16, 32 или 64) и результаты выполнения преобразований между ними. По типу приема и передачи информации могут быть последовательными (сдвиговыми) и параллельными.
Слайд 4Классификация регистров
В процессоре имеется набор регистров, представляющих собой область памяти быстрого
доступа, но намного меньшей емкости, чем основная память. Регистры процессора по функции делятся на две группы:
Регистры, доступные пользователю.
Регистры управления и регистры состояния.
Слайд 5Регистры, доступные пользователю
Эти регистры позволяют программисту сократить число обращений к
основной памяти, оптимизируя использование регистров с помощью машинного языка или ассемблера. В состав языков высокого уровня входят оптимизирующие компиляторы, построенные на алгоритмах, которые, в частности, позволяют определить, какие переменные следует заносить в регистры, а какие — в основную память. Некоторые языки высокого уровня, такие, как С, предоставляют программисту возможность предложить компилятору хранить те или иные данные в регистрах.
К доступным регистрам пользователь может обращаться с помощью команд машинного языка. К этим регистрам, как правило, имеют доступ все программы — как приложения, так и системные. Обычно среди доступных регистров есть регистры данных, адресные регистры и регистры кода условия.
Слайд 6Регистры данных. Программист может применять их в различных целях. В ряде
случаев они имеют общее назначение и могут использоваться любой машинной командой для операций с данными. Однако зачастую при этом накладываются определенные ограничения. Например, некоторые регистры предназначены для операций над числами с плавающей точкой, в то время как остальные — для хранения целых чисел.
Адресные регистры. В них заносятся адреса команд и данных в основной памяти; в этих регистрах может быть записана только часть адреса, использующаяся при вычислении полного или эффективного адреса. Рассмотрим следующие примеры.
Индексный регистр. Используется в обычном режиме адресации, когда адрес получается в результате сложения содержимого индексного и базового регистра.
Слайд 7Сегментный регистр. При сегментной адресации память разделяется на блоки (сегменты), состоящие
из различного количества машинных слов. Адрес ячейки памяти складывается из адреса сегмента и смещения относительно начала сегмента. Имея представление о таком режиме адресации, легче будет усвоить материал, изложенный в главе 7, "Управление памятью", в которой обсуждаются методы управления памятью. При этом режиме адресации базовый адрес сегмента (его начало) хранится в одном из регистров. Таких регистров может быть несколько; например, один — для операционной системы (т.е. использующийся при выполнении процессором кода операционной системы), другие — для исполняющихся в данный момент приложений.
Слайд 8Регистр стека
Регистр стека. При стековой адресации1 выделяется специальный регистр, в котором
размещен указатель на вершину стека. Этот режим адресации позволяет использовать некоторые команды, в которых отсутствует поле адреса, например push и pop. В некоторых машинах вызов процедуры или подпрограммы приводит к автоматическому сохранению содержимого всех доступных пользователю регистров, чтобы по возвращении их можно было восстановить. Процедура сохранения и восстановления, являющаяся составной частью команды вызова и возврата, выполняется процессором. Такой подход позволяет процедурам использовать регистры независимо друг от друга.
Слайд 9Управляющие регистры процессора и регистры состояния
Используются в процессоре для контроля над
выполняемыми операциями; с их помощью привилегированные программы операционной системы могут контролировать ход выполнения других программ.
Для разделения регистров на эти две категории не существует определенного признака. Конечно, у разных типов машин организация регистров отличается; для их классификации также используется различная терминология. Здесь приводится довольно полный список типов регистров и дается их краткое описание. Кроме ранее упомянутых регистров, MAR, MBR, I/OAR и I/OBR, важными для выполнения команд являются следующие.
Слайд 10Программный счетчик (program counter — PC). Содержит адрес команды, которая должна быть
выбрана из памяти.
Регистр команд (instruction register — IR). Содержит последнюю выбранную из памяти команду.
В состав всех процессоров входит также регистр (или набор регистров), известный под названием регистра слова состояния программы (program status word — PSW). В нем, как правило, содержатся коды условий и другая информация о состоянии, например бит разрешения/запрещения прерываний или бит режима системный/пользовательский.
Слайд 11На устройство и организацию управляющих регистров и регистров состояния влияют несколько
факторов. Одним из них является поддержка операционной системы. Различные виды управляющей информации используются операционной системой по-разному. Если разработчик процессора имеет ясное представление об операционной системе, которая будет работать с этим процессором, он сможет так спланировать организацию регистров, чтобы обеспечить аппаратную поддержку ряда возможностей, таких, как защита памяти или переключение пользовательских программ.
Слайд 12Назначения регистров
Начиная с модели 80386 процессоры Intel предоставляют 16 основных регистров
для пользовательских программ и ещё 11 регистров для работы с мультимедийными приложениями (MMX) и числами с плавающей точкой (FPU/NPX). Все команды так или иначе изменяют содержимое регистров.
Регистры EAX, EBX, ECX, EDX – это регистры общего назначения. Они имеют определённое назначение (так уж сложилось исторически), однако в них можно хранить любую информацию.
Регистры EBP, ESP, ESI, EDI – это также регистры общего назначения. Они имеют уже более конкретное назначение. В них также можно хранить пользовательские данные, но делать это нужно уже более осторожно, чтобы не получить «неожиданный» результат.
Слайд 13Таблица 1 - Основные регистры процессора
Слайд 14В целом, каждый регистр процессора по определению служит определённой цели, и
используя регистры по назначению, по-видимому, можно улучшить программу, хотя не факт. Вот для чего нужны данные регистры:
1) eax – аккумулятор (для хранения результата действий);
2) ebx – регистр базы;
3) ecx – используется в качестве счётчика (в циклах);
4) edx – регистр данных (подобно eax);
5) esi – индекс источника;
6) edi – индекс приёмника;
7) ebp – регистр базы (используется компилятором);
8) esp – регистр стека (используется компилятором).
Слайд 15Заключение
Регистр – это определенный участок памяти внутри самого процессора, от 8
до 32 бит длиной, который используется для промежуточного хранения информации, обрабатываемой процессором. Некоторые регистры содержат только определенную информацию.
Регистры общего назначения – EAX, EBX, ECX, EDX. Они 32 битные и делятся еще на две части: нижние, из которых AX,BX,CD,DX -16 битные и делятся еще на два 8 битных регистра. Так AX делится на AH и AL, DX на DH и DL и т. Д.
Слайд 16Список использованной литературы
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 экз.