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

Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (1186253), страница 73

Файл №1186253 Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005)) 73 страницаМаксимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (1186253) страница 732020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

ниже) производится с использованием ассемблерныхпредставлений. Поэтому два слова скажем о программировании наассемблере 8086 (MASM).Формат команд ассемблера. Текст исходной программы состоитиз операторов ассемблера, каждый из которых занимает отдельнуюстроку этого текста. Различают два типа операторов: инструкции идирективы. Первые при трансляции преобразуются в команды процессора, которые исполняются после загрузки в память загрузочного модуля программы, имеющего расширение .com или .ехе. Операторы второго типа управляют процессом ассемблирования — преобразования текста исходной программы в коды объектного модуля(расширение .obj).

Ассемблер интерпретирует и обрабатывает операторы один за другим, генерируя последовательность из командпроцессора и байтов данных.Общий формат оператора ассемблера имеет следующий вид:[Метка:]Код_операции[Операнд![,Операнд2]][;Комментарий],где элементы, указанные в квадратных скобках, могут отсутствовать.Пробелы вводятся произвольно, но минимум один пробел должен быть после кода операции.Метка — это идентификатор, присваиваемый первому байтутого оператора, в котором она появляется.Код_ операции — это мнемоническое обозначение соответствующих команд процессора.Операнды оператора ассемблера описываются выражениями.Выражения конструируются на основе операций над числовыми и4.3. Режимы процессора. Система команд процессоров 180x86...373текстовыми константами, метками и идентификаторами переменных с использованием знаков операций и некоторых зарезервированных слов.Ниже приведены все определенные в ассемблере операции.Порядок старшинства операций от высшей к низшей:LENGTH, SIZE, WIDTH, MASK, (), [].PTR, OFFSET, SEG, TYPE, THISОHIGH, LOW+ (унарная) , - (унарная)*, /, MOD, SHL, SHREQ,NE,LT,LE,GT,GENOTANDOR, XORSHORT,.TYPEСтаршинство операций определяет порядок, по которому будетвычисляться выражение.

Более старшие операции будут производиться раньше операций, имеющих меньшее старшинство.ПримечанияОперации, стоящие в одной строке, имеют равный приоритет. Операцииравного старшинства вычисляются слева направо.Операции, стоящие в скобках, выполняются первыми.Пример оператора ассемблера:10c_l: mov ax, (DAT_l+4) SHR 4 .Здесь использованы следующие операции ассемблера: ( ) , +И SHR.Вот примеры некоторых арифметических операторов:«+» Сложение(бинарное) или унарный плюсexpression! + expression2 (сложение)ИЛИ+ expression (унарный плюс)Бинарный «+» суммирует значения двух выражений, унарный —сохраняет знак и значение выражения.374Глава 4.

Персональные компьютерыПримечанияОператор сложения («+») может использоваться для прибавления целогочисла к операнду, перемещаемому в памяти. Операндом, перемешаемым в памяти, может быть только одно из выражений Оба выражения могут быть целымичисламиУнарная операция «+» обладает более высоким приоритетом, чем операторсложения«-» Вычитание (бинарное) или унарный минусexpression! - expression2(вычитание)ИЛИ- expression (унарный минус) .Бинарный «-» вычитает одно выражение из другого, унарный —изменяет знак выражения.Примечания.Операндами оператора вычитания могут быть целые числа или операнды,перемещаемые в памяти.

Если оба операнда являются адресами памяти, то онидолжны располагаться в одном и том же сегменте.Унарная операция «-» обладает более высоким приоритетом, чем операторвычитания.«*» Умножениеexpression! * expression2.Перемножает значения двух выражений.Примечания.Выражения должны быть целыми числами, и они не могут быть адресами,перемещаемыми в памяти.«/» Делениеexpressionl / expression2Делит одно выражение на другое.Примечания.Выражения должны быть целыми числами, они не могут быть адресами, перемещаемыми в памяти.«MOD» Деление по модулювыражение! MOD вьгражение2Выдает остаток от деления.4.3. Режимы процессора.

Система команд процессоров 180x86...375Примечания.Оба выражения должны быть целыми числами, они не должны быть настраиваемыми адресами.Например, 14 MOD 4 = 2, так как 14/4 дает остаток 2Оперативная память. Объем оперативной памяти 180X86 (здесь —8086) — 220 байт (1 Мбайт). Байты нумеруются, начиная с 0, номербайта называется его адресом. Для ссылок на байты памяти используются 20-разрядные адреса: от 0 0 0 0 0 до FFFFF (в шестнадцатеричной системе).Байт содержит 8 разрядов (битов), каждый из которых можетпринимать значение 1 или 0.

Разряды нумеруются справа налево отО до 7:16543210Байт — наименьшая адресуемая ячейка памяти. В 180X86 используются и более крупные ячейки — слова и двойные слова. Слово — это два соседних байта, размер слова — 16 бит (они нумеруются справа налево от 0 до 15). Адресом слова считается адрес его первого байта (с меньшим адресом); этот адрес может быть четным инечетным.

Двойное слово — это любые четыре соседних байта (двасоседних слова), размер такой ячейки — 32 бита; адресом двойногослова считается адрес его первого байта.Байты используются для хранения небольших целых чисел исимволов, слова — для хранения целых чисел и адресов, двойныеслова — для хранения «длинных» целых чисел и так называемых адресных пар (сегмент:смещение).Регистры.

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

