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

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

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

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

Этот режим реализуется в рамках защищённогорежима (процессор может переключиться в виртуальный режим толькоиз защищённого режима). В виртуальном режиме процессор способенвыполнять программы, составленные для процессора i8086, находясь взащищённом режиме и используя аппаратные средства защищённогорежима: мультизадачность, изолирование адресных пространствотдельных задач друг от друга, страничная виртуальная память.Представление данных, система команд реального режимапроцессоров i80x86.

Интерпретация в терминах Ассемблера (MASM)Рассмотрим основные принципы функционирования процессоровi80x86 в реальном режиме.Реальный режим процессоров 80x86 — это режим генерированияадресов, используемый процессором 8086. В этом режиме не можетбыть использована виртуальная память. Можно адресовать лишь до 1Мбайт (220 байт) оперативной памяти, так у процессора 8086 20разрядная шина адреса. Так как все регистры процессора 8086 являются16-разрядными, для представления 20-разряднрго физического адресапамяти используется содержимое нескольких 16-разрядных регистров.Оперативную память при работе в этом режиме можно разбить налогические блоки по 64 Кбайт, называемые сегментами, причем каждыйсегмент может начинаться с адреса, кратного 16 байт.

Таким образом,первый сегмент имеет начальный адрес 0, второй находится по адресу16 (или 10 в 16-тиричной системе) и т.д. Несколько близкорасположенных сегментов могут перекрываться. Это удобно приорганизации совместного доступа к командам и данным разнымипрограммами. Доступ к каждой ячейке в памяти происходит путемуказания значения регистра сегмента (см. ниже), определяющего блокразмером 64 Кбайт и положения, или смещения, этого адреса внутриэтого блока. Микропроцессор использует четыре регистра сегмента, приэтом каждый регистр имеет размер, равный одному слову (16 бит):— регистр сегмента команд CS (Code Segment), указывающий насегмент, содержащий текущую исполняемую программу;453— регистр сегмента данных DS (Data Segment), указывающий наданные;— регистр дополнительного сегмента ES (Extra Segment), указывающийна дополнительные данные;— регистр сегмента стека SS (Stack Segment), указывающий на стек.У процессора 80386 и старше есть еще два сегментных регистра —FS и GS.Содержимое каждого из этих регистров однозначно связано сместом в памяти соответствующего сегмента.

Его адрес получаетсяприписыванием справа четырех двоичных нулей к значению сегмента,что соответствует умножению на 16 (или на 10 по основанию 16).Полученное 20-битовое значение представляет собой адрес начала (илибазовый адрес) сегмента в физической памяти. Для определенияреального адреса команды или данных процессор добавляет затемзначение смещения к базовому адресу.Например, команда, подлежащая исполнению процессором вкаждый данный момент времени, определяется из значений двухрегистров: регистра CS, значение которого, будучи умножено на 16,дает адрес начала сегмента команд и регистра указателя команд IP(Instruction Pointer), указывающего положение соответствующейкоманды относительно начала сегмента команд.В реальном режиме не существует никакого механизма защиты,так что любая программа может обратиться к произвольной ячейкепамяти в пределах 1 Мбайт, включая область экрана или областьрасположения операционной системы.

Выделим два основныхнедостатка схемы адресации памяти реального режима:454ограниченное адресное пространство (до 1 Мбайта и ещепримерно 64 Кбайта старшей области памяти для процессоров 80286 истарше);свободный доступ любых программ к любым областям данных,что представляет потенциальную опасность для целостностиоперационной системы.Описание форматов команд, данных, структуры памяти ипроцессора ниже производится с использованием ассемблерныхпредставлений. Поэтому два слова скажем о программировании наассемблере 8086.Текст исходной программы состоит из операторов ассемблера,каждый из которых занимает отдельную строку этого текста. Различаютдва типа операторов: инструкции и директивы. Первые при трансляциипреобразуются в команды процессора, которые исполняются послезагрузки в память загрузочного модуля программы, имеющегорасширение .COM или .EXE .

Операторы второго типа управляютпроцессом ассемблирования - преобразования текста исходнойпрограммы в коды объектного модуля (расширение .OBJ). Ассемблеринтерпретирует и обрабатывает операторы один за другим, генерируяпоследовательность из команд процессора и байтов данных.Общий формат оператора ассемблера имеет следующий вид:[Метка:]Код_операции[Операнд1[,Операнд2]][;Комментарий],где элементы, указанные в квадратных скобках, могутотсутствовать.Пробелы вводятся произвольно, но минимум один пробел долженбыть после кода операции.Метка - это идентификатор, присваиваемый первому байту тогооператора, в котором она появляется.Код_операции - это мнемоническое обозначение соответствующихкоманд процессора.Операнды оператора ассемблера описываются выражениями.Выражения конструируются на основе операций над числовыми итекстовыми константами, метками и идентификаторами переменных сиспользованием знаков операций и некоторых зарезервированных слов.Ниже приведены все определенные в ассемблере операции.Порядок старшинства операций от высшей к низшей:LENGTH, SIZE, WIDTH, MASK, (), [], <>.PTR, OFFSET, SEG, TYPE, THISHIGH, LOW+ (unary), - (unary)*, /, MOD, SHL, SHR+, EQ, NE, LT, LE, GT, GENOTAND455OR, XORSHORT, .TYPEСтаршинство операций определяет порядок, по которому будетвычисляться выражение.

