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

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

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

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

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

70 Глава 2. Машинные команды и программы 2.4.6. Флаги кодов условий Процессор отслеживает результаты выполнения различных операций и сохраняет их для использования в последующих инструкциях условного перехода. Эту информацию он записывает в специальные биты, называемые флагами кодов условий. В зависимости от результата выполненной операции отдельные флаги устанавливаются в 1 или О.

Назовем четыре наиболее распространенных флага; + И (пейаГ!че) — устанавливается в 1, если результат отрицателен; в противном случае очищается (то есть устанавливается в 0); + Е (хего) — устанавливается в 1, если результат равен 0; в противном случае очищается; + Ч (очегйо») — устанавливается в 1, если в результате арифметической операции произошло переполнение; в противном случае очищается; + С (сюту) — устанавливается в 1, если в ходе операции был выполнен перенос; в противном случае очищается. Флаги Х и Х указывают, является результат арифметической операции отрицательным или нулевым.

Кроме арифметических команд на эти флаги могут воздействовать команды, выполняющие пересылку данных, такие как Моче, 1оад и Згоге, благодаря чему ветвление может быть выполнено с учетом знака и значения перемещенного операнда. В некоторых компьютерах имеется также специальная команда Тезц анализирующая значение в регистре или в памяти компъютера и устанавливающая либо очищающая флаги й1 и Е в соответствии с этими значениями. Флаг Ч указывает на то, что произошло переполнение. Как вы помните, переполнение происходит, когда результат арифметической операции превышает значение, которое можно представить с помощью количества битов, выделенного операнду. Процессор устанавливает флаг Ч для того, чтобы программист мог определить, что произошло переполнение,и перейти к подпрограмме, способной исправить данную ошибку.

Для этой цели используются команды, подобные команде ВгапсЫ10чегйо». Кроме того, как будет показано в главе 4, в результате установки бита у может автоматически выполняться программное прерывание, позволяющее решить эту проблему средствами самой операционной системы. Флаг С устанавливается в 1, если в ходе арифметической операции осуществляется перенос из позиции старшего бита. Этот флаг позволяет выполнять арифметические операции над операндами, длина которых больше длины слова процессора. Такие операции реализуются в арифметике с многократно увеличенной точностью. Более подробно о них рассказывается в главе б. Примером команды условного перехода, проверяющей один или более флагов условий, может служить команда Вгапсй>0, описанная в разделе 2А.5. Она выполняет переход к другой точке программы в том случае, если проверяемое значение не отрицательно и не равно нулю.

Это означает, что переход возможен, если ни Х, ни Е не равен 1. Существует и множество других команд условного перехода„позволяющих проверять самые разнообразные условия. Задаются такие условия в виде логических выражений, включающих флаги их кодов. В некоторых компьютерах флаги кодов условий автоматически устанавливаются командами, которые выполняют арифметические и логические операции. 2.5.

Режимы адресации 71 Однако это не всегда так. Многие компьютеры поддерживают две версии команды Адд. Одна из них, А<И, не воздействует на флаги, а другая, АддбегСС, воздействует. Благодаря этому программисты и компиляторы могут проявлять большую гибкость при создании программ, предназначенных для конвейерного выполнения (см.

главу 8). 2.4.7. Формирование адресов памяти Давайте вернемся к рис. 2.10. Задачей блока команд, составляющих цикл ЕООР, является прибавление очередного числа иэ списка к значению регистра ВО на каждом шаге цикла. Для этого в команде А<Ы, находящейся внутри блока, каясдый раз должен указываться новый адрес слагаемого. Как же задается этот адрес? Совершенно очевидно, что задавать его непосредственно невозможно — для этого нам пришлось бы на каждом шаге цикла модифицировать команду А<Ы. Одним нз возможных вариантов решения данной проблемы является использование для хранения адреса операнда регистра процессора В1. Перед началом цикла в указанный регистр загружается адрес Х()М1, и затем на каждом шаге цикла это значение увеличивается на 4.

