Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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: 430; Нарушение авторских прав |