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

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

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

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

Вот почему приведенную выше команду следует записать так: Моче №200,КО Значения констант часто используются в программах на языках высокого уровня. Например, инструкция А-В+6 содержит константу 6. Если предположить, что А и В объявлены ранее с применением абсолютного режима адресации, инструкцию можно откомпилировать так: Моче В,В1 Аоо №6,К1 Моче В1,А Константы широко используются и в языке ассемблера, где с их помощью выполняются такие операции, как приращение счетчиков, проверка отдельных битов и т. п. 2.5.2. Косвенная адресация и указатели При использовании описанных в этом разделе режимов адресации операнд и его адрес не задаются прямо в команде.

В команде лишь содержится информация, на основании которой можно определить адрес операнда. Этот реальный адрес называется исполнительным адресом операнда. В данном случае речь идет о косвенной адресации — режиме, при котором исполнительный адрес операнда находится в регистре или в памяти по адресу, заданному в команде. Для обозначения того, что используется именно косвенная 74 Глава 2. Машинные команды и программы адресация, задаваемое в команде имя регистра и адрес в памяти заключаются в скобки, как показано на рис.

2.11 и в табл. 2.1. Для выполнения команды АгЫ, схематически представленной на рис, 2.11, а, процессор использует в качестве исполнительного адреса операнда значение В, хранящееся в регистре В1. Он запрашивает из памяти значение, хранящееся по адресу В. Прочитанное значение и является операндом команды, который прибавляется к содержимому регистра ВО. Как показано на рис. 2.11, б, возможен и другой вариант косвенной адресации, при котором адрес операнда хранится не в регистре, а в памяти. В таком случае процессор сначала считывает содержимое памяти по адресу А, а затем запрашивает вторую операцию чтения, используя в качестве адреса значение В. Основная память Регистр В рис.

2.11. Косвенная адресация: через регистр общего назначения (а); через значение в памяти (б) И регистр, и адрес в памяти, содержащий адрес операнда, называются указателями. Косвенная адресация и использование указателей являются очень важными и исключительно мощными концепциями программирования. Их суть можно понять, проведя аналогию с процессом поиска сокровищ. Предположим, вам, чтобы найти таковые, велено идти в дом, расположенный по определенному адресу.

Но вместо того чтобы обнаружить там сокровище, вы находите записку, в которой указан совершенно другой адрес. Заменив одну записку другой, можно изменить адрес сокровища, но исходное указание (команда) останется неизменным. Изменение содержимого записки эквивалентно изменению содержимого указателя в компьютерной программе. Например, если изменить на рис.

2.11 содержимое регистра К1 или памяти по адресу А, команда АгЫ получит для сложения другой операнд. Теперь давайте вернемся к программе, склалывающей список чисел (рис. 2.10). Для доступа к последовательным числам, хранящимся в этом списке, мы можем применить косвенную адресацию, в результате чего получим программу, представленную на рис.

2.12. Регистр К2 используется в качестве указателя на числа в списке, и доступ к операндам осуществляется косвенно, через этот регистр. 2.5. Режимы адресации 75 В программе, в разделе инициализации, из памяти по адресу Х в регистр К1 загружается значение счетчика п. Затем, в режиме прямой адресации, адрес первого элемента в списке, ХПМ1, помещается в регистр К2. После этого очищается регистр КО (то есть ему присваивается значение 0). Первые две команды цикла на рис. 2.12 соответствуют не приведенному на рис. 2.10 блоку команд, начинающемуся с метки 1.00Р. На первом шаге цикла команда АсЫ (К2),КО извлекает из памяти операнд, хранящийся по адресу ХПМ1, и прибавляет его к содержимому регистра КО.

Вторая команда АсЫ увеличивает значение указате- ля К2 на 4, чтобы на втором шаге цикла, когда предыдугцая команда будет выпол- няться во второй раз, в нем содержался адрес ХПМ2. Адрес Содержимое Х,К1 №Х11М1,К2 Инициализация КО Рис. 2.12. Использование косвенной адресации в программе, представленной на рис. 2.10 Рассмотрим инструкцию, написанную на языке С: А - 'В; где  — переменная типа указателя.

Эту инструкцию можно откомпилировать в следующую пару команд: Моче В,К1 Моче (К1),А Используя косвенную адресацию через память, то же действие можно выполнить с помощью такой команды: Моче (В),А Несмотря на очевидную простоту косвенной адресации через память, этот режим адресации имеет ограниченное применение и в современных компьютерах используется редко. Из главы 8 вы узнаете, что команды, для получения операнда которых приходится дважды обращаться к памяти, плохо совмещаются с режимом конвейерной обработки.

Моче Моче С1еаг АгЫ АсЫ Песгешепс ВгапсЬ>0 Моче (К2),КО №4,К2 К1 1.0 ОР КОЯ.1М 76 Глава 2. Машинные команды и программы А вот косвенная регистровая адресация применяется весьма широко. Судя по программе, проиллюстрированной на рис. 2.12, этот режим предоставляет разработчикам возможность проявлять определенную гибкость. В тех случаях, когда абсолютная адресация операнда невозможна, косвенная регистровая адресация позволяет обратиться к глобальной переменной, предварительно загрузив ее адрес в регистр.

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

