Главная » Просмотр файлов » К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003)

К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 31

Файл №1114649 К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003)) 31 страницаК. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649) страница 312019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 31)

3.1. Регистры, доступ к памяти и пересылка данных 133 Таблица 3.1. Индексные режимы адресации процессора АЯМ Синтаксис языка ассемблера Формирование адреса Адресация С непосредственно заданным смещением ЕА-[Кп) е смещение ЕА-[Вп] ч смещение; Кл +- [Вл] е смещение ЕА=[Вл); Кп+- [Кп] е смещение [Кл, йсмещение] [Кп, йсмещение]! Преиндексация Преиндексация с обратной записью Постиндексация [Кл], помещение Со значением смещения в регистре Вт Преиндексация ЕА-[Кл] ~ [Кгл] со сдвигом ЕА-[Кл] я [Кт] со сдвигом; Вл +- [Вл] х [Кт] со сдвигом ЕА-[Вп]; Кп +- [Кп] й [Кт] со сдвигом ЕА-Адрес -[РС] е смещение [Кп, й Вт, сдвиг! [Вл, Х Кт, сдвиг]! Преиндексзция с обратной записью Постиндексация [Вп], Я Вгл, сдвиг Адрес Относительная (Пренндексация с непосредственно заданным смещением) Во всех трех режимах адресации смещение может быть задано непосредственно в команде как значение из диапазона ч-4095.

В качестве альтернативы это можно сделать в регистре Вгл, указав знак (направление) смещения, в виде префикса ч-, перед именем регистра. Например, команда [.[)К КО, [К1, — К2]! выполняет операцию КО +- ЦК1) — [К2)) Исполнительный адрес операнда этой команды, [К1) — [К2], загружается в регистр К1, поскольку восклицательный знак обозначает обратную запись. Когда смещение задается в регистре, оно умножается на степень двойки путем сдвига.

Сдвиг в языке ассемблера задается при помощи значения 1.5[. (сдвиг влево) илк 15К (сдвиг вправо). Данное значение и указанная после него величина смещения следуют за именем регистра, Кгл, как показано в табл. 3.1. Величина смещения ЕА — исполнительный адрес (енеспте аббгезз). Смещение — число со знаком, заданное в команде. Сдвиг направление В целое число, гле направление принимает значение 151 (слвиг влево) или !.БВ (сквиг вправо), з целое число — зто 5-битовое беззнаковое число, определяющее величнну сдвига вхм — значение смещения, хранящееся в регистре Кеь которое может быть прибавлено илн отнято от содержимого базового регистра Вл. 134 Глава 3. Системы команд процессоров АЯМ, Мо1ою!а и!п1е! задается как целое число из диапазона от 0 до 31. Например, перед использованием в качестве смещения содержимое регистра Е2 в приведенном выше примере может быть умножено на 16 следующим образом: ЕПК КО, ~К1, -Е2,13Е №41! Данная команда выполнит такую операцию: КО+- П٠— 16 ° (йгЦ а затем загрузит исполнительный адрес в регистр Е1.

В качестве базового регистра Вл может использоваться счетчик команд, РС. Этот случай соответствует относительному режиму адресации, описанному в разделе 2.5. Ассемблер определяет непосредственно заданное смещение как расстояние со знаком между адресом операнда и содержимым обновленного регистра РС. Если исполнительный адрес вычисляется во время выполнения программы, в регистр РС записывается адрес слова, расположенного на два машинных слова дальше текущей команды (в которой указывается относительный режим адресации).

Связано это с конвейерным выполнением команд, о котором рассказывается в главе 8. На рис. 3.3, а приведен пример относительного режима адресации. Адрес операнда, символически заданный в команде как 1ТЕМ, равен 1060. Архитектура АЕМ не предусматривает абсолютной адресации. Поэтому, когда в языке ассемблера адрес задается так, как показано на этом рисунке, всегда используется относительная адресация. Она реализуется как преиндексная адресация с непосредственно заданным смещением и с указанием регистра РС в качестве базового. Как следует из данного рисунка, вычисленное ассемблером смещение равно 52, поскольку в момент его определения в процессе выполнения программы обновленный регистр РС содержит значение 1008, а исполнительный адрес, который должен быть сгенерирован, равен 1060 - 1008 + 52.

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

На рис. 3.3, 6 дан пример преиндексного режима адресации со смещением, указанным в регистре Кб, и базовым значением, указанным в регистре К5. Команда 3гоге (БТЕ) сохраняет содержимое регистра ЯЗ в слове памяти по адресу 1200. Представленные на рис. 3.4 примеры наглядно демонстрируют, для чего нужна обратная запись в постиндексном и преиндексном режимах адресации. На рис. 3.4, а показаны первые три числа списка из 25 чисел, хранящихся в памяти начиная с адреса 100 и отстоящих на 25 слов друг от друга.

Они составляют первую строку матрицы чисел 25 х 25, располагаюшуюся в памяти по столбцам. Первый столбец первой строки матрицы хранится по адресу 1000. Числа с адресами 1100, 1200, ..., 3400 составляют первую строку матрицы, а 25 чисел с адресами 1000, 1004, 1008, ..., 1096 — ее первый столбец. 3.1. Регистры, доступ к памяти и пересылка данных 135 Адрес памяти 1000 1004 1008 Смещение = 52 1ТКМ 1060 Базовый регистр 1000 Регистр смешения Т Смещение 200 1200 Рис.

3.3. Примеры режимов адресации процессора АПЧ; относительный(а), преиндексный(б) Для доступа к последовательным числам первой строки матрицы удобнее всего воспользоваться постиндексной адресацией с обратной записью и смещением в регистре. Предположим, что базовым регистром служит гс2 и что в нем содержится значение начального адреса 1000.

Регистр К10 предназначен для хранения смещения, и в него загружается значение 25. Далее может быть выполнен программный цикл, на каждом шаге которого команда 1ЛЖ КЦК21,210,) 51 №2 136 Глава 3. Системы команд процессоров АНМ, Мо1ого)а и )п1е) Адрес памяти 1000 Т Базовый регистр 100 - 25 х 4 1100 К10 Регистр смещения 100-. 25 х4 1200 Команда ).озд; ).ВК К1,[К2),К10,).Я. Г)2 Базовый регистр (указатель стека) 2008 КО 2012 Команда проталкивания в стек: 5ТК КО,[К5,Л-4)! Рис. 3.4. Режимы адресации процессора АЯМ, з которых используется обратная запись: постиндексный (е); преиндексный (б) будет загружать в регистр К1 очередной элемент первой строки матрицы. А теперь давайте рассмотрим эту программу более подробно.