С описанной ситуацией (и ей подобными) очень часто приходится сталкиваться в программах, следовательно, необходимы гибкие способы адресации операндов. Обычно система команд компьютера поддерживает множество таких способов, называемых режимами адресации. Их общая идея одинакова для всех компьютеров, хотя детали могут и различаться. Этой теме посвящен наш следующий раздел. 2.5. Режимы адресации Итак, мы рассмотрели несколько простых примеров программ на языке ассемблера.

Если говорить в общем, каждая программа обрабатывает данные, хранящиеся в памяти компьютера. Эти данные могут быть организованы разными способами. В том случае, если мы будем работать, скажем, с именами студентов, их можно хранить в виде списка. Если же с каждым именем нужно связать дополнительную информацию (например, номера телефонов или оценки по различным предметам), информацию имеет смысл организовать в виде таблицы. Для представления данных, используемых в вычислениях, программисты обычно применяют стандартные способы их органиэации, называемые структурами данных.

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

При этом используются различные способы задания местоположения операндов команд, называемые режимами адресации. В данном разделе рассматриваются наиболее важные режимы адресации, поддерживаемые современными процессорами. Их общий список приведен в табл. 2.1. 72 Глава 2. Машинные команды и программы Таблица 2.1. Стандартные ремнмы адресации Синтаксис на языке ассемблера Описание Адресация Непосредственная (ишпег[1ате) Регистровая (гефлгег) Абсолютная, прямая (аЬзо1пге, Йгесг) Косвенная (1пгйгесГ) Операнд - Значение №Значение ЕА- И ЕА - ЕОС 1.ОС (И) (1 ОС) Х(И) ЕА - [И[ ЕА = [1.0С[ ЕА - [К1[ + Х Индексная (1пс$ех) Базовая индексная (Ьзле, 1пг1ел) Базовая индексная са смещением (Ъале, 1пг[ех, оЪес) Относительная (ге)апче) Аптоннкремептная (апго1псгешепг) Автодекремептпая (аптопесгешепт) ЕА- [И)+ Щ[ ЕА - [И) э [И[ .ь Х Х(И,К() Х(РС) ЕА" [РС) э Х (Кг)+ ЕА - [К1[ Автоувелячение И Автоуменьшение Кй ЕА - [И[ -(Кг) ЕА — исполнительный адрес (е((есь1че агЫгевз) Значение — зто число со знаком 2.5.1.

Реализация переменных и констант Моче ЕОС,К2 Переменные и константы — это простейшие виды данных, используемые в любой компьютерной программе. Для создания переменной в языке ассемблера резервируется регистр или место памяти, где будет храниться ее значение. В дальнейшем это значение может изменяться с помощью соответствующих команд. В программах, упоминаемых в разделе 2.4, для доступа к переменным использовались только два режима адресации. Мы обращались к операндам по именам регистров или по их адресам в памяти. Приведем точное определение этих двух режимов адресации.

Регистровая адресация — это режим, в котором операнд является содержимым регистра процессора; в команде задается имя (адрес) регистра. Абсолютная адресация — зто режим, в котором операнд хранится в памяти; его адрес в памяти задается непосредственно в команде. (В некоторых языках ассемблера данный режим адресации называется прямым.) В следующей команде используются оба режима адресации: 2.5. Режимы атшесации ?3 Если для временного хранения данных задействуются регистры процессора, режим адресации этих данных называется регистровым.

Абсолютный режим может использоваться для представления глобальных переменных программы. Например, встретив объявление 1птейег А,В; в программе на языке высокого уровня, компилятор выделит адреса памяти для переменных А и В. Теперь, если в программе будут встречаться ссылки на указанные переменные, компилятор сможет генерировать команды на языке ассемблера с абсолютными адресами этих переменных. Перейдем к константам. Адреса и данные констант могут быть представлены на языке ассемблера с использованием непосредственной адресации.

Непосредственная едресеция — зто режим, в котором операнд задается в команде явно. Так, команда Моче 200,КО помещает значение 200 в регистр КО. Вы, конечно же, понимаете, что непосредственная адресация может применяться только для задания значения исходного операнда. В языке ассемблера для обозначения непосредственной адресации предназначен не нижний регистр (мы воспользовались им лишь для наглядности), а символ «№» перед значением, применяемым в качестве непосредственного операнда.

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

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

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

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