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

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

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

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

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

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

Для указания конкретного адресного пространства, используемого в текущей команде, предназначена отдельная выходная управляющая линия. Для адресуемого побайтово адресного пространства ввода-вывода применяются 16-разрядные адреса. Первые 256 адресов можно задавать непосредственно в 8-разрядном поле команд 1Х и ОПТ.

Вот какой формат имеет команда ввода, в которой используется этот режим: 1Х КЕС,1эЕЧА1э1Ж Здесь регистром назначения КЕС может служить регистр А1. или ЕАХ, что зависит от длины пересылаемого операнда — 8 или 32 разряда. В последнем поле команды содержится 8-разрядный адрес устройства 1ЭЕЧАТ11Ж.

Соответствующая команда вывода такова: 011Т ЭЕЧА111УК,КЕО Поскольку память устройств ввода-вывода адресуется побайтово, буферный регистр данных клавиатуры может располагаться по адресу ВЕЧАТ11Ж, а ее 8-разрядный регистр состояния — по адресу 11ЕЧАПЭК ч- 1.

1.ЕА КЕАРл ВТ ,1ХС МОЧ МОЧ 1ХС ЕСНО: ВТ 1ХС МОЧ СМР 1ХЕ ЕВР,|ОС 1ХБТАТББ,З КЕА1У А1.,1УАТА1Х [ЕВР],А1. ЕВР ОПТЯТАТ118 ЕСНО 1)АТАОБТ,З А1.,СК КЕАП ЕВР указывает на область памяти Ожидание ввода символа в РАТА1Х Пересылка символа в А1. Сохранение символа в памяти и увеличение значения указателя Ожидание готовности 3.21. Операции ввода-вывода 201 Все 16-разрядное адресное пространство вмещает 64 Кбайт адресуемых единиц хранения.

На него можно ссылаться через регистр РХ посредством команды ввода 1Х КЕС,РХ где регистром КЕС может быть регистр А1. или ЕАХ. Здесь 16-разрядный адрес устройства содержится в регистре РХ, представляющем 16 старших разрядов регистра ЕРХ, а размер пересылаемого значения определяется размером операнда КЕС. Соответствующая команда вывода такова: ОПТ РХ,КЕС 3.21.3. Блочная пересылка В дополнение к командам 1Х и ОПТ, пересылающим между процессором и устройством ввода-вывода один информационный элемент, в архитектуре системы команд 1А-32 определены две команды блочной пересылки; КЕР)Х3 и КЕРО11Т3. Они предназначены для последовательной передачи блоков данных между памятью и устройством ввода-вывода.

Суффикс 3 в кодах этих операций означает зтг1э8 (строка), а префикс КЕР— гереат (повторять 1пересылку элементов, пока не будет переслан весь блок данных]). Параметры, определяющие операцию пересылки, задаются не в командах КЕР1Х3 и КЕРО(1Т3, а в регистрах РХ (16-разрядный адрес устройства ввода-вывода), ЕР1 (32-разрядный адрес начала блока в памяти) и ЕСХ (количество пересылаемых элементов данных).

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

Таким образом, каждая команда блочной пересылки эквивалентна целому программному циклу с регистром ЕСХ в качестве счетчика цикла. Для примера рассмотрим ситуацию, когда блок из 128 двойных слов пересылается с диска в основную память. Двойное слово данных содержится в адресуемом буферном регистре данных дискового устройства по адресу Р13КРАТА. Блок данных должен размещаться в памяти начиная с адреса МЕМВЕОСК. В регистр счетчика ЕСХ необходимо записать начальное значение 128.

Для выполнения пересылки можно применить последовательность команд ЕЕА ЕР1,МЕМВЕОСК МОЧ РХ,Р13КРАТА МОЪ' ЕСХ,128 КЕР1ХБР В ней предполагается, что метка МЕМВ1.ОСК объявлена как адресная метка, а Р13КРАТА — как метка данных, определенная директивой ЕЙ) и представляющая 16-разрядный адрес буферного регистра данных устройства. 202 Глава 3. Системы команд процессоров АГгМ, Могого!а и !п1е! Теперь вы знаете, как выполняется изолированный ввод-вывод и как при помощи одной команды можно произвести пересылку блока, состоящего из большого количества элементов данных, с использованием регистров-счетчиков адреса (Е?)1) и элемента данных (ЕСХ).

3.22. Подпрограммы Как было отмечено в разделе 2.9, стек процессора удобно применять для выполнения операций, связанных со входом в подпрограммы и возвратом из таковых. В архитектуре 1А-32 в качестве указателя стека используется регистр ЕБР, указывающий на текущую вершину стека процессора (то есть на его верхний элемент).

Стек растет в направлении уменьшения адресов. Принцип его организации описан в разделе 2.8. Ширина стека составляет 32 разряда, а это означает, что его элементы являются двойными словами. Существует четыре команды лля проталкивания элементов в стек и выталкивания их из стека.

Команда Р??8Н вгс уменьшает значение ЕБР на 4, а затем сохраняет двойное слово по адресу эгс в па- мяти, который указан в ЕБР. Команда РОР РОР г?зг выполняет обратную операцию: считывает из памяти двойное слово, на которое указывает Е8 Р, то есть считывает из стека верхний элемент, а затем сохраняет его по адресу г?эг и увеличивает значение ЕБР на 4, удаляя тем самым верхний элемент из стека. Регистр ЕБР используется в этой команде неявно.

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

Применение этих двух команд при реализации подпрограмм позволяет более эффективно сохранять и восстанавливать содержимое всех регистров. Приведенную на рис. 3.40, а программу можно переписать в виде подпрограммы, как показано на рис. 3.45, Параметры будут передаваться ей через регистры. Адрес первого из складываемых чисел, МЗМ1, загружается вызывающей программой в регистр ЕВХ, а количество складываемых чисел, Х, — в регистр ЕСХ. В вызывающей программе предполагается, что сумма будет записана подпрограммой в регистр ЕАХ.

Таким образом, регистры ЕВХ, ЕСХ и ЕАХ используются для 3.22. Подпрограммы 203 СА1 1. 1.1ЯТАРР Первым делом эта команда проталкивает в стек адрес возврата, а затем выполняет переход по адресу 115ТАРР. Содержимое стека после сохранения в нем содержимого регистра ЕР1 показано на рис. 3.45, б. Адрес возврата в нашем примере — зто адрес команды МОЪ', непосредственно следующей в вызывающей программе за командой СА1.1..

Команда НЕТ возвращает управление вызывающей программе, выталкивая из стека содержимое указателя команды Е1Р. Вызывающая программа 1.ЕА ЕВХ,1ч11М1 МОУ ЕСХ,Ы САЕЕ 1.1ЯЕАРР МОУ ЗРМ,ЕАХ Загрузка параметров в регистры ЕВХ и ЕСХ Переход к подпрограмме Сохранение суммы в памяти Подпрограмма Е!СТАРР: РПКСН МОУ Сохранение содержимого ЕР1 ЕР1 будет использоваться в качестве индексного регистра ЕАХ будет использоваться лля накопления суммы Прибавление следующего числа Увеличение значения индекса Уменьшение значения счетчика Если 1ЕСХ] > О, выполняется переход к началу цикла Восстановление значения ЕШ Возврат в вызывающую программу ЕР1 ЕР1,0 МОУ ЕАХ,0 БТАЕТАРР: АРР 11т1С РЕС зб ЕАХ, 1ЕВХ 4 ЕР1~41 ЕШ ЕСХ ЯТАЕТАРР РОР ЕЕТ ЕР1 ЕЯР— тн- Рис.