Когда команда загрузки выполняется в первый раз, исполнительный адрес )К2] равен 1000. Расположенное по данному адресу число 6 помещается в регистр К1. Далее операция обратной записи изменяет содержимое регистра К2 с 1000 на 1100, для того чтобы он указывал на следующее число, — 17. Для этого содержимое регистра смещения К10, равное 25, сдвигается на два разряда влево и результат прибавляется к содержимому регистра К2. Содержимое регистра К10 при этом не меняется. Сдвиг влево эквивалентен умножению числа 25 на 4, так что в результате генерируется смещение 100. После добавления значения смешения к содержимому регистра К2 в этот регистр записывается новый адрес — 1100.

И когда команда загрузки выполняется повторно, на второй итерации цикла, в регистр К1 записывается второе число из хранящихся в матрице, то есть -17. Третье число, 321, загружается в К1 на третьей итерации и т. д. 3.1. Регистры, доступ к памяти и пересылка данных 137 В этом примере к содержимому базового регистра добавляется сдвинутое содержимое регистра смещения. Как следует из табл. 3.1, его можно не только добавлять, но и вычитать из содержимого регистра смещения, Допускается сдвиг вправо или влево на любое количество разрядов от 0 до 31. На рис. 3.4, б приведен пример проталкивания в стек содержимого регистра КО (числа 27).

Регистр К5 используется в качестве указателя стека. Первоначально он содержит число 2012 — адрес текущей вершины стека. Воспользовавшись преиндексной адресацией с обратной записью, операцию помещения в стек можно выполнить посредством такой команды: ЯТК КО,[К5,№-41! Непосредственно заданное смеьцение -4 добавляется к содержимому регистра К5 (числу 2012), а результат опять записывается в К5. Новый адрес вершины стека, 2008, используется как исполнительный адрес операции сохранения.

Эта операция, определяемая командой 5ТК, записывает по адресу 2008 содержимое регистра КО (число 27). Загрузка и сохранение нескольких операндов В дополнение к командам загрузки и сохранения, имеющим по одному операнду, процессор АКМ поддерживает еще две команды, которые могут загрузить и сохранил несколько операндов. Они называются командами блочной пересьия~ и предназначены для загрузки из памяти или сохранения в памяти любого подмножества регистров общего назначения. Допускается применение только операндов длиной в одно слово. Указанные команды называются 1.ПМ (1.оаб Мп11!р1е — множественная загрузка) и ЯТМ (Итоге Мп111р!е — множественное сохранение). В памяти операнды должны располагаться в последовательных словах.

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

Тогда команда 1.)эМ1А К10),(КО,К1,КО,К7) перешлет слова, расположенные в памяти по адресам 1000, 1004, 1008, 1012 в регистры КО, К1, Кб, К7, и после выполнения последней операции пересылки в регистре К10 останется адрес 1016. Суффикс 1А в коде операции означает «1псгеп1епг А(гегэ (постннкрементапия) и соответствует постиндексному режиму адресации.

Характеристики

Тип файла
PDF-файл
Размер
10,19 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее