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

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

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

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

Системы команд процессоров АЯМ, Могого!а и !п1е! Поскольку операнд назначения А1 представляет собой младший байт регистра ЕАХ, ассемблер выберет код той операции пересылки, которая предназначена для пересылки байтов. Наиболее гибкой из всех адресаций является базовая индексная со смещением. Пример ее использования приведен на рис. 3.39, б, где функции базового и индексного регистров выполняют регистры ЕВР и Е81.

Этот пример показывает, как обратиться к операнду, который является одним из элементов списка двойных слов. Список начинается со смещением 200 относительно базового адреса 1000. С использованием коэффициента масштабирования 4 для доступа к двойным словам по адресам 1200, 1204, 1208, ...

можно обращаться при помощи последовательности индексов О, 1, 2, ... в индексном регистре Е51. В нашем случае в индексном регистре содержится значение 40 и при этом выполняется обращение к двойному слову по адресу 1360 (то есть 1000 з- 200 ~ 4 н 40). Данный операнд загружается в регистр ЕАХ командой МОЪ' ЕАХ,[ЕВРз-Е81*4з-200[ Использование коэффициента масштабирования облегчает доступ к последовательным двойным словам списка в программном цикле, поскольку в этом случае на каждом шаге цикла достаточно увеличивать значение индексного регистра на 1.

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

Однако команда с использованием первого режима на один байт короче. Кроме того, величина смещения во втором случае может задаваться только 32-разрядным числом. В следующем разделе рассказывается о том, как описанные режимы адресации кодируются в машинных командах. Более подробная информация по данной теме приведена в приложении Г. 3.17. Команды 1А-32 Набор команд архитектуры 1А-32 очень обширен. Машинные команды имеют переменную длину и не всегда однотипный формат, о чем будет рассказано в разделе 3.17.1.

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

3.17. Команды 1А-32 189 Мы начнем с рассмотрения небольшого набора команд и покажем, как они могут использоваться в сравнительно небольшой программе. Команда А1И) йг,згс выполняет операцию сЬг +- (йт) '- (згс) а команда МОЪ' згс йг как вы уже знаете, — операцию йв +- (згс) Предположим, что операнды хранятся в регистрах ЕАХ и ЕВХ. Следующие две команды вычисляют сумму операндов в регистре ЕАХ и сохраняют ее в памяти по адресу Я~М: А1Н) ЕАХ,ЕВХ МОЪ' ЯПМ,ЕАХ Поскольку в памяти может располагаться только один из операндов команды, для реализации операции С «- (А) «- (В) с тремя операндами в памяти потребуется целых три команды: МОЧ ЕАХ,А АЭП ЕАХ,В МОЧ С,ЕАХ Команда вычитания Я1В бзг,згс выполняет операцию <Ьт +- (гЬг) — (згс) Для увеличения и уменьшения операнда на 1 предназначены команды авто- увеличения (инкремента) и автоуменьшения (декремента), 1ХС и 1)ЕС.

Прежде чем мы перейдем к рассмотрению программы, выполняющей сложение чисел, вам нужно познакомиться еще с двумя командами. Первая из них — команда перехода Если результат последней арифметической операции был больше нуля, команда 50 ЕООРЯТАКТ осуществляет переход по адресу ЕООРЯТАКТ. Все команды условного перехода начинаются с буквы), соответствующей слову )шпр (переход), за которой следуют буквы, обозначающие условие.

В данном примере буква С обозначает «больше нулям О других командах условного перехода будет рассказано чуть позже. 190 Глава 3. Системы команд процессоров АЯМ, Мо1ого!а и !п1е! Чтобы получить возможность при косвенной регистровой адресации использовать регистр общего назначения, нужно сначала загрузить в такой регистр адрес операнда команды. Это можно сделать двумя способами. Если для нужного адреса в программе явно определена адресная метка, скажем 1.0САТ1ОХ, этот адрес можно загрузить в регистр при помощи команды Моче и с применением непосредственной адресации, вот так: МОУ ЕВХ,ОРРБЕТ ?.ОСАТ?ОХ Данная команда загружает в регистр ЕВХ адрес, представленный меткой ?.0- САТ?ОХ. В качестве альтернативы можно задействовать команду ?.оаг? Е??ест?че Аг?йгезз (загрузка исполнительного адреса) с мнемоническим обозначением ЕЕА Команда ?.ЕА ЕВХ,? ОСАТ?ОХ выполняет ту же операцию, что и приведенная выше команда.

При помощи команды ЕЕА можно загружать в регистры адреса, динамически вычисляемые во время выполнения программы. Предположим, нам нужно загрузить в регистр ЕВХ адрес операнда, для доступа к которому применяется базовая адресация со смещением. Команда 1.ЕА ЕВХ,?ЕВР+121 загрузит в регистр ЕВХ адрес операнда, расположенного по адресу ?ЕВР?+12. Ад- рес зависит от содержимого регистра ЕВХ в момент выполнения команды. Программа для сложения чисел Используя только что описанные команды, мы можем создать программу для сложения чисел при помощи цикла.