3.45. Программа с рис. 3.40, в, переписанная в виде подпрограммы для процессоров ы-32; паРаметРы передаются через регистры: вызывающая программа и подпрограмма [ай содержимое стека после сохранения значения Еп! в подпрограмме (б] На рис. ЗА В показан еще один вариант этой же программы, в котором параметры передаются подпрограмме через стек. передачи параметров. Регистр ЕР1 подпрограмма при выполнении сложения задействует в качестве индексного регистра, поэтому его содержимое должно сохраняться и восстанавливаться при помощи команд Р11БН и РОР. Подпрограмма вызывается командой 204 Глава 3. Системы команд процессоров АКМ, Мо1ого)а и )п1е) показанном на приведенном ниже рисунке.) (Вершина стека располагается на уровне 2 Вызывающая программа Р()БН ОРРБЕТ Х()М1 РЫБН Х САЬЬ Ь1БТАПП АПП ЕБР,4 РОР Б()М Проталкивание параметров в стек Переход к подпрограмме Удаление счетчика Х из стека Выталкивание суммы в БПМ Подпрограмма Ь)БТАПП; РЫБН МОЧ Сохранение Е1Н Этот регистр будет использоваться в качестве индексного Сохранение ЕАХ Этот регистр будет использоваться для накопления суммы Сохранение ЕВХ и загрузка адреса ХЫМ1 Сохранение ЕСХ и загрузка счетчика Х Прибавление следующего числа Увеличение значения индекса Уменьшение значения счетчика Если сложение не завершено, выполняется переход к началу цикла На место Х()М1 в стеке записывается сумма Восстановление значений регистров ЕП1 Е()1,0 РПБН МОУ ЕАХ ЕАХ,О РПБН МОУ РПБН МОЧ БТАКТАП)): АПП Пь)С ПЕС ,)б ЕВХ ЕВХ, (ЕБРч-20) ЕСХ ЕСХ,)ЕБР 20) ЕАХ (ЕВХ"-ЕП1*4) Е1Н ЕСХ БТАКТАПП МОЧ (ЕБРь24ьЕАХ РОР РОР РОР РОР КЕТ ЕСХ ЕВХ ЕАХ ЕП1 Возврат в вызывающую программу Уровень 3 — ь Уровень 2 — ь Уровень 1 — ь б Рис.

3.43. Программа с рис. 3.40, а, переписанная в виде подпрограммы для процессоров )А-32 (параметры передаются через стек): вызывающая програыма и подпрограмма (а); содержимое стека после сохранения значения Еп) в подпрограмме (б) Параметры ХПМ1 и Х проталкиваются в стек двумя командами РЫБН в вызывающей программе. После выполнения команды САЬЬ вершина стека распо- 3.22.

Подпрограммы 205 лагается на уровне 2. Регистры ЕШ, ЕАХ, ЕВХ и ЕСХ используются так жс, как в подпрограмме на рис. 3,45. Их значения сохраняются в стеке, затем в них загружаются начальные значения и параметры. Эту работу выполняют первые 8 команд подпрограммы. В результате вершина стека оказывается на уровне 3. После сложения чисел при помощи цикла из четырех команд сумма помещается в стек иа место параметра НУМ1. Выполнив команду КЕТ, команды вызывающей программы АРР и РОР удаляют из стека параметр Х и помещают результирующую сумму в память по адресу 5ИМ, возвращая вершину стека на уровень 1. Адрес Команды Комментарии Вызывающая программа РБЗН РАКАМ2 РПЗН РАКАМ1 САУЛ. 5ЫВ! РОР КЕ51Л.Т АРР Е5Р,4 2000 2006 2012 2017 Помещение параметров в стек Сохранение результата Восстановление уровня стека Сохранение регистра указателя на фрейм Загрузка указателя на фрейм Сохранение регистров Загрузка первого параметра Загрузка второго параметра РАН РАКАМЗ САЕЕ 5РВ2 РОР ЕСХ 2160 2165 ]ЕВКн-8],ЕРХ ЕРХ ЕСХ ЕВХ ЕАХ ЕВР Помещение результата в стек Восстановление регистров Сохранение регистра указателя на фрейм ЕВК ЕВР,ЕЗР ЕАХ ЕВХ ЕАХ,]ЕВРе8] Загрузка указателя на фрейм Сохранение регистров Загрузка параметров МОЪ' РОР РОР РОР КЕТ [ЕВР+8],ЕВХ ЕВХ ЕАХ ЕВР Помещение результата 5РВ2 в стек Восстановление регистров Рис.

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

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

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

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