Главная » Просмотр файлов » Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004)

Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004) (1186255), страница 90

Файл №1186255 Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004) (Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004)) 90 страницаПопов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004) (1186255) страница 902020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В то же время каждый их нихимеет определенную специализацию (некоторые команды "работают"только с определенными регистрами). Например, команды умножения иделения требуют, чтобы один из операндов находился в регистре AXили в регистрах AX и DX (в зависимости от размера операнда), акоманды управления циклом используют регистр CX в качествесчетчика цикла.

Регистры BX и BP очень часто используются какбазовые регистры, а SI и DI - как индексные. Регистр SP обычноуказывает на вершину стека, аппаратно поддерживаемого в I80Х86.458Регистры AX, BX, CX и DX конструктивно устроены так, чтовозможен независимый доступ к их старшей и младшей половинам;можно сказать, что каждый из этих регистров состоит из двух байтовыхрегистров, обозначаемых AH, AL, BH и т.д.

(H - high, старший; L - low,младший):РегистрАккумуляторБазаСчетчикДанныеРазрядыAXСтаршийполурегистрAHМладшийполурегистрALBXCXDX15-0BHCHDH15-8BLCLDL7-0Таким образом, с каждым из этих регистров можно работать как сединым целым, а можно работать и с его "половинками". Например,можно записать слово в AX, а затем считать только часть слова изрегистра AH или заменить только часть в регистре AL и т.д. Такоеустройство регистров позволяет использовать их для работы и счислами, и с символами.Все остальные регистры не делятся на "половинки", поэтомусчитать или записать их содержимое (16 битов) можно только целиком.Сегментные регистры CS, DS, SS и ES не могут быть операндаминикаких команд, кроме команд пересылки и стековых команд.

Этирегистры используются только для сегментирования адресов.459Счетчик команд IP всегда содержит адрес (смещение от началапрограммы) той команды, которая должна быть выполнена следующей(начало программы хранится в регистре CS). Содержимое регистра IPможно изменить только командами перехода.Флаги. Имеется особый регистр флагов.Флаг - это бит,принимающий значение 1 ("флаг установлен"),если выполненонекоторое условие, и значение 0 ("флаг сброшен") в противном случае.В I80Х86 используется 9 флагов, каждому из них присвоеноопределенное имя (ZF, CF и т.д.).

Все они собраны в регистре флагов(каждый флаг - это один из разрядов регистра, часть его разрядов неиспользуется):x|xxOF DF IFTFSFZFx AF x PFx CF151413121187651РазрядыФлагиx1094604320Некоторые флаги являются флагами условий; они автоматическименяются при выполнении команд и фиксируют те или иные свойстваих результата (например, равен ли он нулю).Другие флаги называются флагами состояний; они меняются изпрограммы и оказывают влияние на дальнейшее поведение процессора(например, блокируют прерывания).CFOFZFSFPFAFDFIFTFФлаги условийcarry flag флагПринимает значение 1, если при сложении целыхпереноса чисел появилась единица переноса, не"влезающая" в разрядную сетку, или если привычитании чисел без знака первое из них быломеньше второго. В командах сдвига в CFзаносится бит, вышедший за разрядную сетку.CF фиксирует также особенности командыумножения.overflow флагУстанавливается в 1, если при сложении илиflagперепол- вычитании целых чисел со знаком получилсянениярезультат,помодулюпревосходящийдопустимуювеличину(произошлопереполнение мантиссы и она "залезла" взнаковый разряд).zero flag флагУстанавливается в 1, если результат командынуляоказался равным 0.sign flag флагУстанавливается в 1, если в операции надзнакачислами со знаками получился отрицательныйрезультат.parityфлагРавен 1, если результат очередной командыflagчетности содержит четное количество двоичных единиц.Учитывается обычно только при операцияхввода-вывода.auxiliary флагФиксирует особенности выполнения операцийcarry flag дополнад двоично-десятичными числами.нительногопереносаФлаги состоянийdirection флагУстанавливает направление просмотра строк вflagнаправстроковых командах:при DF=0 строкиленияпросматриваются "вперед" (от начала к концу),при DF=1 - в обратном направлении.interrupt флагПри IF=0 процессор перестает реагировать наflagпрерыва- поступающие к нему прерывания, при IF=1нийблокировка прерываний снимается.trap flag флагПри TF=1 после выполнения каждой командытрассипроцессор делает прерывание (с номером 1), чемровкиможно воспользоваться при отладке программыдля ее трассировки.461Представление данных.

Арифметические операцииЗдесь рассматривается машинное представление целых чисел,строк и адресов.Представление двоично-десятичных чисел,используемых достаточно редко, не рассматривается. Что касаетсявещественных чисел, то в I80Х86 нет команд вещественной арифметики(операции над этими числами реализуются программным путем иливыполняются сопроцессором) и потому нет стандартного представлениявещественных чисел.Кроме того, рассматриваются некоторыеособенности выполнения арифметических операций.Шестнадцатеричные числа записываются с буквой h на конце,двоичные числа - с буквой b (так принято в MASM).Представление целых чисел. В общем случае под целое числоможно отвести любое число байтов, однако система команд I80Х86поддерживает только числа размером в байт и слово и частичноподдерживает числа размером в двойное слово.

Именно эти форматы ибудут рассмотрены.В I80Х86 делается различие между целыми числами без знака(неотрицательными) и со знаком. Это объясняется тем, что в ячейкаходного и того же размера можно представить больший диапазон чиселбез знаков, чем чисел со знаком, и если известно заранее, что некотораячисловая величина является неотрицательной, то выгоднеерассматривать ее как величину без знака, чем как величину со знаком.Целые числа без знака.

Эти числа могут быть представлены в видебайта, слова или двойного слова - в зависимости от их размера. В видебайта представляются целые от 0 до 255 (=28-1), в виде слова - целые от0 до 65535 (=216-1), в виде двойного слова - целые от 0 до 4 294 967 295(=232-1). Числа записываются в двоичной системе счисления, занимаявсе разряды ячейки.Например, число 130 записывается в виде байта 10000010b (82h).Числа размером в слово хранятся в памяти в "перевернутом"виде:младщие (правые) 8 битов числа размещаются в первом байтеслова, а старшие 8 битов - во втором байте (в 16-ричной системе: двеправые цифры - в первом байте, две левые цифры - во втором байте).Например, число 130 (=0082h) в виде слова хранится в памяти так:8200Однако в регистрах числа хранятся в нормальном виде:AX0082AHAL462Перевернутое представление используется и при хранении впамяти целых чисел размером в двойное слово: в первом его байтеразмещаются младшие 8 битов числа, во втором байте - предыдущие 8битов и т.д.

Например, число 12345678h хранится в памяти так:78563412Другими словами, в первом слове двойного слова размещаютсямладшие (правые) 16 битов числа, а во втором слове - старшие 16 битов,причем в каждом из этих двух слов в свою очередь используется"перевернутое" представление.Такое необычное представление чисел объясняется тем, что впервых моделях I80Х86 за раз можно было считать из памяти толькоодин байт и что все арифметические операции над многозначнымичислами начинаются с действий над младшими цифрами, поэтому изпамяти в первую очередь надо считывать младшие цифры, если сразунельзя считать все цифры.

Учитывая это, в первых I80Х86 и сталиразмещать младшие цифры числа перед старшими цифрами, а радипреемственности такое представление чисел сохранили в последующихмоделях I80Х86.Конечно, "перевернутое" представление неудобно для людей,однако при использовании языка ассемблера это неудобство нечувствуется: в MASM все числа записываются в нормальном,неперевернутом виде (см.

ниже).Целые числа со знаком. Эти числа также представляются в видебайта, слова и двойного слова. В виде байта записываются числа от 128 до 127, в виде слова - числа от -32768 до 32767, а в видедвойного слова - числа от -2147483648 до 2147483647. При этом числазаписываются в дополнительном коде: неотрицательное числозаписывается так же, как и число без знака (т.е. в прямом коде), аотрицательное число -x (x>0) представляется как число без знака 28 - x(для байтов), 216 - x (для слов) или 232-x (для двойных слов).Например, дополнительным кодом числа -6 является байт FAh(=256-6), слово FFFAh или двойное слово FFFFFFFAh.

При этом байт10000000b (=80h) трактуется как -128, а не как +128 (слово 8000hпонимается как -32678), поэтому левый бит дополнительного кодавсегда играет роль знакового: для неотрицательных чисел он равен 0,для отрицательных - 1.Числа со знаком размером в слово и двойное слово записываютсяв памяти в "перевернутом" виде (при этом знаковый бит оказывается впоследнем байте ячейки). Но в MASM эти числа, как и беззнаковые,записываются в нормальной форме.Иногда число-байт необходимо расширить до слова, т.е.

нужнополучить такое же по величине число,но размером в слово.Существует два способа такого расширения - без знака и со знаком. В463любом случае исходное число-байт попадает во второй (до"переворачивания") байт слова, а вот первый байт заполняется поразному: при расширении без знака в него записываются нулевые биты(12h -> 0012h),а при расширении со знаком в первый байтзаписываются нули, если число-байт было неотрицательным, изаписывается восемь двоичных единиц в противном случае (81h ->FF81h).

Другими словами, при расширении со знаком в первом байтеслова копируется знаковый разряд числа-байта.Аналогично происходит расширение числа-слова до двойногослова.Особенности выполнения арифметических операций. В I80Х86имеются команды сложения и вычитания целых чисел размером в словои байт. Специальных команд для сложения и вычитания двойных словнет, эти операции реализуются через команды сложения и вычитанияслов. Сложение и вычитание беззнаковаых чисел производится помодулю 28 для байтов и 216 для слов. Это означает, что если врезультате сложения появилась единица переноса, не вмещающаяся вразрядную сетку, то она отбрасывается. Например, при сложении байтов128 и 130 получается число 258 = 100000010b, поэтому левая двоичнаяединица отбрасывается и остается число 2 = 10b, которое и объявляетсярезультатом сложения.Ошибка здесь не фиксируется, но в флаг переноса CFзаписывается 1 (если переноса не было, в CF заносится 0).

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

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

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