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

Реферат

80386 процессор

Банк рефератов / Радиоэлектроника

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

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

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

Содержание стр. 1.Введение 1 2.Режимы процессора 1 2.1.Реальный режим 2 2.2.Защищенный режим 2 3.Типы данных 2 4.Регистры 4 4.1.Регистры общего назначения 4 4.2.Регистр системных флагов 4 4.3.Регистры сегментов 5 4.4.Регистры управления сегм ентированно й памятью 5 4.5.Указатель команд 6 4.6.Регистры управления 6 4.7.Регистры отладки 7 4.8.Буфер ассоциативной трансляции 7 5.Система команд 7 5.1.Формат команд 7 5.2.Описание обозначения 9 5.3.Список команд 11 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 имеет два режима работы : режим реальных адресов, - 2 - называемый реальным режимом , и защищенный режим. 2.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. 3. Типы данных МП 80386 подразделяет память на 8-разрядны е байты, 16-разрядные слова и 32-ра зрядные д войные слова . Дополнительно МП 80386 поддерживает также следующие дополни тельные типы дан- ных. - 3 - Неупакованный двоично-десятичный тип - расп акованное бай- товое представление десятичной цифры от 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 до +3 2767, а 32-разрядное (двойное слово ) целое число в диапа- зоне от -2Е 31 до +2Е 31-1. Нулевое значени е имеет положительный знак. Обычный тип - беззнаковое двоичное знач ение , содержащееся - 4 - в 32-разрядном двойном слове , 16-разря дном слове или 8-разряд- ном байте . Все биты определяют величин у числа. Строка - непрерывная последовательность ба йтов , слов или двойных слов . Строка может содержать от 0 до 2Е 32 -1 байтов или 4 Гбайтов. 4. Регист ры Регистр является устройством временного хранения данных и используется с целью облегчения арифмети ческих , логических и пересылочных операций . Регистры МП 80386 являю тся расширением регистров прежних МП 8086, 80186, 80286. Все 16-разрядные ре- гистры МП предыдущих поколений содержатся внутри 32-разрядной архитектуры. Микропроцессор 80386 включает шесть непосред ственно доступных программисту регистров селекторов сегментов , которые содержат указатели сегментов . Значения эт их селекторо в могут быть загружены при исполнении программы и являются специфичны- ми для задачи . Это значит , что реги стры сегментов перезагружа- ются автоматически при переключении МП 80386 на другую задачу. За регистрами селекторов сегментов стоят реальные реги стры кэш-памяти сегментов , которые содержат оп исания сегментов, указываемых селектором . Это сделано на аппаратном уровне для того , чтобы избежать дополнительной выбор ки из памяти в слу- чае , когда требуется описание сегмента. 4.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. 4.2. Регистр системных флагов Регистр EFLAGS управляет вводом-выводом , маскир уемыми прерываниями , отладкой , переключением задач и включением - 5 - исполнения в режиме виртуального МП 8086 в защ ищенной многоза- дачной среде - все это в дополнение к флагам состояния , кото- рые отражают результат исполнения команды . Младшие 16 бит его представляют собой 16-разрядный регистр фла гов и состояния МП 80286, называемый FLAGS, который наиболее полезен при исполне- нии программ для МП 8086 и 80286. 4.2. Регистры сегментов Шесть 16-разрядных регистров содержат з начения селекторов сегментов , которые указывают на текущие адресуемые сегменты памяти . Ниже перечислены эти регистры. Регистр сегмента программы (CS) - указывает на сегмент, который содержит текущую последовательность исполняемых ко- манд . Процессор выбирает все команды из этого сегмента, используя содержимое счетчика команд как относительный адрес. Сод ержимое CS изменяется в результате выполнения внутрисег- ментных команд управления потоком , прерыв аний и исключений . Он не может быть загружен явным способом. Регистр сегмента стека (SS). Вызовы подпр ограмм , записи параметров и активизация процед ур обычно требуют области памя- ти , резервируемой под стек . Все операц ии со стеком используют регистр SS при обращении к стеку . В отличие от регистра CS ре- гистр SS может быть загружен явно с помощью команды программы. Остальные четыре регистра явля ютс я регистрами сегментов данных (DS, ES, FS, GS), каждый из которых адресуется текущей исполняемой программой . Доступ к четырем раздельным областям данных имеет целью повысить эффективност ь программ , позволяя им обращаться к различным типам струк т ур данных . Содержимое этих регистров может быть заменено по д управлением программы. При использовании регистров сегментов МП 80386 с каждым выбранным сегментом связывает базовый ад рес . При адресации единицы данных внутри сегмента к базо вому ад ресу сегмента до- бавляется 32-разрядный относительный адрес . Если сегмент выб- ран загрузкой селектора сегмента в ре гистр сегмента , то коман- дам манипуляции данными нужен только этот относительный адрес. 4.3. Регистры управления сегментированной памятью Регистр таблицы глобальных дескрипторов (GDTR). Содержит 32-разрядный линейный адрес и 16-разрядную границу таблицы глобальных дескрипторов. - 6 - Регистр таблицы локальных дескрипторов (LDTR). Содер жит 16-разрядный селектор для таблицы локальн ых дескрипторов . Так как эта таблица является специфичным для задачи сегментом , то она определяется значением селектора , хра нимым в регистрах системного сегмента . Регистр дескриптора сегмента , связанный с этой таблицей , програмно недоступен. Регистр таблицы дескрипторов прерываний (IDTR). Указывает на таблицу точек входа в программы обработки прерываний . Ре- гистр содержит 32-разрядный линейный базовы й адрес и 16-раз- рядную границу таблицы дескрип торов прерываний (IDT). Регистр задачи (TR). Указывает на информац ию , необходимую процессору для определения текущей задачи . Регистр TR содержит 16-разрядный селектор дескриптора сегмента состояния задачи. Поскольку этот сегмент специфичен для задач и , то он определя- ется значениями селекторов , хранящихся в регистрах системного сегмента . Заметим , что с каждым регист ром системных сегментов связан программно недоступный регистр дес криптора сегмента. 4.5. Указатель команд Расширенный указатель команд (EIP) являе тся 32-разрядным регистром . Он содержит относительный адре с следующей команды, подлежащей выполнению . Относительный адрес отсчитывается от начала сегмента текущей программы . Указа тель команд не- посредств енно не доступен программист у , но он управляется явно командами управления потоком , прерываниями и исключениями. Младшие 16 бит регистра EIP называются IP и могут быть использованы процессором независимо . Это свойство полезно при исполнении команд МП 8086 и 80286, которые имеют только ре- гистр IP. 4.6. Регистры управления МП 80386 имеет три 32-разрядных регистра управления (CR0, CR2 и CR3, а CR1 зарезервирован фирмой Intel), в к оторых хра- нятся состояния машины или глобальн ые состояния . Глобальное состояние - это такое состояние , к кото рому может получить доступ любой из логических блоков сис темы или которое управля- ет этими блоками . Вместе с регистрами системных адресов эти регистры хранят информацию о сос т оянии машины , которая влияет на все задачи в системе . Для досту па к регистрам управления определены команды их загрузки и сохр анности содержимого. - 7 - Системным программистам регистры управле ния доступны тольк о через варианты команды MOV, ко торые позволяют их загру- жать или сохранять в регистрах общего назначения. 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 типа - 8 - префиксов. 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-разрядная форма используется в тех случаях , когда значение смещения невелико. Непосредственный операнд (данное ). Если этот элемент присутствует , он представляет значение оп еранда команды . Не- - 9 - посредственные операнд ы могут быть 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 расширяется до слова или - 10 - двойного слова . Старшие байты расширенной величины заполняются старшим битом непосредственного операнда. imm16 Непосредственный операнд размером 1 слово . Исполь- зуется в командах с атрибутом размер а операнда 16 разрядов. Может иметь значение от -32768 до +32767 включи тельно. imm32 Непосредственный операнд размером 1 двойн ое слово. Используется в командах с атрибутом р азмера операнда 32 разря- да . Может иметь значение от -2147483648 до +214748364 7 включи- тельно. 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 Соответственно одно -, двух - и четыр ех- байтовый операнд . Представляет собой соде ржимое либо памяти, - 11 - либо регистра. 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. - 12 - ADC Сложение с переносом целых чисел. Команда ADC суммирует операнды , прибавляет 1, если уста- новлен флаг CF, и помещает результат по адресу назначения . Ес- ли флаг CF сброшен , команда ADC выполняет т у же операцию , что и ADD. Комбинация коман ды ADD и нескольк их команд ADC позволя- ет складывать числа , содержащие более 32 разрядов. ADD Сложение целых чисел. В результате выполнения команды опера нд-приемник заменя- ется суммой обоих операндов (источника и приемника ). При нали- чии пер еполнения устанавливается флаг CF. AND Логическое И. Команда AND используется для сброса бит ов , указанных пользователем , например бита четности во входном потоке кодов ASCII от терминала . Будучи использована сов местно с командой сравнени я , команда AND позволяет убедить ся , что указанные биты установлены. ARPL Коррекция в селекторе уровня привиле гий инициато- ра запроса. Команда ARPL используется системными програм мами для обеспечения правильности передачи подпрограм ме се лекторов в качестве параметров . Селекторы не должны требовать больше при- вилегий , чем разрешено инициатору запроса. В команде ARPL используются два операнда . первый предс- тавляет собой 16-разрядный регистр или слово памяти , содержа- щее значение селектора . В качестве второго операнда обычно выступает регистр , содержащий значение се лектора программного сегмента CS инициатора запроса. BOUND Проверка индекса массива на выход за границы. Команда BOUND проверяет , лежит ли знаковая вели чина , на- ходящаяся в заданном регистре , внутри заданных границ . Если значение этой величины меньше нижней границы или больше верх- ней , возникает прерывание 5. Каждое из з начений верхней и ниж- ней границ может быть словом или двойным словом. BS F прямое сканирование битов. Эта команда сканирует слово или д войное слово в поисках бита , равного 1, и заносит в регистр номер первого установлен- - 13 - ного бита . Сканируемая строка может на ходиться как в регистре, т ак и в памяти . Если все с лово равно 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) программа переходит - 14 - в точку адрес которой указан в одном из регистров общего наз- начения. CBW Преобразование байта в слово. Эта команда расширяет значение бита знака в старшую часть более длинного регистра так , чтобы ари фметические операции над содержимым этого регистра давали правильн ые рез ультаты. CWD Преобразование слова в двойное слово. Действие команды аналогично команде CBW. CLC Сброс флага переноса. Команда сбрасывает флаг CF. CLD Сброс флага направления. Команда сбрасывает флаг DF. Если флаг DF сброшен , автома- тическая индексация будет выполняться с инкрементом . Автомати- ческая индексация используется командами обработки строк. CLI Сброс флага прерываний. Если текущий уровень привилегий по крайней мере столь же высок , как уровень привилеги й ввод а-вывода , команда сбрасывает флаг прерываний. CLTS Сброс флага переключения задачи в управляющем ре- гистре 0. Команда сбрасывает флаг TS в CR0. В МП 80386 флаг TS ус- танавливается каждый раз при переключении задачи . Команда ис- поль зуется в системном программирован ии . Она представляет со- бой привилегированную команду , выполняемую только на нулевом уровне привилегий. CMC Инвертирование флага переноса. Команда инвертирует флаг переноса CF. CMP Сравнение. Коман да выполняет вычитание опера нда-источника из операн- да-приемника . В соответствии с результатом вычитания команда устанавливает состояние флагов , но не изменяет сами операнды. CMPS Сравнение строковых операндов. Ассемблер всегда транслирует команд у CMPS как одну из - 15 - 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 пос ле сложения. Команда корректирует результат сложения двух правильных упакованных десятичных операндов в регист ре A L. Эта команда должна всегда следовать за сложением двух пар упакованных де- сятичных чисел , чтобы получить в резу льтате пару правильных упакованных десятичных цифр. DAS Десятичная коррекция в регистре AL пос ле вычитания. Команда DAS анало гична команде DAA за исключением , что коррекция выполняется путем вычитания 6 из полубайтов регистра AL вместо прибавления 6. DEC Декремент на 1. Команда вычитает 1 из операнда приемник а . Состояние флага CF не изменяется. DIV Деление це лых чисел без знак а. Команда выполняет деление числа без знака в аккумуляторе - 16 - на операнд-источник . Размер делимого в битах в два раза больше размера делителя . Если делитель равен 0, или если частное не помещаетс я в назначенный регистр , возбуждается прерывание 0. ENTER Создание кадра стека для параметров процедуры Команда создает кадр стека , который можно использовать для реализации правил языков высокого уровня с блочной струк- турой . Команда LEAV E в конце процедур ы выполняет обратные действия. Команда имеет два параметра . Первый определяет число бай- тов динамической памяти , выделяемых в стеке для вызванной программы . Второй параметр соответствует лексическому уровню вложенности пр ограммы (от 0 до 31). Это т уровень определяет, сколько наборов указателей кадра стека копируются центральным процессором в новый кадр стека из текущего кадра. ESC Расширение процессора Арифметический сопроцессор предоставляет расширение системы команд МП 80386. Сопроцессор поддержив ает высокоточные вычисления как целочисленные , так и с плавающей точкой и , кро- ме того , содержит набор полезных конст ант , ускоряющих вычисле- ния . Сопроцессор работает параллельно с центральным процессо- ром , обеспечивая таким образом высок ую производительность. Команды сопроцессора включаются в об щий поток команд, составляющих программу для МП 80386. Система выполняет команды сопроцессора в том порядке , в котором они появляются в потоке. HLT О станов Команда прекращает выполнение любых к оманд и переводит МП в состояние останова . Немаскируемые преры вания , операция за- пуска и разрешенные прерывания возобновля ют работу процессора. Команда HLT обычно является последней коман дой в последов а- тельности команд останова системы , наприм ер для сохранения состояния процесса после обнаружения сбоя питания. IDIV Знаковое деление Команда выполняет знаковое деление . Де лимому , частному и остатку неявно назначаются определенные регистр ы , в то время как местонахождение делителя указывается явным образом . По форме делителя определяется , какие регист ры должны использо- ваться . Если делитель равен нулю или частное слишком велико для регистра-приемника , возбуждается прерывани е 0. - 17 - IMUL Знаковое целочисленное умножение Команда выполняет операцию знакового целочисленного умно- жения . Команда имеет три варианта. 1. Однооперандная форма . Операнд может б ыть байтом , сло- вом или двойны м словом в памя ти или регистре общего назначе- ния . Команда использует содержимое регист ров EAX и EDX в ка- честве операндов. 2. Двухоперандная форма . Один из операнд ов-источников мо- жет находиться в любом регистре общег о назначения , в то время к ак другой может быть в регис тре общего назначения или в памя- ти . Произведение размещается на месте операнда в регистре об- щего назначения. 3. Трехоперандная форма . Два операнда пр едставляют собой источники и один приемник . Один из операндов-источ ников явля- ется непосредственным значением , записанным в команде . Второй может находиться в памяти или в л юбом регистре общего назначе- ния . Произведение может быть записано в любой регистр общего назначения . Непосредственный операнд считаетс я знаковым . Если он является байтом , процессор перед в ыполнением умножения ав- томатически расширяет его знак до раз мера второго операнда. IN Ввод из порта Команда вводит байт или слово из порта и записывает его в регистре (AL, AH, EAX). Порт указываетс я вторым операндом . Для доступа к порту его номер следует поместить в регистр DX и использовать команду IN с обозначением DX в качестве второго параметра. INC Инкремент на 1. Команда прибавляет 1 к операнду-приемнику , но в отличие от ADD не влияет на флаг CF. INT Вызов процедуры обработки прерывания Команда передает управление от одной ячейки программного сегмента на другую . Эти ячейки могут принадлежать одному прог- раммному сегменту или разным программным сегментам . Коман да возбуждает программное прерывание , позволяюще е пользователю передть управление из своей программы программе обработки пре- рываний. Команда INTn активизирует программу обработки прерывания, соответствующую номеру , указанному в кома нде . Команд а может - 18 - определять прерывание любого типа . Заметь те , что прерывания 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 Отсутствие переполнения - 19 - 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 - 20 - 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 определяет р егистр-источник - 21 - или ячейку памяти , содержащие информацию для регистра задачи. Команда загру жает эту информацию в регистр задачи. 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. Ном ер порта оп- ределяется первым операндом . Для вывода данных в любой порт от - 22 - 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 Циклический сдвиг вправо с циклическ им возвратом битов Команды циклического сдвига дают возможность циклически - 23 - сдвигать биты в байтах , словах и д войных словах. 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. - 24 - 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 Логическое сравнение Команда выполняет логическую операцию И над двумя операн- - 25 - дами . Затем команда сбрасывает флаги 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Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Семейный анекдот от сына полковника, правнука царского генерала)))
Первая мировая. Пьяные офицеры в блиндаже спорят за что воюют солдаты.
Вызывают рядового Иванова.
- Здравия желаю, господа офицеры.
- Иванов, что есть армия?
- Армия - это выполние устава, готовность положить жизнь за Отечество.
- Тебе 100 целковых или медаль?
- Конечно медаль!
- Получи.
Вызывают рядового Горгиладзе.
- Что есть армия?
- Это дурдом, слюшай. Падъём, атбой, грязь, вши, убить могут.
- 100 рублей или медаль?
- Канэшна 100 рублей.
Вызывают рядового Абрамовича.
- Армия - это сборище идиотов, которые не смогли сделать себе белый билет.
- 100 рублей или медаль?
- Хм, а сколько стоит медаль?
Вызвали интенданта. Медаль стоит 10 рублей.
- Тогда давайте 90 рублей и медаль.
Anekdot.ru

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

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

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


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