п.). По назначению испособу использования регистры можно разбить на следующиегруппы:• регистры общего назначения (АХ, вх, ex, DX, ВР, si, DI, SP);• сегментные регистры (cs, DS, ss, ES);• счетчик команд (IP);• регистр флагов (Flags).376Глава 4. Персональные компьютерыРасшифровка этих названий:РегистрАббревиатураПереводАaccumulatorВbaseБазаСcounterСчетчикDdataДанныеВРbase pointerУказатель базыS!source indexИндекс источникаАккумулятор01destination indexИндекс приемникаSPstack pointerУказатель стекаCScode segmentСегмент командDSdata segmentСегмент данныхSSstack segmentСегмент стекаESextra segmentДополнительный сегментIPinstruction pointerСчетчик командРегистры общего назначения можно использовать во всех арифметических и логических командах.

В то же время каждый их нихимеет определенную специализацию (некоторые команды «работают» только с определенными регистрами). Например, команды умножения и деления требуют, чтобы один из операндов находился врегистре АХ или в регистрах АХ и DX (в зависимости от размера операнда), а команды управления циклом используют регистр сх в качестве счетчика цикла. Регистры вх и ВР очень часто используются какбазовые регистры, a si и DI — как индексные. Регистр SP обычноуказывает на вершину стека, аппаратно поддерживаемого в 180X86.Регистры АХ, вх, сх и DX конструктивно устроены так, что возможен независимый доступ к их старшей и младшей половинам;можно сказать, что каждый из этих регистров состоит из двух байтовых регистров, обозначаемых АН, AL, вн и т.

д. (н — high, старший; L — low, младший):РегистрАббревиатураСтарший полурегистрМладший полурегистрАккумуляторАХАНALБазаВХВНBLСчетчикСХСНCLДанныеDXDHDL15-015-87-0Разряды4.3. Режимы процессора. Система команд процессоров 180x86...377Таким образом, с каждым из этих регистров можно работать какс единым целым, а можно работать и с его «половинками». Например, можно записать слово в АХ, а затем считать только часть словаиз регистра АН или заменить только часть в регистре AL и т.

д. Такоеустройство регистров позволяет использовать их для работы как счислами, так и с символами.Все остальные регистры не делятся на «половинки», поэтомусчитать или записать их содержимое (16 битов) можно только целиком.Сегментные регистры CS, DS, SS и ES не могут быть операндаминикаких команд, кроме команд пересылки и стековых команд. Этирегистры используются только для сегментирования адресов.Счетчик команд IP всегда содержит адрес (смешение от началапрограммы) той команды, которая должна быть выполнена следующей (начало программы хранится в регистре CS).

Содержимое регистра I р можно изменить только командами перехода.Флаги. Имеется особый регистр флагов. Флаг — это бит, принимающий значение «1» (флаг установлен), если выполнено некотороеусловие, или «О» (флаг сброшен) в противном случае (табл. 4.3).В 180X86 используется 9 флагов, каждому из них присвоено определенное имя (ZF, CF и т. д.). Все они собраны в регистре флагов (каждый флаг — это один из разрядов регистра, часть его разрядов неиспользуется):Регистр флаговФлагиXх|XXOFDFIFTFSFZFXAFXPFXCFРазряды1514131211109876543210Некоторые флаги являются флагами условий; они автоматически меняются при выполнении команд и фиксируют те или иныесвойства их результата (например, равен ли он нулю).Другие флаги называются флагами состояний; они меняются изпрограммы и оказывают влияние на дальнейшее поведение процессора (например, блокируют прерывания).Представление чисел.

Здесь рассматривается машинное представление целых чисел, строк и адресов. Представление двоично-десятичных чисел, используемых достаточно редко, не рассматривается. Что касается вещественных чисел, то в 180X86 нет команд вещественной арифметики (операции над этими числами реализуютсяпрограммным путем или выполняются сопроцессором) и потому378Глава 4. Персональные компьютерыТаблица 4 3 Содержание регистра флаговФлаги условийCFcarry flagПринимает значение 1, если при сложении целых чиселпоявилась единица переноса, не укладывающаяся в разрядную сетку, или если при вычитании чисел без знака первоеиз них было меньше второго В командах сдвига в CF заносится бит, вышедший за разрядную сетку CF фиксируеттакже особенности команды умноженияФлаг переносаУстанавливается в 1 , если при сложении или вычитании целых чисел со знаком получился результат, по модулю преФлаг переполнениявосходящий допустимую величину (произошло переполнение мантиссы и она «залезла» в знаковый разряд)OFoverflow flagZFzero flagФлаг нуляУстанавливается в 1 , если результат команды оказался равным 0SFsign flagФлаг знакаУстанавливается в 1 , если в операции над числами со знаками получился отрицательный результатPFparity flagФлаг четностиРавен 1 , если результат очередной команды содержит четное количество двоичных единиц Учитывается обычнотолько при операциях ввода-выводаAF auxiliary carry flagФлаг дополнитель- Фиксирует особенности выполнения операций над двоичного переносано десятичными числамиФлаги состоянийDFdirection flagУстанавливает направление просмотра строк в строковыхФлаг направления командах при DF = 0 строки просматриваются «вперед» (отначала к концу), при DF = 1 - в обратном направленииIFinterrupt (lagФлаг прерыванийTFtrap flagПри IF = 0 процессор перестает реагировать на поступающие к нему прерывания, при IF = 1 блокировка прерыванийснимаетсяПри TF = 1 после выполнения каждой команды процессорФлаг трассировки делает прерывание (с номером 1), чем можно воспользоваться при отладке программы для ее трассировкинет стандартного представления вещественных чисел.

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

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

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