Реферат: МП 80386 - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

МП 80386

Банк рефератов / Информатика, информационные технологии

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 206 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

МП 80386 Содер жание 1. Введение 2. Режимы процессора 2.1. Реальный режим 2.2. Защищенный режим 3. Типы данных 4. Регистры 4.1. Регистры общего назначения 4.2. Регистр системных флагов 4.3. Регистры сегментов 4.4. Регистры управления сегментированной памятью 4.5. Указатель команд 4.6. Регистры управления 4.7. Регистры отладки 4.8. Буфер ассоциативной трансляции 5. Система команд 5.1. Формат команд 5.2. Описание обозначения 5.3. Список команд 1. Введение МП 80386 вышел на рынок с уникальным преимуществом. Он является единственным 32-ра зрядным МП, для которого пригодно существующее прикладное программное обеспечение, написанное для МП предыдущих моделей от 8086/88 до 80286. Любые прогр аммы, написанные для этих МП могут выполняться на 80386 без всяких исправлен ий и дополнений, лишь только с увеличением скорости их выполнения. Это св ойство МП называется совместимостью снизу вверх. Также, дополнительным и преимуществами этого МП являются многозадачность, встроенное управл ение памятью, виртуальная память с разделением на страницы, защита прогр амм и большое адресное пространство. Аппаратная совместимость с предыд ущими моделями сохранена посредством динамического изменения разрядн ости магистрали. МП 80386 выполнен на основе технологии CHMOS III фирмы Intel, которая вобрала в себя быс тродействие технологии HMOS (МДП высокой плотности) и малое потребление мощ ности технологии CMOS (КМДП) . МП 80386 предусматривает переключение программ, вы полняемых под управлением различных операционных систем, таких как MS-DOS и UNIX. Это свойство позволяет разработчикам программ включать стандартное прикладное программное обеспечение для 16-разрядных МП непосредственно в 32-разрядную систему. Процессор определяет адресное пространство как о дин или несколько сегментов памяти любого размера в диапазоне от 1 байт д о 4 Гбайт. Эти сегменты могут быть индивидуально защищены уровнями приви легий и таким образом избирательно разделяться различными задачами. 2. Режимы процессора Для б олее полного понятия системы команд МП 80386 необходимо предварительно опи сать общую схему его работы и архитектуру. В данном реферате не раскрывается более подробно значения некоторых сп ецифических слов и понятий, считая, что читатель предварительно ознаком ился с МП 8086 и МП 80286 и имеет представление о их работе и архитектуре. Описыва ются только те функции МП 80386, которые отсутствуют или изменены в предыдущ их моделях МП. МП 80386 имеет два режима работы: режим реальных адресов, называемый реальны м режимом, и защищенный режим. 1. Реальный режим При по даче сигнала сброса или при включении питания устанавливается реальны й режим, причем МП 80386 работает как очень быстрый МП 8086, но, по желанию програм миста, с 32-разрядным расширением. В реальном режиме МП 80386 имеет такую же баз овую архитектуру, что и МП 8086, но обеспечивает доступ к 32-разрядным регистр ам. Механизм адресации, размеры памяти и обработка прерываний МП 8086 полно стью совпадают с аналогичными функциями МП 80386 в реальном режиме. Единственным способом выхода из реального режима является явное перек лючение в защищенный режим. В защищенный режим МП 80386 входит при установке бита включения защиты (РЕ) в нулевом регистре управления (CR0) с помощью кома нды пересылки (MOV to CR0) . Для совместимости с МП 80286 с целью установки бита РЕ мож ет быть также использована команда загрузки слова состояния машины LMSW. Пр оцессор повторно входит в реальный режим в том случае, если программа ко мандой пересылки сбрасывает бит РЕ регистра CR0. 2.2. Защищенный режим Полные возможности МП 80386 раскрываются в защищенном режиме. Программы мог ут исполнять переключение между процессами с целью входа в задачи, предн азначенные для режима виртуального МП 8086. Каждая такая задача проявляет с ебя в семантике МП 8086 (т.е. в отношениях между символами и приписываемыми им значениями независимо от интерпретирующего их оборудования) . Это позво ляет выполнять на МП 80386 програмное обеспечение для МП 8086 - прикладную прогр амму или целую операционную систему. В то же время задачи для виртуально го МП 8086 изолированы и защищены как друг от друга, так и от главной операцио нной системы МП 80386. · Типы данных МП 80386 п одразделяет память на 8-разрядные байты, 16-разрядные слова и 32-разрядные дв ойные слова. Дополнительно МП 80386 поддерживает также следующие дополните льные типы данных. Неупакованный двоично-десятичный тип - распакованное байтовое предста вление десятичной цифры от 0 до 9. Распакованные десятичные числа хранятс я как беззнаковые байтовые значения по одной цифре в каждом байте. Значе ние цифры определяется младшим полубайтом. Старший полубайт должен быт ь равным нулю при делении и умножении, но может иметь любое значение при в ычитании или сложении. Упакованный двоично-десятичный тип - упакованное байтовое представлен ие двух десятичных цифр от 0 до 9. Каждая цифра хранится в своем полубайте. Ц ифра в старшем полубайте является более значимой. Диапазон упакованног о десятичного байта составляет от 0 до 99. Битовое поле - непрерывная последовательность битов, в которой каждый би т рассматривается как независимая переменная. Битовое поле может начин аться с любого бита любого байта и может быть длиной до 32 бит. Битовая строка подобно битовому полю, битовая строка является непрерыв ной последовательностью битов. Битовая строка может начинаться с любог о бита любого байта и иметь длину до (2Е32-1) бит. Ближний указатель - 32-разрядный логический адрес, который представляет с обой относительный адрес внутри сегмента. Ближние указатели использую тся как в сплошной, так и в сегментированной модели памяти. Дальний указатель - 48-разрядный логический адрес из двух компонентов: 16-ра зрядного сегмента и 32-разрядного относительного адреса. Дальние указате ли используются программистами тольком в том случае, когда конструктор ы системы выбирают сегментированную организацию памяти. Целый тип знаковое двоичное значение, содержащееся в 32-разрядном двойно м слове, 16-разрядном слове или 8-разрядном байте. Все операции предполагаю т представление чисел в дополнительном коде. Знаковый бит расположен в б ите 7 в байте, в бите 15 в слове и в бите 31 в двойном слове. Он равен нулю для поло жительных чисел и единице для отрицательных. Поскольку этот старший бит используется как знаковый, то 8-разрядное (байт) целое число может изменят ься в диапазоне от -128 до +127,16-разрядное (слово) целое число в диапазоне от -32768 до +32767, а 32-разрядное (двойное слово) целое число в диапазоне от -2Е31 до +2Е31-1. Нулево е значение имеет положительный знак. Обычный тип беззнаковое двоичное значение, содержащееся в 32-разрядном д войном слове, 16-разрядном слове или 8-разрядном байте. Все биты определяют величину числа. Строка непрерывная последовательность байтов, слов или двойных слов. Ст рока может содержать от 0 до 2Е32 -1 байтов или 4 Гбайтов. · Регистры Регис тр является устройством временного хранения данных и используется с це лью облегчения арифметических, логических и пересылочных операций. Рег истры МП 80386 являются расширением регистров прежних МП 8086,80186,80286. Все 16-разрядны е регистры МП предыдущих поколений содержатся внутри 32-разрядной архите ктуры. Микропроцессор 80386 включает шесть непосредственно доступных программис ту регистров селекторов сегментов, которые содержат указатели сегмент ов. Значения этих селекторов могут быть загружены при исполнении програ ммы и являются специфичными для задачи. Это значит, что регистры сегмент ов перезагружаются автоматически при переключении МП 80386 на другую задач у. За регистрами селекторов сегментов стоят реальные регистры кэш-памят и сегментов, которые содержат описания сегментов, указываемых селектор ом. Это сделано на аппаратном уровне для того, чтобы избежать дополнител ьной выборки из памяти в случае, когда требуется описание сегмента. 1. Регистры общего на значения Восе мь регистров общего назначения имеют длину в 32 бит и содержат адреса или д анные. Они поддерживают операнды-данные длиной 1,8,16,32 и 64 бит; битовые поля от 1 до 32 бит: операнды-адреса длиной 16 и 32 бит. Эти регистры называются EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP. Доступ к младшим 16 бит этих регистров выполняется независимо. Это делает ся в большинстве ассемблеров при использовании 16-разрядных имен регистр ов: AX, BX, CX, DX, SI, DI, BP, SP. 2. Регистр системных флагов Реги стр EFLAGS управляет вводом-выводом, маскируемыми прерываниями, отладкой, пе реключением задач и включением исполнения в режиме виртуального МП 8086 в з ащищенной многозадачной среде - все это в дополнение к флагам состояния, которые отражают результат исполнения команды. Младшие 16 бит его предст авляют собой 16-разрядный регистр флагов и состояния МП 80286, называемый FLAGS, ко торый наиболее полезен при исполнении программ для МП 8086 и 80286. 3. Регистры сегментов Шест ь 16-разрядных регистров содержат значения селекторов сегментов, которые указывают на текущие адресуемые сегменты памяти. Ниже перечислены эти р егистры. Регистр сегмента программы (CS) - указывает на сегмент, который содержит те кущую последовательность исполняемых команд. Процессор выбирает все к оманды из этого сегмента, используя содержимое счетчика команд как отно сительный адрес. Содержимое CS изменяется в результате выполнения внутри сегментных команд управления потоком, прерываний и исключений. Он не мож ет быть загружен явным способом. Регистр сегмента стека (SS) . Вызовы подпрограмм, записи параметров и актив изация процедур обычно требуют области памяти, резервируемой под стек. В се операции со стеком используют регистр SS при обращении к стеку. В отличи е от регистра CS регистр SS может быть загружен явно с помощью команды прогр аммы. Остальные четыре регистра являются регистрами сегментов данных (DS, ES, FS, GS) , к аждый из которых адресуется текущей исполняемой программой. Доступ к че тырем раздельным областям данных имеет целью повысить эффективность п рограмм, позволяя им обращаться к различным типам структур данных. Содер жимое этих регистров может быть заменено под управлением программы. При использовании регистров сегментов МП 80386 с каждым выбранным сегменто м связывает базовый адрес. При адресации единицы данных внутри сегмента к базовому адресу сегмента добавляется 32-разрядный относительный адрес . Если сегмент выбран загрузкой селектора сегмента в регистр сегмента, т о командам манипуляции данными нужен только этот относительный адрес. 4. Регистры управлени я сегментированной памятью 5. Регистр таблицы глобальных дескри пторов (GDTR) . Содержит 32-разрядный линейный адрес и 16-разрядную границу табли цы глобальных дескрипторов. Реги стр таблицы локальных дескрипторов (LDTR) . Содержит 16-разрядный селектор для таблицы локальных дескрипторов. Так как эта таблица является специфичн ым для задачи сегментом, то она определяется значением селектора, храним ым в регистрах системного сегмента. Регистр дескриптора сегмента, связа нный с этой таблицей, программно недоступен. Регистр таблицы дескрипторов прерываний (IDTR) . Указывает на таблицу точек входа в программы обработки прерываний. Регистр содержит 32-разрядный ли нейный базовый адрес и 16-разрядную границу таблицы дескрипторов прерыва ний (IDT) . Регистр задачи (TR) . Указывает на информацию, необходимую процессору для о пределения текущей задачи. Регистр TR содержит 16-разрядный селектор дескр иптора сегмента состояния задачи. Поскольку этот сегмент специфичен дл я задачи, то он определяется значениями селекторов, хранящихся в регистр ах системного сегмента. Заметим, что с каждым регистром системных сегмен тов связан программно недоступный регистр дескриптора сегмента. 6. Указатель команд Расш иренный указатель команд (EIP) является 32-разрядным регистром. Он содержит о тносительный адрес следующей команды, подлежащей выполнению. Относите льный адрес отсчитывается от начала сегмента текущей программы. Указат ель команд непосредственно не доступен программисту, но он управляется явно командами управления потоком, прерываниями и исключениями. Младшие 16 бит регистра EIP называются IP и могут быть использованы процессор ом независимо. Это свойство полезно при исполнении команд МП 8086 и 80286, которы е имеют только регистр IP. 7. Регистры управлени я МП 80386 имеет три 32-разрядных регистра управления (CR0, CR2 и CR3, а CR1 зарезервирован фирмо й Intel) , в которых хранятся состояния машины или глобальные состояния. Глоба льное состояние - это такое состояние, к которому может получить доступ л юбой из логических блоков системы или которое управляет этими блоками. В месте с регистрами системных адресов эти регистры хранят информацию о с остоянии машины, которая влияет на все задачи в системе. Для доступа к рег истрам управления определены команды их загрузки и сохранности содерж имого. Системным программистам регистры управления доступны только через вар ианты команды MOV, которые позволяют их загружать или сохранять в регистра х общего назначения. 8. Регистры отладки Шест ь доступных программисту регистров отладки (DR0-DR3, DR6 и DR7) расширяют возможнос ти отладки в МП 80386, они устанавливают точки останова по данным и позволяют устанавливать точки останова по командам без модификации сегментов пр ограмм. Регистры DR0-DR3 предназначены для четырех линейных точек останова. Р егистры DR4 и DR5 зарезервированы фирмой Intel для будущих разработок. Регистр DR6 п оказывает текущее состояние точек останова, а регистр DR7 используется дл я установки точек останова. 9. Буфер ассоциативно й трансляции Буфер ассоциативной трансляции (TLB) - это кэш-память, используемая для трансляци и линейных адресов в физические. Механизм проверки TLB является уникальным для МП 80386 и может быть не реализо ван в том же виде в будущих процессорах. Программы, которые используют эт от механизм в его нынешнем виде, могут оказаться несовместимыми с будущи ми процессорами. · Система команд 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-разрядного операнда путем расшир ения его знакового разряда. 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 Вызов процедуры. Команда CALL передает управление из одной точки программного сегмента в др угую. Эти точки могут располагаться в одном и том же программном сегмент е (ближний переход) или принадлежать разным сегментам (дальний переход) . П еред собственно передачей управления команда CALL сохраняет в стеке адрес следующей за CALL команды и текущее содержимое регистра EIP. Команды CALL могут быть относительными, прямыми и косвенными. В косвенной к оманде абсолютный адрес перехода указывается одним из двух способов: (1) М П извлекает адрес приемника из ячейки памяти, определенной в команде; (2) п рограмма переходит в точку адрес которой указан в одном из регистров общ его назначения. CBW Преобразование байта в слово. Эта команда расширяет значение бита знака в старшую часть более длинног о регистра так, чтобы арифметические операции над содержимым этого реги стра давали правильные результаты. CWD Преобразование слова в двойное слово. Действие команды аналогично команде CBW. CLC Сброс флага переноса. Команда сбрасывает флаг CF. CLD Сброс флага направления. Команда сбрасывает флаг DF. Если флаг DF сброшен, автоматическая индексация будет выполняться с инкрементом. Автоматическая индексация используе тся командами обработки строк. CLI Сброс флага прерываний. Если текущий уровень привилегий по крайней мере столь же высок, как уров ень привилегий ввода-вывода, команда сбрасывает флаг прерываний. CLTS Сброс флага переключения задачи в управляющем регистре 0. Команда сбрасывает флаг TS в CR0. В МП 80386 флаг TS устанавливается каждый раз при переключении задачи. Команда используется в системном программировани и. Она представляет собой привилегированную команду, выполняемую тольк о на нулевом уровне привилегий. CMC Инвертирование флага переноса. Команда инвертирует флаг переноса CF. CMP Сравнение. Команда выполняет вычитание операнда-источника из операнда-приемника. В соответствии с результатом вычитания команда устанавливает состояни е флагов, но не изменяет сами операнды. CMPS Сравнение строковых операндов. Ассемблер всегда транслирует команду CMPS как одну из CMPSB, CMPSW, CMPSD. Эти команды пре дназначены только для операций над строками. Они сравнивают по одному эл ементу каждой строки, причем элементами могут быть байт, слово или двойн ое слово. Элементы строк адресуются через регистры ESI и EDI. После каждой стр оковой операции ESI и/или EDI автоматически получают положительное или отри цательное приращение и указывают на следующие элементы строк. Если DF=0, в и ндексных регистрах осуществляется инкремент, если DF=1 - декремент. В завис имости от результата вычитания строкового элемента по адресу ES: EDI из стро кового элемента по адресу DS: ESI устанавливаются флаги результата. Если ком анда модифицирована с помощью префиксов, МП выполняет сравнение текуще го элемента строки с содержимым регистра EAX или его части (AL или AX) . CMPSB Сравнение строковых байтов. CMPSW Сравнение строковых слов. CMPSD Сравнение строковых двойных слов. CDQ Преобразование двойного слова в четверное. CWDE Преобразование слова в двойное слово с расширением. DAA Десятичная коррекция в регистре AL после сложения. Команда корректирует результат сложения двух правильных упакованных десятичных операндов в регистре AL. Эта команда должна всегда следовать за сложением двух пар уп акованных десятичных чисел, чтобы получить в результате пару правильны х упакованных десятичных цифр. DAS Десятичная коррекция в регистре AL после вычитания. Команда DAS аналогична команде DAA за исключением, что коррекция выполняется путем вычитания 6 из полубайтов регистра AL вместо прибавления 6. DEC Декремент на 1. Команда вычитает 1 из операнда приемника. Состояние флага CF не изменяется . DIV Деление целых чисел без знака. Команда выполняет деление числа без знака в аккумуляторе на операнд-ист очник. Размер делимого в битах в два раза больше размера делителя. Если де литель равен 0, или если частное не помещается в назначенный регистр, возб уждается прерывание 0. ENTER Создание кадра стека для параметров процедуры Команда создает кадр ст ека, который можно использовать для реализации правил языков высокого у ровня с блочной структурой. Команда LEAVE в конце процедуры выполняет обрат ные действия. Команда имеет два параметра. Первый определяет число байтов динамическ ой памяти, выделяемых в стеке для вызванной программы. Второй параметр с оответствует лексическому уровню вложенности программы (от 0 до 31) . Этот у ровень определяет, сколько наборов указателей кадра стека копируются ц ентральным процессором в новый кадр стека из текущего кадра. ESC Расширение процессора Арифметический сопроцессор предоставляет рас ширение системы команд МП 80386. Сопроцессор поддерживает высокоточные выч исления как целочисленные, так и с плавающей точкой и, кроме того, содержи т набор полезных констант, ускоряющих вычисления. Сопроцессор работает параллельно с центральным процессором, обеспечивая таким образом высо кую производительность. Команды сопроцессора включаются в общий поток команд, составляющих про грамму для МП 80386. Система выполняет команды сопроцессора в том порядке, в к отором они появляются в потоке. HLT Останов Команда прекращает выполнение любых команд и переводит МП в со стояние останова. Немаскируемые прерывания, операция запуска и разреше нные прерывания возобновляют работу процессора. Команда HLT обычно являе тся последней командой в последовательности команд останова системы, н апример для сохранения состояния процесса после обнаружения сбоя пита ния. IDIV Знаковое деление Команда выполняет знаковое деление. Делимому, частно му и остатку неявно назначаются определенные регистры, в то время как ме стонахождение делителя указывается явным образом. По форме делителя оп ределяется, какие регистры должны использоваться. Если делитель равен н улю или частное слишком велико для регистра-приемника, возбуждается пре рывание 0. IMUL Знаковое целочисленное умножение Команда выполняет операцию знаково го целочисленного умножения. Команда имеет три варианта. 1. Однооперандная форма. Операнд может быть байтом, словом или двойным сло вом в памяти или регистре общего назначения. Команда использует содержи мое регистров EAX и EDX в качестве операндов. 2. Двухоперандная форма. Один из операндов-источников может находиться в любом регистре общего назначения, в то время как другой может быть в реги стре общего назначения или в памяти. Произведение размещается на месте о перанда в регистре общего назначения. 3. Трехоперандная форма. Два операнда представляют собой источники и оди н приемник. Один из операндов-источников является непосредственным зна чением, записанным в команде. Второй может находиться в памяти или в любо м регистре общего назначения. Произведение может быть записано в любой р егистр общего назначения. Непосредственный операнд считается знаковым . Если он является байтом, процессор перед выполнением умножения автомат ически расширяет его знак до размера второго операнда. IN Ввод из порта Команда вводит байт или слово из порта и записывает его в р егистре (AL, AH, EAX) . Порт указывается вторым операндом. Для доступа к порту его н омер следует поместить в регистр DX и использовать команду IN с обозначение м DX в качестве второго параметра. INC Инкремент на 1. Команда прибавляет 1 к операнду-приемнику, но в отличие от ADD не влияет на фл аг CF. INT Вызов процедуры обработки прерывания Команда передает управление от одной ячейки программного сегмента на другую. Эти ячейки могут принадле жать одному программному сегменту или разным программным сегментам. Ко манда возбуждает программное прерывание, позволяющее пользователю пер едть управление из своей программы программе обработки прерываний. Команда INTn активизирует программу обработки прерывания, соответствующу ю номеру, указанному в команде. Команда может определять прерывание любо го типа. Заметьте, что прерывания 0.. 31 зарезервированы фирмой Intel. Возврат уп равления из программы обработки прерывания осуществляется командой IRET. INTO Прерывание по переполнению Команда при установленном флаге OF возбужда ет прерывание 4, которое специально зарезервировано для этой цели. Флаг OF устанавливается рядом арифметических, логических и строковых команд. IRET Возврат из прерывания Команда возвращает управление прерванной проц едуре. В отличие от команды RET IRET извлекает из стека значения флагов и помещ ает их в регистр флагов. Флаги записываются в стек в процессе реализации прерывания. IRETD Возврат из прерывания в 32-разрядном режиме JMP Переход Команда передает у правление из одной точки сегмента в другую. Точка перехода может быть в т ом же сегменте (ближний переход) или в другом сегменте (дальний переход) . К оманда безусловно передает управление в точку перехода и является, таки м образом, однонаправленной. Команды условных переходов: JA/JNBE Выше, не ниже и не равно JAE/JNB Выше или равно, не ниже JB/JNAE Ниже, не выше и не равно JBE/JNA Ниже или равно, не выше JC Перенос JE/JZ Равно, н уль JNC Отсутствие переноса JNE/JNZ Не равно, не нуль JNP/JPO Отсутствие четности, нече тность JP/JPE Четность JG/JNLE Больше, не меньше и не равно JGE/JNL Больше или равно, не ме ньше JL/JNGE Меньше, не больше и не равно JLE/JNG Меньше или равно, не больше JNO Отсутст вие переполнения JNS Отсутствие знака (положительно, включая нуль) JO Перепо лнение JS Знак (отрицательно) LAHF Загрузка флагов в регистр AH Хотя для изменен ия флагов CF и DF предусмотрены специальные команды, остальные флаги, испол ьзуемые в прикладных программах, нельзя изменять непосредственно. Эта к оманда дает возможность программного изменения остальных битов флагов с помощью команд побитовых операций после пересылки флагов в стек или в регистр AH. Команда копирует биты SF, ZF, AF, PF, CF соответственно в разряды 7,6,4,2,0 регистра AH. LAR Загрузка байта прав доступа Команда читает дескриптор сегмента и зано сит биты дробности(23) , свободный (20) , присутствия (15) , DPL (14) , типа (9-11) и доступа (8) в 32-р азрядный регистр, бит дробности и свободный бит не пересылаются. LEA Загрузка исполнительного адреса Команда пересылает по адресу приемни ка относительный адрес операнда-источника. Операнд-источник должен нах одиться в памяти. Операнд-приемник должен быть регистром общего назначе ния. Команда особенно полезна для инициализации регистров перед выполн ением действий над начальными данными или команды XLAT. LEAVE Выход из процедуры высокого уровня Команда выполняет действия против оположные действию команды ENTER. LGDT Загрузка регистра таблицы глобальных дескрипторов LIDT Загрузка регист ра таблицы Команда оповещает аппратные средства о точке перехода в случ ае прерываний. LGS Загрузка полного указателя LSS Загрузка указателя с использованием реги стра SS LDS Загрузка указателя с использованием регистра DS LES Загрузка указат еля с использованием регистра ES LFS Загрузка указателя с использованием ре гистра FS Команды указателей данных загружают указатель, состоящий из се лектора сегмента и относительного адреса, в регистр сегмента и регистр о бщего назначения. LLDT Загрузка регистра локальных дескрипторов Таблица локальных дескрипт оров загружается, когда задача или главная подсистема получает или восс танавливает контроль над системой. LWSW Загрузка слова состояния машины Команда загружает в регистр CR0 слово со тояния машины. Команду можно использовать для переключения в защищенны й режим. LOCK Префикс установки сигнала LOCK# Сигнал LOCK# захватывает общую память, так что МП получает ее в свое исключительное пользование на время выполнения сл едующей за LOCK команды. LODS Загрузка строкового операнда LODSB Загрузка байта LODSW Загрузка слова LODSD Загр узка двойного слова Эти команды обрабатывают не логические или арифмет ические переменные, а строки. Они воздействуют на один элемент строки, ко торый может быть байтом, словом или двойным словом. LOOP Циклическое выполнение, пока счетчик ECX не нуль LOOPE Цикл, пока равно LOOPZ Цикл, пока нуль LOOPNE Цикл, пока не равно LOOPNZ Цикл, пока не нуль Команды обеспечивают условный переход для циклического выполнения участка программы. Число шагов определяется значением, занесенным в регистр ECX. Все разновидности команды автоматически выполняют декремент ECX и останавливают цикл, если ECX=0. LTR Загрузка регистра задачи Первый операнд команды LTR определяет регистр- источник или ячейку памяти, содержащие информацию для регистра задачи. К оманда загружает эту информацию в регистр задачи. MOV Пересылка в/из специальных регистров Команда используется для загруз ки и выгрузки специальных регистров и регистров общего назначения. MOVS Пересылка данных из строки в строку MOVSB Пересылка байта строки MOVSW Пересыл ка слова строки MOVSD Пересылка двойного слова строки Эти команды использую тся для работы со строками, а не логическими или арифметическими величин ами. MOVZX Пересылка с расширением нуля Команда расширяет 8-разрядную величину д о 16-разрядной и 8- или 16-разрядную величину до 32-разрядной заполнением старш их разрядов нулями. MUL Целочисленное беззнаковое умножение содержимого регистров AL или AX Ком анда перемножает операнд-источник и содержимое аккумулятора и возвращ ает результат удвоенной длины. NEG Изменение знака, дополнение до 2 Команда выполняет вычитание знакового целочисленного операнда из нуля. NOP Холостая команда Команда занимает в памяти только 1 байт. Она действует только на указатель команд EIP. Команда NOP полезна при "выравнивании" адресов переходов. OR Логическое ВКЛЮЧАЮЩЕЕ ИЛИ Команда сравнивает два операнда и вычисляет следующее: если соответствующие биты в операндах равны 0, результат 0; в пр отивном случае результат 1. OUT Вывод в порт Команда пересылает данные из регистра в порт вывода. Опера нд-источник находится в регистре AL, AX, EAX. Номер порта определяется первым оп ерандом. Для вывода данных в любой порт от 0 до 65535 номер порта помещается в р егистр DX. OUTS Вывод строки в порт OUTSB Вывод байта OUTSW Вывод слова OUTSD Вывод двойного слова Р азновидности команды OTS действуют аналогично команде OUT, но выводит в порт строку и после вывода данного содержимое регистра-источника получает п риращение. POP Извлечение слова из стека Команда пересылает слово или двойное слово и з текущей вершины стека (регистр ESP) по адресу приемника. Затем регистр ESP ин крементируется. POPA Извлечение из стека содержимого всех регистров POPAD Извлечение из стека содержимого всех регистров - 32-разрядный режим POPF Восстановление из стека регистра FLAGS или EFLAGS POPFD Восстановление из стека - 32-разрядный режим PUSH Занести о перанд в стек Команда выполняет декремент указателя стека (ESP) , затем зано сит операнд-источник на вершину стека, куда указывает ESP. PUSHA Занести в стек содержимое всех регистров общего назначения Команда со храняет в стеке содержимое восьми регистров общего назначения. PUSHF Занесение в стек содержимого регистра флагов RCL Циклический сдвиг влев о через бит переноса с использованием бита CF для расширения RCR Циклически й сдвиг вправо через бит переноса с использованием бита CF для расширения ROL Циклический сдвиг влево с циклическим возвратом битов ROR Циклический с двиг вправо с циклическим возвратом битов Команды циклического сдвига дают возможность циклически сдвигать биты в байтах, словах и двойных сло вах. REP Повторение последующей строковой операции REPE Повторение, пока равно REPZ П овторение, пока нуль REPNE Повторение, пока не равно REPNZ Повторение, пока не нул ь Префикс REP задает повторение строковой операции, что позволяет МП обраб атывать строки значительно быстрее, чем с помощью обычнного программно го цикла. RET Возврат из процедуры Команда завершает выполнение вызванной процедур ы и передает управление посредством обратной ссылки, хранящейся в стеке . Обратная ссылка указывает на программу, первоначально вызвавшую проце дуру. SAHF Запись содержимого регистра AH в регистр флагов SAL/SAR/SHL/SHR Команда сдвига Бит ы в байтах, словах и двойных словах могут сдвигаться логически или арифм етически. Сдвиг осуществляется на заданное число разрядов вплоть до 31. SBB Целочисленное вычитание с займом Команда вычитает операнд-источник и з операнда-приемника. Если флаг CF установлен, вычитается еще 1. SCAS/SCASB/SCASW/SCASD Сравнение строковых данных Эти команды используются для работы с о строками. Они воздействуют на один элемент строки. Адресация элементов строки осуществляется через регистры ESI и EDI. После каждой строковой опера ции эти регистры автоматически уменьшаются или увеличиваются на 1 в зави симости от регистра DF. SETcc Установка байта по условию Команда записывает в байт 0 или 1 в зависимос ти от любого из 16 условий, определяемых флагами состояния. Байт может быть в памяти или в однобайтовом регистре общего назначения. Если условие cc ис тинно, команда записывает в байт 1; в противоположном случае - 0. SGDT Запись в память содержимого регистра таблицы глобальных дескрипторо в SIDT Запись в память содержимого регистра таблицы дескрипторов прерыван ий Эти команды копируют содержимое регистра в поле из 6 байт на которое ук азывает операнд. SHLD Сдвиг влево с двойной точностью SHRD Сдвиг вправо с двойной точностью Ком анды предоставляют возможность реализации операций на данных невыровн енных строках битов. SLDT Запись содержимого регистра таблицы локальных дескрипторов Команда записывает содержимое LDTR в регистр или ячейку памяти с исполнительным ад ресом, указанным в операнде команды. SMSW Запись слова состояния машины Слово состояния машины является частью регистра управления CR0. Команда записывает это слово в двухбайтовый реги стр или ячейку памяти. Команда оставлена для совместимости с МП 80286. В МП 80386 с ледует использовать команду MOV... CR0. STC Установка флага переноса CF STD Установка флага направления DF STI Установка ф лага прерываний IF STOS/STOSB/STOSW/STOSD Запись строки данных Запись строки данных. Адрес ация через регистры ESI и EDI. STR Запись регистра задачи Команда копирует содержимое регистра задачи в двухбайтный регистр или ячейку памяти. SUB Вычитание целых чисел Команда вычитает операнд-источник из операнда-п риемника и помещает результат на место операнда-приемника. TEST Логическое сравнение Команда выполняет логическую операцию И над дву мя операндами. Затем команда сбрасывает флаги OF и CF, оставляет AF неопределе нным и модифицирует SF, ZF, PF. Команда отличается от команды AND тем, что она не мо дифицирует операнд-приемник. VERR Проверка сегмента на чтение VERW Проверка сегмента на запись Эти команды проверяют, доступен ли выбранный селектором сегмент при текущем уровне привилегий и разрешены ли в нем чтение или запись. Если сегмент доступен, флаг ZF устанавливается в 1. WAIT Ожидание пассивного состояния вывода BUSY# Команда приостанавливает вып олнение программы МП 80386 до тех пор пока ЦП 80386 не обнаружит пассивное состоя ние вывода BUSY. Это указывает на то, что сопроцессор завершил выполнение за дачи и что ЦП может получить результат. XCHG Обмен между регистрами или между памятью и регистром Команда заменяет три команды MOV. Она не нуждается во вспомогательной ячейке для обмена опер андами. XLAT Табличное перекодирование Команду удобно использовать при преобразо вании из одной системы кодов в другую. Длина таблицы перекодирования от 1 до 256 байт. XOR Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Двойственное чувство - это когда на капоте твоей машины гвоздем нацарапано: "В сексе ты лучший!".
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по информатике и информационным технологиям "МП 80386", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru