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

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

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

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

Поэтому значение в базовом регистре ЕВХ, в первой программе равное 1ч()М1, нужно изменить на г(()М1 — 4, что позволит учесть различие между значениями регистров Е01 и ЕСХ. На последней итерации цикла новой программы перед выполнением команды ЕООР регистр ЕСХ содержит значение 1, и из памяти по адресу Х()М1 считывается последнее из складываемых чисел. Обработка списков и массивов всегда требует внимательности, особенно при выборе условия перехода и метода индексации — с нуля или единицы.

Неверный выбор может привести к ошибкам в программе. В языках высокого уровня эта задача упрощается, поскольку к элементам списка можно явно обращаться как к 1 1ЯТ(0),?.15Т(1), ..., Е13Т(п — 1), а начало и конец цикла можно явно связать со значениями индекса прн помощи таких выражений, как РОК 1 ЯКОМ 0 ПРТО (и-1) или РОК 1 РКОМ (и-1) ЕгОЮг(ТО 0 Это краткое описание некоторых из числа наиболее часто используемых команд 1А-32 и примера программного цикла можно считать введением в систему команд н язык ассемблера 1А-32.

В следующем разделе рассматривается машинное представление команд этого семейства процессоров. 3.17.1. Формат машинных команд Общий формат машинных команд процессоров 1А-32 показан на рис. ЗА!. Команды имеют переменную длину — от 1 до 12 байт и могут включать до четырех полей.

Команды длиной в 1 байт содержат только обязательное поле кода операции. Как правило, длина этого поля составляет 1 байт, иногда — 2 байта. Информация о режиме адресации содержится в одном или двух байтах, следующих за полем кода операции. В тех командах, где для формирования исполнительного адреса операнда используется только один регистр, поле режима адресации имеет длину 1 байт. Второй байт нужен для кодирования двух последних режимов адресации (см. табл.

3.3). В этих режимах для формирования исполнительного адреса операнда нужно иметь 2 байта. Если для вычисления исполнительного адреса операнда требуется указать смещение, его значение записывается в один или два байта в поле, следующем за полем режима адресации. Если один из операндов задается непосредственно, он помещается в последнее поле команды и занимает 1 или 4 байта. Для ряда простых команд, подобных тем, о которых рассказывалось в предыдущем разделе, код используемого регистра задается прямо в байте кода операция. 3.17. Команды !А-32 193 Однако для большинства команд и режимов адресации регистры задаются в поле режима адресации.

Во многих системах команд в тех случаях, когда таковые имеют переменную длину, в начале двоичного представления команды должна быть задана ее длина. Связано это с тем, что последовательные команды располагаются в памяти друг эа другом, без указания границ между ними. 1 нли 2 байта 1 или 2 байта 1или4 байта 1 или 4 байта Рис.

3.41. Формат команды !А-32 Однобайтовые команды Команды ПЧС и РЕС, предназначенные для уменьшения и увеличения значения регистра, имеют длину 1 байт. Например, в командах 11нС ЕР1 РЕС ЕСХ регистры общего назначения ЕР1 и ЕСХ задаются 3-битовыми кодами в байте кода операции.

Кодировка непосредственной адресации Режим непосредственной адресации задается в поле кода операции. Например, команда МОЧ ЕАХ,820 имеет длину 5 байт. В однобайтовом поле кода операции определяется операция пересылки, указывается, что операнд задан непосредственно и имеет длину 32 разряда, а также задается имя регистра назначения. За кодом операции следует 4-байтовое значение 820. Если непосредственно заданный операнд имеет длину 8 бит, то для команды МОУ Р1.,5 достаточно 2 байт, Режимы адресации и поля смещения Если команда имеет два операнда, то один из них должен содержаться в регистре, а другой — либо в регистре, либо в памяти. Для этого правила имеются два исключения, когда оба операнда могут находиться в памяти.

Одно из них касается команд, в которых первый операнд задается в режиме непосредственной адресации, а второй — в режиме прямой адресации. Другое исключение относится к операциям проталкивания и выталкивания значений иэ стека процессора. Стек 194 Глава 3. Системы команд процессоров А!чМ, Могого!а и !пге! располагается в памяти в сегменте стека, и в него можно поместить значение нз памяти, а можно вытолкнуть из него значение в память.

Эти операции подробно описаны в разделе 3.22. Когда оба операнда находятся в регистрах, для поля режима адресации достаточно одного байта. Например, команда АБО ЕАХ,ЕТ!Х занимает 2 байта. В первом из них содержится код операции, а во втором — коды двух регистров. Рассмотрим несколько примеров кодирования команд, один операнд которых располагается в памяти, а другой в регистре.

Команда МОЧ ЕСХ,Н в программах на рис. ЗАО кодируется 6 байтами: один для кода операции, один для поли адресного режима, в котором задается режим прямой адресации и регистр ЕСХ, и четыре байта для адреса памяти Н. Для кодирования команды АВП ЕАХ,1ЕВХ+ЕП1*4! в тех же программах требуется 2-байтовое поле режима адресации, поскольку для вычисления исполнительного адреса исходного операнда используются два регистра Во втором из этих байтов задается коэффициент масштабирования 4. Таким образом, для всех команд требуется три байта, с учетом байта для кода операции. Теперь рассмотрим команду МОЧ ПЖОКП РТК1ЕВР+Е31'4+П13рь10 Директива ассемблера ПЧ!гОКО РТК указывает, что непосредственно заданный операнд 10 имеет длину 32 бита. В других языках ассемблера размер операнда часто определяется мнемоническим обозначением команды.

Например, в языке процессора Мосого1а б8000, описанного вьппе в этой главе, команда МОЧЕ.В определяет 1-байтовый операнд, а команда МОЧЕ.Š— 4-байтовый. Если в команде задано 32-разрядное значение смещения П1БР, для ее кодирования требуется 11 байт: один байт для поля кода операпии, два — для поля режима адресации и по четыре байта для полей смещения и непосредственно заданного операнда. В табл. 3.3 указано, что смещение может иметь дину 8 или 32 бита. Его размер задается в первом из двух байтов поля режима адресации. Прн кодировании команд с двумя операндами спецификации регистровых операндов и операндов в памяти располагаются в строго определенном порядке, н регистровый операнд всегда задается первым.

Для различения команды МОЧ ЕАХ,1.ОСАТ1ОН которая загружает в регистр ЕАХ содержимое памяти по адресу ЕОСАТ1014, и команды МОЧ 1.ОСАТ1014,ЕАХ 3.18. Язык ассемблера 1Д-32 196 загружающей в память по адресу ЕОСАТ101т1 содержимое регистра ЕАХ, в поле кода операции содержится бит, который называется битам направления. Он указывает, какой из операндов является исходным. Правила кодирования полей кода операции и адресного режима в архитектуре 1А-32 довольно сложны, не всегда унифицированы и имеют множество исключений. И хотя это несколько затрудняет для компилятора использование всех возможностей системы команд и режимов адресации, архитектура 1А-32, без сомнения, обладает большой гибкостью.

В приложении Г приведен список команд 1А-32 с их краткими описаниями и руководство по вводу и выполнению программ на языке ассемблера на персональном компьютере. Представленные на рис. 3.40 программы демонстрируют принципы использования базовых элементов языка ассемблера 1А-32, связанные с определением кодов операции, адресацией и применением адресных меток. Как вы уже знаете из раздела 2.6.1, для определения областей данных программы и установления соответствия между символическими именами и реальными физическими значениями адреса существуют специальные директивы ассемблера. Полный текст ассемблерной программы, которую вы видите на рис. 3.40, б, приведен на рис. 3.42.

Ассемблерные директивы .г1ага и .сог1е определяют начало областей данных и кода (то есть команд) программы. Директива 1Н) выделяет в области данных 4-байтовое двойное слово. Х1)М1 — это метка, назначенная адресу первого из двойных слов, которые инициализированы значениями 17, 3, — 51, 242 н -113. Адресам следующих двух двойных слов, инициализированных значениями 5 и О, назначены метки Ы и 51)М.

.с1ага 1я"ыМ1 РР Х РР Я1М РР 17,3,-51,242,-113 5 О Лиректнвы ассемблера Код Команды, транслируемые в машинные команды Директивы ассемблера ЕЖЭ МА1л1 Рис. 3.42. Полный текст программы на языке ассемблера, приведенной на рис. 3.40, 6 3.1В. Язык ассемблера ! А-32 МА1г1: 1.ЕА Я1В < МОЪ' МОЪ' 5ТАкТАРР: АРР 1.ООР МОЪ' ЕВХ,ХБМ1 ЕВХ,4 ЕСХ,~н ЕАХ,О ЕАХ,[ЕВХ+ЕСХ~4] 5ТАЕТАРР Я3 М,ЕАХ 1Ва Глава 3. Системы команд процессоров АВМ, Могого1а и !пГе! Три символических имени, объявленных в разделе данных, используются в командах в разделе кода. В частности, метка МА1Х предназначена для определения точки начала выполнения программы, а также задается в ассемблерной директиве ЕХ1), которой заканчивается текстовый файл программы.

В ассемблере 1А-32 имеются и другие директивы. Одна из них, ЕЯ(1, как вы помните, описана в разделе 2.6.1. 3.19. Управление потоком выполнения программы Существует два способа отклонения программы от «прямолинейного курса». Первый из них (о нем рассказывается в разделе 3.22) — это вызов подпрограммы и возврат из нее.

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

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

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

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