Главная Случайная страница


Полезное:

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

Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






АДРЕСАЦИЯ ДАННЫХ





 

Теперь, когда мы знаем практически все об операционной части команды, можно заняться адресной. Посмотрим, какими способами могут представляться операнды ОП1 иОП2.

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

Старшая «половинка» модификатора операнда, соответствующая типу адресации, может содержать четыре неповторяющиеся двоичные комбинации:

00 - регистровый метод адресации: операнд является содержимым указанного регистра;

01 - метод косвенной адресации: операндом является содержимое ячейки ОЗУ, адрес которой задан в указанном регистре;

10 - резерв; в будущей версии здесь будет реализован индексный метод адресации;

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

Рассмотрим перечисленные способы адресации подробнее.

Наиболее простым является регистровый метод, который мы фактически уже использовали в примерах предыдущего раздела. Учитывая, что этому методу соответствуют нулевые значения старших битов, полный код операнда совпадает с номером регистра: двоичная комбинация 0000 соответствует R0, 0001 - R1 и т.д.

В качестве данных для операции используется информация, содержащаяся в указанном регистре. Например, если Rl = 3, а R2 = 5, то в результате выполнения команды

0212:R2+R1=>R2

получится R2 = 8.

При косвенной адресации код операнда выглядит несколько сложнее: косвенное обращение по регистру R0 имеет вид 0100 (т.е. 4), по Rl - 0101 (5) и т.д. Содержимое указанного регистра при этом служит не операндом, а его адресом в ОЗУ. Рассмотрим команду

0263: R3 + (R2) => R3

где скобки у R2 символизируют косвенную адресацию. Пусть содержимое R2 в данный момент равно 30, а R3 = 6. Примем также, что в ячейке памяти с адресом 30 хранится число 10. Тогда процессор «Е97», выполняя команду, к имеющемуся в R3 значению 6 прибавит число из ячейки 30, на которую указывает R2, и результат операции - 16 - занесет в R3.



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

11 00 - резерв;

11 01 - операндом служит константа, входящая в команду;

11 10 - операнд извлекается из ячейки ОЗУ, адрес которой входит в команду;

1111-резерв.

Итак, в «Е97» существует два метода адресации по PC, соответствующих шест-надцатеричным кодам D и Е в качестве операнда. Изучим их на примерах. Команда, состоящая из двух слов

02D1

выполняет операцию Rl + 20 => Rl следующим образом: к текущему значению Rl прибавляется извлеченное из команды число 20 и результат помещается в Rl. Если первоначальное значение Rl было, скажем, F0, то в результате операции в Rl запишется 110.

Рассмотрим еще одну команду с адресацией по PC:

021Е

выполняющую операцию (20) + Rl => (20) так: к числу, хранящемуся в ячейке памяти 20, прибавляется значение Rl. В случае, когда Rl = F0, a (20) = 40, ответ будет: (20)= 130.

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

Во всех приведенных в данном пункте примерах МОД = 0 и, следовательно, не оказывает влияния на расшифровку и выполнение операции. Если же он имеет ненулевое значение, необходимо дополнительно учитывать и этот фактор.

Модификатор состоит из четырех битов, причем два старших отвечают за «переключением бант/слово, а два младших - за особый способ представления данных, называемый «короткой константой». Многие команды оперируют с небольшими константами, значения которых не превышает по модулю 15. Такие констангы вполне «уместятся» в четырех отведенных под ОП1 битах. Для реализации такой возможности в «Е97» используются два младших бита модификатора -0-й и 1-й. Признаком, по которому процессор распознает «короткую константу», служит наличие единицы в первом разряде модификатора. В этом случае содержимое ОП1 рассматривается как двоичное число, а 0-й бит модификатора служит его знак ом,например:

 

25A3:R3* 10=>R3

или

3653:R3/(-5)=>R3

 

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

Наличие операций с «короткой константой» позволяет упростить систему команд процессора. Например, в программах часто требуются команды, увеличивающие или уменьшающие данные на единицу. Любой процессор имеет для этой важной ситуации специализированные команды, обозначаемые чаще всего INC и DEC. В «Е97» эти команды получаются как частный случай операций с «короткой константой».



Во всех предыдущих рассуждениях мы молчаливо полагали, что процессор работает только с 16-разрядными словами. Но это не всегда так - иногда требуется выполнить те или иные действия над байтами, например, при обработке текста. Старшие биты модификатора как раз и предусмотрены для оказания режима байт/слово: 3-й бит соответствует ОП1, а 2-й - ОП2. Если соответствующий бит модификатора установлен в единицу, то процессор оперирует с байтом, иначе - со словом. Как всегда, наличие двух битов порождает четыре варианта:

 

00 ОП1-слово, ОП2-слово;

01 ОП1-слово, ОП2-байт;

10 ОП 1 - байт, ОП2 - слово;

11 ОП1-байт, ОП2-байт.

 

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

 






Date: 2015-11-13; view: 80; Нарушение авторских прав

mydocx.ru - 2015-2018 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию