64195 (80386 процессор), страница 2

2016-08-01СтудИзба

Описание файла

Документ из архива "80386 процессор", который расположен в категории "". Всё это находится в предмете "компьютерные науки" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "компьютерные науки" в общих файлах.

Онлайн просмотр документа "64195"

Текст 2 страницы из документа "64195"

4.7. Регистры отладки

Шесть доступных программисту регистров отладки (DR0-DR3, DR6 и DR7) расширяют возможности отладки в МП 80386, они уста­навливают точки останова по данным и позволяют устанавливать точки останова по командам без модификации сегментов программ. Регистры DR0-DR3 предназначены для четырех линейных точек останова. Регистры DR4 и DR5 зарезервированы фирмой Intel для будущих разработок. Регистр DR6 показывает текущее состояние точек останова, а регистр DR7 используется для установки точек останова.

4.8. Буфер ассоциативной трансляции

Буфер ассоциативной трансляции (TLB) - это кэш-память, используемая для трансляции линейных адресов в физические.

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

5. Система команд

5.1. Формат команд

Команды МП 80386 состоят из отдельных элементов и могут иметь различные форматы. Из всех описанных ниже элементов только один (код операции, Коп) обязательно присутствует в лю­бой команде. Остальные элементы могут отсутствовать, что опре­деляется характером операции, а также местоположением и типом операндов.

Команды состоят из следующих элементов: необязательных префиксов; одного или двух байтов кодов операции; возможно - описателя адреса, который включает байт Mod R/M и байт масшта­ба, индекса и базы; смещения - если требуется; поля не­посредственных данных - если требуется.

Префиксы - один или несколько байтов, предшествующих ко­манде и модифицирующих операцию этой команды. Имеется 4 типа префиксов.

1. Повторение - используется с командами обработки строк; заставляет команду воздействовать на каждый элемент строки.

2. Размер операнда - переключает разрядность операндов, устанавливая их 32-разрядными или 16-разрядными.

3. Размер адреса - переключает разрядность адреса, опре­деляя образование 32-разрядных или 16-разрядных адресов.

4. Замена сегмента - в явной форме указывает, какой сег­ментный регистр должна использовать команда. Префикс отменяет действующий по умолчанию выбор сегментного регистра, обычно осуществляемый МП 80386 при выполнении этой команды.

Код операции (Коп) - описывает операцию, выполняемую ко­мандой. Некоторым командам присущи несколько кодов операций, каждый из которых описывает определенный вариант операции.

Описатель регистра - в команде могут быть описаны один или два регистра в качестве операндов. Описатель регистра мо­жет присутствовать как в байте кода операции, так и в байте описателя режима адресации.

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

Байты MOD R/M и SIB. Большинство команд, ссылающихся на операнд, находящийся в памяти, содержат после байта основного кода операции еще байт формы адресации. Этот байт описывает используемую форму адреса. Определенные значения кода поля MOD R/M указывают на наличие второго адресного байта SIB.

Байты MOD R/M и SIB содержат следующую информацию:

- тип индексации или номер регистра, используемого в ко­манде;

- используемый регистр или дополнительную информацию о выборе команды;

- информацию о базе, индексе и масштабе;

Смещение. Если описатель режима адресации указывает, что при вычислении адреса операнда будет использовано смещение, в состав кода команды включается поле смещения. Смещение представляет собой 8-, 16- или 32-разрядное целое число со знаком. 8-разрядная форма используется в тех случаях, когда значение смещения невелико.

Непосредственный операнд (данное). Если этот элемент присутствует, он представляет значение операнда команды. Не­посредственные операнды могут быть 8-, 16- или 32-разрядными. В случаях когда 8-разрядный непосредственный операнд использу­ется в команде вместе с 16- или 32-разрядным операндом, про­цессор автоматически увеличивает размер 8-разрядного операнда путем расширения его знакового разряда.

5.2. Описание обозначения

+rb, +rw, +rd Код регистра (от 0 до 7), который складыва­ется с указанным слева от знака плюс шестнадцетиричным числом (байтом) с лбразованием байта кода операции. Регистрам присво­ены следующие коды :

rb rw rd

AL=0 AX=0 EAX=0

CL=1 CX=1 ECX=1

DL=2 DX=2 EDX=2

BL=3 BX=3 EBX=3

AH=4 SP=4 ESP=4

CH=5 BP=5 EBP=5

DH=6 SI=6 ESI=6

BH=7 DI=7 EDI=7

/цифра Цифра, стоящая справа от косой черты, имеет, вооб­ще говоря, значение от 0 до 7. Она показывает, что в байте MOD R/M указывается только один операнд r/m (регистр/память). Сама цифра помещается в поле reg и образует расширение кода опера­ции.

/r Обозначение показывает, что байт MOD R/M содержит два операнда (reg и r/m).

cb, cw, cd, cp Величина размером 1 байт (cb), 2 байта (cw), 4 байта (cd) или 6 байт (cp) следует за кодом операции и определяет относительный адрес, а также, возможно новое значе­ние программного сегмента.

ib, iw, id Непосредственный операнд размером 1 байт (id), 2 байта (iw) или 4 байта (id) следует за байтами кода опера­ции, MOD R/M или SIB. Код операции указывает, является ли опе­ранд знаковой величиной.

imm8 Непосредственный операнд размером 1 байт. Величина imm8 является знаковой величиной между -128 и +127 включитель­но. В командах, где размер второго операнда составляет слово или двойное слово, величина imm8 расширяется до слова или двойного слова. Старшие байты расширенной величины заполняются старшим битом непосредственного операнда.

imm16 Непосредственный операнд размером 1 слово. Исполь­зуется в командах с атрибутом размера операнда 16 разрядов. Может иметь значение от -32768 до +32767 включительно.

imm32 Непосредственный операнд размером 1 двойное слово. Используется в командах с атрибутом размера операнда 32 разря­да. Может иметь значение от -2147483648 до +2147483647 включи­тельно.

m8 Байт памяти. Адресуется через регистры DS:SI или ES:DI.

m16 Слово памяти.

m32 Двойное слово памяти.

moffs8, moffs16, moffs32 Относительный адрес. Простая пе­ременная типа BYTE, WORD или DWORD, используемая некоторыми вариантами команды MOV. Фактический адрес записывается в виде простого смещения относительно базы сегмента. Число при аббре­виатуре "moffs" указывает разрядность смещения определяемую аттрибутом размера адреса в команде. Байт MOD R/M в команде не используется.

ptr16:16, ptr16:32 Указатель FAR (дальний). Обычно он на­ходится в другом программном сегменте по отношению к команде. Обозначение 16:16 говорит о том, что указатель состоит из двух частей. Величина слева от двоеточия - это смещение в сегменте приемнике. Величина справа от двоеточия - это 16-разрядный се­лектор или величина, предназначенная для регистра программного сегмента. Если атрибут размера операнда команды равен 16, используйте 16:16. Для 32-разрядного атрибута используйте 16:32.

r8 Один из байтовых регистров: AL, CL, DL, BL, AH, CH, DH, BH.

r16 Один из однословных регистров: AX, CX, DX, BX, SP, BP, SI, DI.

r32 Один из двухсловных регистров: EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI.

rel8 Смещение для перехода в диапазоне от 128 байтов пе­ред концом команды до 127 байтов после конца команды.

rel16, rel32 Смещение для перехода в том же программном сегменте, что и ассемблируемая команда, rel16 относится к ко­мандам с атрибутом размера операнда 16 разрядов. rel32 от­носится к командам с атрибутом размера операнда 32 разряда.

r/m8, r/m16, r/m32 Соответственно одно-, двух- и четырех­байтовый операнд. Представляет собой содержимое либо памяти, либо регистра.

rrr Когда обозначение rrr появляется в колонке двоичного эквивалента кода операции, оно указывает конкретный адресуемый регистр.

000 = AX/EAX 100 = SP/ESP

001 = CX/ECX 101 = BP/EBP

010 = DX/EDX 110 = SI/ESI

011 = BX/EBX 111 = DI/EDI

Sreg Регистр сегмента. Кодирование сегментных регистров в поле reg: ES=0, CS=1, DS=3, FS=4, GS=5.

5.3. Список команд

AAA ASCII-коррекция после сложения.

Команда AAA преобразует содержимое регистра AL в неупако­ванное десятичное число и сбрасывает его старшие четыре разря­да. Она должна всегда следовать за сложением двух неупакован­ных десятичных операндов в AL. Если возникает перенос, уста­навливается флаг CF и происходит инкремент в регистре AH.

AAD ASCII-коррекция регистра AX перед делением.

Команда AAD преобразует число в регистрах AH и AL, подго­тавливая деления двух неупакованных десятичных операндов так, чтобы полученное в результате деления частное было бы правиль­ным неупакованным десятичным числом. В регистре AH должна на­ходится старшая цифра, в AL - младшая. Команда AAD корректиру­ет число и помещает результат в AL. Регистр AH содержит 0.

AAM ASCII-коррекция в регистре AX после умножения. Команда AAM корректирует результат умножения двух неупа-

кованных десятичных чисел. Эта команда должна всегда следовать за умножением двух десятичных цифр с целью образования пра­вильного десятичного результата. Старшая цифра помещается в регистр AH, младшая - в AL.

AAS ASCII-коррекция регистра AL после вычитания.

Команда AAS преобразует содержимое регистра AL в неупако­ванную десятичную цифру и заполняет нулями старшие четыре раз­ряда. Эта команда должна всегда следовать за вычитанием одного неупакованного десятичного операнда из другого в AL. Флаг CF устанавливается, а при наличии займа выполняется декремент в регистре AH.

ADC Сложение с переносом целых чисел.

Команда ADC суммирует операнды, прибавляет 1, если уста­новлен флаг CF, и помещает результат по адресу назначения. Ес­ли флаг CF сброшен, команда ADC выполняет ту же операцию, что и ADD. Комбинация команды ADD и нескольких команд ADC позволя­ет складывать числа, содержащие более 32 разрядов.

ADD Сложение целых чисел.

В результате выполнения команды операнд-приемник заменя­ется суммой обоих операндов (источника и приемника). При нали­чии переполнения устанавливается флаг CF.

AND Логическое И.

Команда AND используется для сброса битов, указанных пользователем, например бита четности во входном потоке кодов ASCII от терминала. Будучи использована совместно с командой сравнения, команда AND позволяет убедиться, что указанные биты установлены.

ARPL Коррекция в селекторе уровня привилегий инициато­ра запроса.

Команда ARPL используется системными программами для обеспечения правильности передачи подпрограмме селекторов в качестве параметров. Селекторы не должны требовать больше при­вилегий, чем разрешено инициатору запроса.

В команде ARPL используются два операнда. первый предс­тавляет собой 16-разрядный регистр или слово памяти, содержа­щее значение селектора. В качестве второго операнда обычно выступает регистр, содержащий значение селектора программного сегмента CS инициатора запроса.

BOUND Проверка индекса массива на выход за границы. Команда BOUND проверяет, лежит ли знаковая величина, на-

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

BSF прямое сканирование битов.

Эта команда сканирует слово или двойное слово в поисках бита, равного 1, и заносит в регистр номер первого установлен­ного бита. Сканируемая строка может находиться как в регистре, так и в памяти. Если все слово равно 0, т.е. в нем нет единич­ных битов, устанавливается флаг ZF. Если единичный бит найден, флаг ZF сбрасывается.

BSR Обратное сканирование битов.

Эта команда действует также как и BSF, но начинает скани­рование со старшего бита. Это новая команда, специфичная для МП 80386.

BT Проверка бита.

Команда BT служит для определения того, установлен или нет определенный бит в битовом массиве. Значение проверяемого бита копируется во флаг CF. Это новая команда, специфичная для МП 80386.

BTC Проверка и инверсия бита.

Команда BTC проверяет указанный бит, копирует его в CF и инвертирует найденный бит. Это новая команда, специфичная для МП 80386.

BTR Проверка и сброс бита.

Команда BTR проверяет указанный бит, копирует его в CF и сбрасывает найденный бит. Это новая команда, специфичная для МП 80386.

BTS Проверка и установка бита.

Команда BTS проверяет указанный бит, копирует его в CF и устанавливает в найденном бите значение 1. Это новая команда, специфичная для МП 80386.

CALL Вызов процедуры.

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