Главная » Просмотр файлов » Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера (1127755), страница 143

Файл №1127755 Э. Таненбаум - Архитектура компьютера (Э. Таненбаум - Архитектура компьютера) 143 страницаЭ. Таненбаум - Архитектура компьютера (1127755) страница 1432019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

ЖЙ1 ! Й1 = старшие биты адреса И Жй2. ЕЖЙ1+ЖЕО(И)1 ! резервирование 4 байт г и их инициализация значениеи 3 ! резервирование 4 байт ! и их инициализация значениеи 4 ! резервирование 4 бай» ! и их инициализация значениеи 0 Знакомство с ассемблером 563 после меток команд, но не после меток данных. Данное различие вовсе не является чем-то фундаментальным, просто у разработчиков разных ассемблеров разные вкусы. Архитектура машины никак не влияет на тот или иной выбор. Единственное достоинство двоеточия состоит в том, что метку можно написать на отдельной строке, а код операции — на следующей строке с тем же отступом, что и метка. Без двоеточия компилятору невозможно было бы отличить метку от кода операции при их размещении в отдельных строках.

В некоторых ассемблерах длина метки ограничена значением 6 или 8 символов. В то же время в большинстве языков высокого уровня длина имен произвольна. Длинные и хорошо подобранные имена упрощают чтение и понимание программы. В каждой машине есть несколько регистров, но названия у них совершенно разные. Регистры Репг)пш 4 называются ЕАХ, ЕВХ, ЕСХ и т. д., регистры Мосого1а — Е)0, Е)1, Е)2, регистры БРАКС имеют несколько названий. В этой книге для их обозначения мы будем использовать символы Ж1 и Фк2. В поле кода операции содержится либо символическая аббревиатура этого кода (если оператор является символическим представлением машинной команды), либо команда самого ассемблера.

Выбор имени — дело вкуса, и поэтому разные разработчики называют их по-разному. Разработчики ассемблера 1пге! решили использовать обозначение МОЧ и для загрузки регистра из памяти и сохранения регистра в память, разработчики ассемблера Могого1а выбрали для обеих операций обозначение МОЧЕ, а разработчики ассемблера БРАКС решили использовать символы ЕО для первой операции и 5Т для второй. Очевидно, что выбор названий в данном случае никак не связан с архитектурой машины.

Напротив, необходимость указывать две машинные команды для доступа к памяти объясняется архитектурой БРАКС, поскольку виртуальные адреса могут быть 32-разрядными (как в 8РАКС версии 8) и 44-разрядными (как в БРАКС версии 9), а команды могут содержать максимум 22 бита данных. Следовательно, чтобы передать все биты полного виртуального адреса, всегда требуются две команды. Например: 5ЕТН1 $Н111) да1 Эта команда обнуляет старшие 32 бита и младшие 10 бит 64-разрядного регистра К1, а затем помещает старшие 22 бита 32-разрядного адреса переменной 1 в битовые позиции с 10 по 31 регистра К1.

Далее: гэРМ1+Мыл(1))да1 Эта команда складывает 21 и младшие 10 бит адреса [ (в результате получается полный адрес 1), вызывает данное слово из памяти и помещает его в регистр к1. Указанные команды, прямо скажем, не слишком элегантны, однако разработчики БРАКС не гнались за красотой. Перед ними была поставлена задача обеспечить высокую скорость исполнения, и они успешно ее решили. Процессоры семейства Репг)пш, 680хО и ВРАТ позволяют работать с операндами разной длины (размером с байт, слово и длинное слово).

Каким образом ассемблер определяет, какова длина операндов? И опять разработчики разных ассемблеров приняли разные решения. В Репгшш 4 регистры разной длины имеют разные названия. Так, для перемещения 32-разрядных значений исполь- 564 Глава 7. Уровень ассемблера Директивы Ассемблерная программа определяет не только машинные команды, которые нужно выполнять процессору, но и команды, которые нужно выполнять самому ассемблеру (например, выделить немного памяти или выдать новую страницу листинга).

Команды для ассемблера называются псевдокомандамн, нли ассемблерными директивами. В листинге 7.1 мы уже встречали типичную псевдокоманду 00. В табл. 7.2 перечислены некоторые другие псевдокоманды (директивы). Они взяты из ассемблера МАЯМ семейства ассемблеров 1пге!. Таблица 7.2.

Некоторые директивы ассемблера МАЯМ Яиректива Описание ВЕВМЕНТ Начало нового сегмента (текста, данных и т. и.) с определенными атрибутами ЕНОЗ Завершение текущего сегмента Управление выравниванием следующей команды или данных Определение нового символа, равного данному выражению Вьщеление памяти для одного или нескольких байтов Выделение памяти для одного или нескольких 1В-разрядных полуслов Выделение памяти для одного или нескольких 32-разрядных слов АЫВМ Е00 ОВ ОУУ 00 зуется название ЕАХ, для 16-разрядных — АХ, а для 8-разрядных — А1. и АН. Разработчики ассемблера Могого1а решили прибавлять к каждому коду операции суффикс .

Е для типа 1опо, .'т1 — для типа иогб и .  — для типа Ьусе. В ЯРАКС для операндов разной длины используются разные коды операций, например, для загрузки байта, полуслова и слова в 64-разрядный регистр указываются коды операций 005В, Е05Н и 1.05И соответственно. Как видите, природа языков совершенно произвольна. Три ассемблера, которые мы рассматриваем, различаются способом резервирования пространства для данных.

Разработчики ассемблера 1пге! выбрали для этой операции название 00 (Пебпе ПопЫе — определить двойное слово), поскольку слово процессора 8088 имело длину 8 бит. В Могого1а используется аббревиатура 0С (Пейпе Сопзгапг — определить константу). Разработчики ЯРАКС с самого начала предпочли название .НОЕВ. И снова различия абсолютно случайны. В поле операндов оператора задаются адреса и регистры, которые являются операндами машинной команды. В поле операндов команды целочисленного сложения указывается, что и к чему нужно прибавить. Поле операндов команд перехода определяет, куда совершается переход.

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

Ассемблерная программа без таких комментариев— нечто совершенно невразумительное (даже для ее автора). Комментарии могут быть полезны только людям и никак не влияют на работу программы. Знакомство с ассемблером 555 директива Описание ОО РНОС ЕНОР Е1.ВЕ ЕНО1Г СОММЕНТ РАВЕ ЕНО Директива 5Е6МЕМТ начинает новый сегмент, а директива ЕМ05 завершает его. Разрешается начинать текстовый сегмент, затем начинать сегмент данных, затем переходить обратно к текстовому сегменту и т.

д. Директива АЕ16М передает следующую строку (обычно данные) по адресу, заданному аргументом директивы. Например, если текуший сегмент уже содержит 61 байт данных, тогда после выполнения директивы АЕ16М 4 следующим выделяемым адресом будет адрес 64. Директива Е00 дает символическое название некоторому выражению. Например, после следующей директивы символ ВА5Е можно использовать в программе вместо значения 1000: ВАВЕ Е00 1000 Выражение, которое следует за директивой Е00, может содержать несколько символов, соединенных знаками арифметических и других операций, например: 01М1Т Е00 4 * ВЯ5Е + 2000 Большинство ассемблеров, в том числе МАЯМ, требуют, чтобы символ был определен в программе до его появления в таком выражении, как зто. Директивы 0В, 00, 0М и 00 выделяют память для одной или нескольких переменных размером 1, 2, 4 и 8 байт соответственно.

Например: ТРВЕЕ ВВ П . 23. 49 Эта директива выделяет место для 3 байт и присваивает им начальные значения 11, 23 и 49 соответственно, кроме того, она определяет символ ТАВЕЕ, равный тому адресу, по которому хранится значение 11. МАСВО ЕНОМ РПВЫС ЕХТЕНН 1НСШОЕ Выделение памяти для одного или нескольких В4-разрядных двойных слов Начало процедуры Завершение процедуры Начало макроса Завершение макроса Экспорт имени, определенного в данном модуле Импорт имени из другого модуля Вызов другого файла и включение его в текущий файл Начало условного ассемблирования программы на основе данного выражения Начало условного ассемблирования программы, если условие для директивы 1Г не выполнено Завершение условного ассемблирования программы Определение нового символа начала поля комментариев Принудительный разрыв страницы в листинге Завершение ассемблерной программы 566 Глава 7.

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

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

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

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