В любом случае речь идет об индексном регистре. Символическое обозначение индексного режима адресации таково: Х(йг) где Х представляет заданное в команде значение константы, а Ж вЂ” имя регистра. Исполнительный адрес операнда этой команды вычисляется так: ЕА-Х+ [211 В процессе формирования исполнительного адреса операнда содержимое индексного регистра не меняется. В программе на языке ассемблера константа Х может быть задана либо явно в виде числа, либо в виде символического имени, представляющего числовое значение, О том, как устанавливается связь между таким символическим именем и конкретным числовым значением, вы узнаете из раздела 2.6.

Когда команда транслируется в машинный код, в нее включается непосредственное значение константы Х, обычно представленное меньшим количеством битов, чем слово компьютера. Поскольку константа Х является целым числом со знаком, то прежде чем она будет сложена с содержимым регистра, ее знак должен быть расширен до длины этого регистра (см. раздел 2.1.3). Существует два способа применения индексного режима адресации. На рис. 2.13, а индексный регистр К1 содержит адрес в памяти компьютера, а значение Х определяет смещение операнда относительно этого адреса. Альтернативный способ применения индексной адресации продемонстрирован на рис.

2.13, б. Здесь константа Х соответствует адресу в памяти, а содержимое индексного регистра определяет смешение операнда относительно данного адреса. В любом из этих двух случаев исполнительный адрес является суммой пары значений, одно из которых явно задается в команде, а другое хранится в регистре. 2.5.

Режимы адресации 77 К1 -1 — 1ооо Смещение - 20 -~- 1ОгО К! -1- 1000 Смещение - 20 -к — 1020 Рио. 2.13. Индексная адресация: смещение задается константой (е); смещение задается е индексном регистре 1б) Чтобы понять, чем хороша индексная адресация, достаточно рассмотреть простой пример со списком оценок, полученных студентами по некоторому предмету, Предположим, что этот список начинается по адресу 1.1ЯТ и организован так, как показано на рис. 2.14. Информация о каждом из студентов хранится в памяти в виде записи, занимающей блок из четырех слов.

Запись состоит из кода студента, за которым следуют оценки, полученные им в результате проведения трех тестов. Всего в группе и студентов, и значение и хранится в памяти по адресу Х непосредственно перед списком. Адреса и коды студентов на рисунке указаны исходя нз предположения, что память адресуется побайтово и длина слова составляет 32 разряда. Следует отметить, что список на рис. 2.14 представляет собой двумерный массив, содержащий н строк и четыре столбца. В каждой такой строке содержится запись об одном студенте, а в столбцах указываются коды студентов и их оценки. 1.1БТ 1.1ЯТ 4 4 1.15Т е 8 1.1ЯТ е 12 1 1ЯТ -ь 16 Студент 1 Студент 2 Рно. 2.14.

Список оценок студентов Предположим, мы хотим вычислить суммы баллов, полученных всеми студентами по каждому из трех тестов, и записать зти три суммы в память по адресам 51)М1, Я)М2 и 5()МЗ. Один из вариантов программы для выполнения такой задачи приведен на рис. 2.15. Рис. 2.15. Индексная адресация используется для доступа к оценкам студентов в списке, представленном на рис. 2.14 В теле цикла программы для доступа к записям с каждой из трех оценок очередного студента применяется индексный метод адресации, в том виде, в каком 78 Глава 2. Машинные команды и программы Моче С1еаг С1еаг С!еаг Моче АтЫ Асс А<Ы Асс Эесгетлепг ВгапсЬ>0 Моче Моче Моче л?.1ЗТ,КО К1 К2 КЗ Х,К4 4(КО),К1 8(КО),К2 12(КО),КЗ 116,КО 1.00Р К1,80М1 К2,ЗВМ2 КЗ,ЗВМЗ 2.6. Режимы адресации 79 он представлен на рис.

2.13, а. В качестве индексного регистра используется КО. Перед началом цикла в этот регистр записывается адрес кода первого студента в памяти компьютера, то есть адрес Е1ЗТ. На каждом шаге цикла оценки очередного студента прибавляются к текущим суммам, хранящимся в регистрах К1, К2 и КЗ (перед началом цикла все три регистра устанавливаются в 0). Доступ к оценкам осуществляется посредством индексов 4(КО), 8(КО) и 12(КО). Затем значение в индексном регистре увеличивается на 16, чтобы он указывал на код следующего студента. Из содержимого регистра К4, куда перед началом цикла было помещено значение я, вычитается 1. На этом очередной шаг цикла заканчивается, а на следующем шаге все повторяется сначала, пока содержимое регистра 24 не станет равным О. Это будет означать, что оценки всех студентов считаны и цикл должен завершиться. А пока содержимое К4 не равно нулю, с помощью команды условного перехода управление передается обратно на начало цикла, для обработки следующей записи, Последние три команды пересылают итоговые суммы из регистров К1, К2 и КЗ в память по адресам Я1М1, ЗПМ2 и ЗПМЗ, Следует еще раз подчеркнуть, что содержимое индексного регистра КО при обращении к записям с оценками студентов не меняется.

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

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

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

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