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

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

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

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

Кроме того, в программе могут выполняться переходы к заданным командам — как условные, так и безусловные, О них мы сейчас и поговорим. 3.19.1. Условные переходы и флаги кодов условий Представленная на рис. 3.40, а команда ДС БТАЕТАПО относится к числу команд условного перехода. Условие «больше нуля» задается в ней суффиксом кода операции С. Это условие касается и результата последней выполненной команды обработки данных, которой в нашем примере была команда 1)ЕС ЕСХ Признаки результатов, которые генерируются командами типа 1)есгешепс и АгЫ, выполняющими арифметические операции и операции сравнения, записываются в четыре флага кодов условий в регистре состояния процессора, показанном на рис. 3.37. В зависимости от результата операции зти флаги, называемые ЯР (з1яп — знак), ХР (хего — нуль), ОР (очег11отч — переполнение) и СР (саггу— перенос), устанавливаются в 1 или очищаются нулем, как рассказывалось в разделе 2.4.6 (там они назывались Х, 2, Ч и С).

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

В команде условного перехода задается не абсолютное значение целевого адреса перехода„а число со знаком, которое прибавляется к содержимому регистра указателя команды, то есть целевой адрес задается относительно адреса в указателе команды. Значение указателя команды увеличивается сразу после выборки очередной команды, поэтому он всегда определяет следующую выполняемую команду программы. Когда к указателю прибавляется относительный адрес перехода, 3.19.

Управление потоком выполнения программы 197 он начинает указывать на команду, следующую за командой перехода. Предположим, что адрес ЯТАКТАЭП в нашем примере равен 1000. Для кодирования команд АПП, 1ХС, ПЕС и 1С из программы на рис. 3.40, а требуется 7 байт. Обновленное содержимое регистра указателя команды Е1Р будет равно 1007, то есть адресу последней в программе команды МОУ.

Таким образом, относительное расстояние до целевой команды перехода составляет -7; именно данное значение и содержится в команде условного перехода. Это маленькое отрицательное число можно представить одним байтом. Поэтому, с учетом байта кода операции, для записи команды условного перехода достаточно 2 байт. Такой размер имеют команды перехода, в которых относительный адрес перехода лежит в диапазоне от -128 до +127. Если же расстояние до целевой команды перехода больше, то используется 4-байтовое смещение.

В этом примере проверяется значение в регистре ЕСХ вЂ” нас интересует, больше ли оно нуля. Другие свойства результата можно проверить при помощи иных команд условного перехода. Например, если результат равен нулю, переход выполняется командой )2 (или )Е), а если знак результата отрицателен (знаковый бит равен 1) — командой 18. Команды сравнения Условный переход в программах часто осуществляется в соответствии с результатом сравнения двух чисел.

Команда Сошраге СМР йг,згс выполняет операцию 1«Ь11 — 1згс) н на основе полученного результата устанавливает флаги кодов условий. При этом ни один из операндов не изменяется и первый операнд всегда сравнивается со вторым. Например, переход по условию «больше» выполняется в том случае, если операнд назначения оз1 больше исходного операнда згс. 3.19.2. Безусловный переход Команда безусловного перехода )МР всегда вызывает переход к команде по целевому адресу. В ней может быть задано короткое (1 байт) или длинное (4 байта) относительное смещение со знаком.

Кроме того, как и в командах условного перехода„могут использоваться другие режимы адресации. Такая гибкость определения целевого адреса перехода может быть очень полезной. В каждой точке программы выполняется только одно нз альтернативных вычислений. Предположим, что в специальной таблице в памяти начиная с адреса Я3МРТАВЕЕ хранятся 4-байтовые адреса первой команды каждой из подпрограмм, представляющих возможные ветви программьь Если последовательно пронумеровать зти ветви как О, 1, 2... в загрузить индекс выполняемой подпрограммы в регистр Е81, то переход к выбранной ветви может быть выполнен посредством такой команды с использованием индексной адресации со смещением: )МР ()ПМРТАВ1.Е + Е51«4] 198 Глава 3.

Системы команд процессоров АНМ, Мо1ого!а и ~п1е! 3.20. Логические команды, команды сдвига и циклического сдвига 3.20.1. Логические операции В архитектуре 1А-32 имеются команды, выполняющие логические операции И, ИЛИ и Исключающее ИЛИ. Это поразрядные операции с двумя операндами и записью результата по адресу назначения. Предположим, что в регистре ЕАХ содержится шестнадцатеричное значение ООООЕЕЕЕ, а в регистре ЕВХ вЂ” значение 02РА62СА. Команда АЫР ЕАХ,ЕВХ очистит левую половину регистра ЕВХ, заполнив ее нулями, а правую его часть оставит без изменений. В результате в ЕВХ окажется значение 000062СА, Кроме того, в архитектуре 1А-32 имеется команда НОТ, генерирующая логическое дополнение всех битов операнда, то есть заменяющая все единицы нулями, а все нули единицами.

3.20.2. Операции сдвига и циклического сдвига При помощи операции логического или арифметического сдвига операнд может быть смещен влево или вправо на заданное количество разрядов. Формат команды сдвига таков: КодОперации озцсоипт где сдвигаемый операнд йт задается при помощи одного из стандартных адресных режимов, а количество разрядов сдвига свинг представляется 8-разрядным значением, либо задаваемым непосредственно в команде, либо содержащимся в 8-разрядном регистре С1. Существует четыре команды сдвига: + ЗНц — логический сдвиг влево; + БНК вЂ” логический сдвиг вправо; + ЗАт.

— арифметический сдвиг влево (то же, что ЗН1 ); + ЗАК вЂ” арифметический сдвиг вправо. Операции сдвига описаны в разделе 2.10 и проиллюстрированы на рис. 2.30. Существует также четыре команды циклического сдвига. Это команды КО1. и КОК, выполняющие сдвиг влево и вправо без установки флага переноса СЕ, и команды КСц и КСК, выполняющие сдвиг с установкой флага СК Все четыре операции графически показаны на рис.

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

Посредством 3.2ц Операции ввода-вывода 199 второго операнда этой команды задается количество разрядов, на которое должен быть сдвинут первый операнд. Команда АКР очищает четыре старших бита второго байта, записывая в них нули. После этого 4-разрядные значения, представляющие ВСР-коды чисел, объединяются командой ОК в регистре А1., а затем сохраняются в памяти по адресу РАСКЕЭ.

Рис. 3.43. Программа дпв процессоров И-32, упаковывающвв две цифры ВСП в один байт 3.21. Операции ввода-вывода 3.21.1. Ввод-вывод с отображением в память В современных компьютерных системах буферные регистры ввода-вывода обычно адресуются путем отображения в основную память, как рассказывалось в разделе 2.7.

Для пересылки устройствам ввода-вывода управляющей информации, а также для обмена с ними данными и сведениями о состоянии в архитектуре 1А-32 может использоваться обыкновенная команда пересылки. Для примера предположим, что флаги синхронизации клавиатуры и дисплея, 5?Х и ЗОНТ (рис. 2.19), хранятся в третьем разряде регистров состояния этих устройств, то есть в ?ХЯТАТПЗ и ОПТБТАТПЗ соответственно. При использовании программно-управляемого ввода-вывода чтение байта из буфера клавиатуры АЗАТА?Х в регистр А1. можно выполнить с помощью такого цикла ожидания: ВЕЛЛА?Т ВТ ?МБТАТПЯ,З [НС КЕАР'%гА?Т МОЧ А?.,ЭАТА?Х Здесь ВТ вЂ” команда проверки бита. Она загружает значение заданного бита исходного операнда во флаг переноса СК После этого команда ??т[С (условньгй переход при отсутствии переноса) выполняет переход по метке КЕА1)ЖА1Т, если С Р = О.

Процедура вывода байта из регистра А1. на дисплей очень похожа: ЖК?ТЕМА?Т ВТ ?ХБТАТПЯ,З [ЫС Ъ'ИТЕРА?Т МОЧ РАТАОПТ,А?. 1.ЕЛ МОЧ ЯН1 МОЧ ЛИР ОК МОЧ ЕВК,1ОС Л1,[ЕВй] А1.,4 В1,[ЕВВ-ьЦ В1,0ГН Л1.,В1. РЛСКЕР,Л1 ЕВР указывает на первый байт Загрузка первого байта в А1 Сдвиг па 4 позиции влево Загрузка второго байта в В1. Очистка 4 старших разрядов нулями Конкатенация цифр ВСР Сохранение результата 200 Глава 3.

Системы команд процессоров АКМ, МоГого!а и 1пГе! На рис. 3.44 приведена программа для процессоров 1А-32, считывающая с клавиатуры строку символов, загружающая ее в память по адресу ЕОС и отображающая ее на экране (рис. 2.20). Регистр ЕВР указывает на область памяти, в которую должна быть записана строка символов.

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

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

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

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