Предположим, что в памяти по адресу Х содержится набор 32-разрядных чисел, расположенных последовательно начиная с адреса ХПМ1. На рис. ЗАО, а приведена программа на языке ассемблера, складывающая эти числа и помещающая результат в память по адресу ЗПМ. В регистр ЕВХ загружается значение адреса Х??М1. Он используется как базовый регистр при базовой индексной адресации в первой команде цикла, расположенной по адресу 8ТАКТАРР. Индексным регистром здесь является ЕР?. Перед началом цикла он очищается путем записи в него значения О.

На первой итерации цикла к содержимому регистра ЕАХ, первоначально установленному в О, прибавляется первое число из списка, хранящееся по адресу ?ЕВХ? - ХПМ1. Затем значение индексного регистра увеличивается на 1. На второй итерации цикла к содержимому регистра ЕАХ прибавляется второе 32-разрядное число, расположенное по адресу Х??М1 + 4, поскольку в команде Аг?г? задан коэффициент масштабирования 4. На следующих итерациях к сумме прибавляются числа, находящиеся по адресам ХПМ1 - 8, ХПМ1 — 12, .... В качестве счетчика используется регистр ЕСХ. Сначала вторая команда программы загружает в него значение, хранящееся в памяти по адресу Х.

Далее на каждой итерации цикла значение в этом регистре уменьшается на 1. Команда условного перехода ? С выполняет переход к началу цикла по адресу ВТАКТАРР, если [ЕСХ~ > О. Когда содержимое 3.17. Команды (Я-32 191 регистра ЕСХ становится равным нулю, это означает, что все числа списка сложе- ны. В таком случае переход не осуществляется и следующая команда пересылки сохраняет содержимое регистра ЕАХ в памяти по адресу 31)М. РЕС „(С МОЧ ЕСХ 3ТАКТАРР 3()М,ЕАХ 1.ЕА 31) В ЕВХ,(к(()М1 ЕВХД МОЧ МОЧ 3ТАКТАРР: АРР 1.О ОР ЕСХ,(4 ЕАХ,О ЕАХ (ЕВХч.

ЕСХк4] БТАКТАРР МОЧ 5()М,ЕАХ Рис. 3.40. Программа для процессоров (Я-З2, выполняющая сложение списка чисел; простая программа (а); усовершенствованная версия программы (б) Приведенную на рис. 3.40, а программу можно переписать более компактно. Обратите внимание на команды РЕС ЕСХ ) О ЗТАКТАРР з конце программного цикла. Онн очень часто выполняются в конце циклов. Поэтому в набор команд процессора 1А-32 включена команда, объединяющая их функции. Команда (.ООР 3ТАКТАРР сначала уменьшает содержимое регистра ЕСХ, а затем выполняет переход по адресу ЗТАКТАР Р, если значение ЕСХ не равно нулю.

Вторая возможность сократить размер программы связана с двумя регистрами, ЕР1 и ЕСХ, которые использовались в качестве счетчиков. Если мы будем сканировать список складываемых ЕЕА МОЧ МОЧ МОЧ БТАКТАРР: АРР 1(,)С Е ВХ,(к(() М1 ЕСХ,(к( ЕАХ,0 ЕР1,() ЕАХ,(ЕВХч-ЕР1*41 ЕР1 Инициализация регистров базы (ЕВХ) и счетчика (ЕСХ) Очистка регистров суммы (ЕАХ) и индекса (ЕР1) Прибавление очередного числа к ЕАХ Увеличение значения индексного регистра Уменьшение значения регистра счетчика Если [ЕСХ( > О, переход на начало цикла Сохранение суммы в памяти Инициализация регистра базы ЕВХ и вычитание значения 4, чтобы в нем содержалось (к((ЗМ1 — 4 Инициализация счетчика ЕСХ Очистка регистров суммы (ЕАХ) Прибавление очередного числа к ЕАХ Уменьшение значения регистра ЕСХ и, если ЕСХ( > О, переход на начало цикла Сохранение суммы з памяти 192 Глава 3.

Системы команд процессоров АЯМ, Мо1ого!а и!п1е! чисел в обратном направлении, то есть от конца к началу, то нам потребуется только один счетчик. Воспользуемся регистром ЕСХ, поскольку он неявно применяется в команде ЕООР, Так как ()ч) = и, последовательные значения регистра ЕР1 в первой программе равны О, 1, 2, ..., и, и программа считывает числа по адресам )ч()М1, )ч()М1 + 4, г(()М1 + 8, ..., (ч()М1 + 4(п — 1). Новая программа считывает чисгга по адресам (1ч() М1 — 4) + 4л, ((ч(1М1 — 4) г 4(п — 1), ..., (ЬПЗМ1 — 4) ~ 4(1), а регистр ЕСХ в ней принимает значения и, и — 1, ..., 1 (рис. 3.40, б).

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

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

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

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