Более старшие операции будут производитьсяраньше операций, имеющих меньшее старшинство.Примечания:Операции, стоящие в одной строке, имеют равный приоритет.Операции равного старшинства вычисляются слева направо.Операции, стоящие в скобках, выполняются первыми.Пример оператора ассемблера: l0c_1: mov ax,(DAT_1+4) SHR 4,здесь использованы следующие операции ассемблера: ( ), + и SHR.Вот примеры некоторых арифметических операторов+ Сложение (бинарное) или унарный плюсexpression1 + expression2(сложение)или+ expression(унарный плюс)Бинарный "+" суммирует значения двух выражений. Унарный "+"сохраняет знак и значение выражения.Примечания:Оператор сложения ('+') может использоваться для прибавленияцелого числа к операнду, перемещаемому в памяти.

Операндом,перемещаемым в памяти, может быть только одно из выражений. Обавыражения могут быть целыми числами.Унарная операция '+' обладает более высоким приоритетом, чемоператор сложения. Смотри 'Старшинство операций', где описанпорядок старшинства операций.- Вычитание (бинарное) или унарный минусexpression1 - expression2 (вычитание)или- expression (унарный минус).Бинарный "-" вычитает одно выражение из другого.Унарный "-"изменяет знак выражения.Примечания:Операндами оператора вычитания могут быть целые числа илиоперанды, перемещаемые в памяти.

Если оба операнда являются адресами памяти, то они должны располагаться в одном и том жесегменте.Унарная операция '-' обладает более высоким приоритетом, чемоператор вычитания. Смотри 'Старшинство операций', где описанпорядок старшинства операций.* Умножениеexpression1 * expression2 .Перемножает значения двух выражений.Примечания:456Выражения должны быть целыми числами.

Они не могут бытьадресами, перемещаемыми в памяти./ Делениеexpression1 / expression2Делит одно выражение на другое.Примечания:Выражения должны быть целыми числами. Они не могут бытьадресами, перемещаемыми в памяти.MOD Деление по модулювыражение1 MOD выражение2Выдает остаток от деления.Примечания:Оба выражения должны быть целыми числами. Они не должныбыть настраиваемыми адресами.Например, 14 MOD 4 = 2, т.к. 14 / 4 дает остаток 2.Оперативная памятьОбъем оперативной памяти I80Х86 (здесь - 8086)- 220 байтов (1Мб). Байты нумеруются начиная с 0, номер байта называется егоадресом. Для ссылок на байты памяти используются 20-разрядныеадреса: от 00000 до FFFFF (в 16-ричной системе).Байт содержит 8 разрядов (битов), каждый из которых можетпринимать значение 1 или 0.

Разряды нумеруются справа налево от 0 до7:7 6 5 4 3 2 1 0Байт - это наименьшая адресуемая ячейка памяти. В I80Х86используются и более крупные ячейки - слова и двойные слова. Слово это два соседних байта, размер слова - 16 битов (они нумеруются справаналево от 0 до 15). Адресом слова считается адрес его первого байта (сменьшим адресом); этот адрес может быть четным и нечетным.Двойное слово - это любые четыре соседних байта (два соседнихслова), размер такой ячейки - 32 бита; адресом двойного слова считаетсяадрес его первого байта.Байты используются для хранения небольших целых чисел исимволов, слова - для хранения целых чисел и адресов, двойные слова для хранения "длинных" целых чисел и т.н.

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

По назначению испособу использования регистры можно разбить на следующие группы:— регистры общего назначения (AX, BX, CX, DX, BP, SI, DI, SP);— сегментные регистры (CS, DS, SS, ES);— счетчик команд (IP);— регистр флагов (Flags).Расшифровка этих названий:ABCDBPSIDISPCSDSSSESIPaccumulatorbasecounterdatabase pointersource indexdestination indexstack pointercode segmentdata segmentstack segmentextra segmentinstruction pointerаккумуляторбазасчетчикданныеуказатель базыиндекс источникаиндекс приемникауказатель стекасегмент командсегмент данныхсегмент стекадополнительный сегментсчетчик командРегистры общего назначения можно использовать во всехарифметических и логических командах.

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

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

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