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

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

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

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

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

Поэтому копирование этого указателя в регистр КНЕАП означает, что теперь 118 Глава 2. Машинные команды и программы КНЕА?),КС?)ККЕХТ 4(КС?)ККЕХТ), КХЕХТ (КХЕХТ),К1?)Х??М 1)Е1.ЕТЕ КХЕХТ КСНККЕХТ 1.ООР 4(КХЕХТ),КТЕМР КТЕМР,4(КСНККЕХТ) 2.12. Кодирование машинных команд 119 список пуст. Регистры КСБККЕХТ и КХЕХТ применяются для сканирования списка в поисках удаляемой записи. Когда эта запись будет найдена, вторая команда сравнения и перехода передаст управление по адресу ПЕКЕТЕ. Запись, на которую указывает регистр КХЕХТ, будет удалена из списка, для чего ее поле указателя будет скопировано в поле указателя предыдущей записи, на которую указывает КСПККЕХТ. Последние две команды пересылки выполняют такое копирование через регистр КТЕМР.

Если компьютер поддерживает непосредственное копирование из памяти в память, эти две команды можно заменить одной: Моче 4(КХЕХТ),4(КСПККЕХТ) Обработка ошибок Подпрограммы добавления и удаления записи, показанные на рис. 2.37 и 2.38, не учитывают, что возможны две такие ситуации, из-за которых в них наверняка произойдут ошибки. Подпрограмма добавления записи предполагает, что в списке нет записи с таким кодом, как у новой записи, а подпрограмма удаления прсдполагает, что в списке такая запись имеется. Модификации этих подпрограмм с учетом двух указанных ситуаций посвящены упражнения 2.23 и 2.24.

2.12. Кодирование машинных команд Итак, вы познакомились со множеством полезных команд и адресных режимов. Зги команды определяют действия, которые должны быть произведены процессором для выполнения конкретных задач. В предыдущих разделах мы часто называли их машинными командами. На самом же деле та форма, в которой приводись эти команды, близка к языку ассемблера — мы лишь пытались избежать использования сокращенных обозначений команд, так как они, во-первых, трудны для запоминания, а во-вторых, специфичны для конкретных процессоров. Чтобы процессор мог выполнить команду, ее необходимо закодировать в компактном двоичном формате.

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

Поскольку речь обычно шла о 32-разрядных словах, считалось, что этой длины достаточно для представления всей необходимой информации. Теперь пришло время проверить это предположение. Вам уже известны команды, выполняющие такие операции, как сложение, вычитание, пересылка, сдвиг и переход. В этих командах могут использоваться операнды разного размера, в частности 32- и 8-разрядные числа, 8-разрядные АВСП- коды символов. Типы выполняемых операций и их операндов могут определяться в двоичной спецификации, называемой кодом операции данной команды. Предположим, для кода операции выделяется 8 разрядов, что позволяет закодировать 256 разных команд.

После этого в машинной команде для записи остальной информации остается 24 разряда. 120 Глава 2. Машинные команды и программы Рассмотрим несколько типичных случаев. В команде Аоо К1,К2 помимо кода операции должны быть заданы два регистра, К1 и К2. Если процессор имеет 16 регистров, для идентификации каждого их ннх нужно 4 разряда. Кроме того, необходимо указать, что для каждого из операндов используется регистровый режим адресации, для чего потребуется еще несколько разрядов. В команде Моче 24(КО),К5 16 разрядов необходимы для задания кода операции и двух регистров, а еще несколько разрядов для указания того, что для исходного операнда используется индексный режим адресации, а значение индекса составляет 24. Предположим, что для идентификации одного их перечисленных в табл.

2.1 режимов адресации необходимо иметь 3 разряда. Тогда в команде с двумя операндами для определения способов их адресации будет задействовано 6 разрядов. Для записи значения индекса остается 10 разрядов. Если их хватит для представления адекватного диапазона чисел со знаком, значит, команда поместится в 32-разрядное слово. В команде сдвига 1.5)пТсК №2,К0 и команде пересылки Моче №$3А,К1 необходимо предусмотреть разряды для записи непосредственно задаваемых значений 2 и ЗЗА — это помимо 18 разрядов, используемых для определения кода операции, режимов адресации и регистра. Поэтому размер заданного операнда ограничен 14 разрядами.

Рассмотрим следующую команду перехода: ВгапсЬ>0 1.00Р И здесь код операции занимает 8 разрядов, а для смещения перехода остается 24 разряда. Поскольку смещение задается как чисдо в формате дополнения до двух, целевой адрес перехода не должен отстоять от команды перехода более чем на 2зз байта. Для того чтобы выполнить переход к команде вне этого диапазона, нужно применить другой режим адресации, например абсолютную или регистровую косвенную адресацию. Команды перехода, в которых используются эти режимы, часто называют 1пшр-командами. Во всех рассмотренных примерах команды помещались в 32-разрядное слово.

Возможный формат этого слова приведен на рис. 2.39, а. В нем восемь разрядов отведено для кода операции и по семь разрядов на каждый из двух операндов. Семиразрядное поле идентифицирует режим адресации операнда и используемый регистр (если таковой имеется). В поле «Другая информация» можно задать такие дополнительные сведения, как значение индекса или значение операнда.

2.12. Кодирование машинных команд 121 Но как быть, если нам потребуется расположенный в памяти операнд задать с помощью абсолютного режима адресации? В команде Моче В2Д.ОС для кода операции, адресных режимов и регистра требуется 18 разрядов. Следовательно, для адреса ЕОС остается всего 14 разрядов, чего, конечно же, совершенно недостаточно. Если в команде нужно задать полный 32-разрядный адрес, единственным решением может стать увеличение длины команды еще на одно слово, которое и будет содержать адрес.

Формат такой команды показан на рис. 2.39, 6. Первое слово в ней точно такое же, как на рис. 2.39, а, но второе содержит полный адрес операнда в памяти компьютера. В этом формате можно задавать команды наподобие следующей: Апй №ЗГЕОООООО,В2 В данном случае второе слово будет содержать непосредственно заданный 32-разрядный операнд. 10 Рио. 2.39.

Кодирование команд в 32-разрядник словах: команда длиной в одно слово (а); команда длиной в два слова (б); команда длиной в три слова (в) Для хранения команды, в которой оба операнда заданы в абсолютном режиме, например такой: Моче ЕОС1,1.0С2 потребуется не одно, а два дополнительных слова.

122 Глава 2. Машинные команды и программы Как видите, мы пришли к выводу о необходимости использовать команды переменной длины, размер которых зависит от количества операндов и применяемых режимов адресации. Задействуя несколько слов, можно реализовать довольно сложные команды, напоминающие инструкции языков высокого уровня. Компьютеры, поддерживавпцие такие команды, называются компьютерами с полным набором команд (Сошр1ех 1пзСгисс1оп Бег Сошрпгег, С1БС). Существует и кардинально иная альтернатива этому подходу.

Если решить, что все команды должны помещаться в одно 32-разрядное слово, в них просто невозможно будет использовать 32-разрядные адреса или 32-разрядные непосредственно задаваемые операнды. Но при этом система команд все равно может быть достаточно функциональной, если в ней будут интенсивно использоваться регистры процессора. Таким образом может поддерживаться команда АсЫ К1,22 но не команда АсЫ 1.0С,В2 Вместо последней можно использовать команду АсЫ (КЗ),К2 предварительно загрузив адрес 1.0С в регистр ВЗ.

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

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

Все команды данного процессора имеют 32-разрядный формат. Компьютеры, размер команд которых ограничен одним словом, называются компьютерами с сокращенным набором команд (Кес(псес( 1пзсгис11оп Бег Сошрисег, К1ЯС). Системы команд типа К1БС имеют и другие ограничения. В частности, все операции выполняются в них только над данными, хранящимися в регистрах процессора. Это означает, что для реализации приведенной выше операции сложения необходимы две команды: Моче (КЗ),К1 АсЫ К1,К2 Если в команде АсЫ задаются два регистра, она занимает даже меньше одного слова, и становится возможным использование команды с тремя операндами: АсЫ К1,В2,КЗ Упражнения 123 выполняющей операцию ЯЗ < — 121) + 1к21 Возможный формат этой команды приведен на рис.

2.39, в. Конечно, процессор должен уметь работать с командами, имеющими по три операнда. В тех системах команд, в которых все логические и арифметические операции выполняются только над регистрами, обращение к памяти производится с помощью лишь двух команд, а именно считывания данных в регистры из памяти и записи данных из регистров в память. В системах типа ЫЗС команд обычно бывает меньше, причем сами по себе они проще, чем команды типа С1ЯС.

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

Обсуждая методы связывания подпрограмм, мы рассмотрели в качестве примера приложение, поддерживающее структуру данных типа стека. Затронуты были и такие темы, как способы управления другими структурами данных, в частности очередью, массивами и связными списками. Напоследок были проанализированы два разных подхода к формированию набора машинных команд, известных как В15С и С1ЯС.

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

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

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

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