Перейти к содержимому

Сколько бит помещается в регистр ax в процессорах семейства intel

  • автор:

5.Регистровая модель процессора x86.

МП Intel 80х86 или просто х86 является самым распространенным микропроцессором общего назначения. На его основе выполняются микро-ЭВМ, как универсального назначения, в т.ч. персональные компьютеры, так и специализированные: логические и регулирующие контроллеры, одноплатные и встраиваемые в оборудование — а также измерительные и управляющие комплексы реального времени. Особенностями его являются: наличие свойств 8, 16 и 32-х разрядных процессоров; возможность обработки слов в двоичном, двоично-десятичном кодах, строк данных и отдельных битов; наличие встроенных средств выполнения операций умножения и деления чисел. Для поддержки унаследованного ПО процессор х86 может, наряду с 32 разрядными инструкциями, выполнять и 16-разрядные.

С точки зрения прикладного программиста процессор 80х86 имеет четыре 32-битовых регистра общего назначения EAX, EBX, ECX, EDX, четыре регистра-указателя ESI, EDI, EBP и ESP, шесть 16-битовых указателей сегментов CS, DS, ES, SS ,FS, GS и один 32-битовый регистр флагов, а также программный счетчик- EIP. Для программной совместимости с 16-разрядными процессорами все 32-битовые регистры имеют возможность обращения к младшему слову, а младшие слова регистров общего назначения для облегчения переноса программ, унаследованных от 8-разрядных процессоров, разбиты на два раздельно адресуемых байта.

Регистры общего назначения (РОН)

Регистр-аккумулятор EAX. Используется для хранения промежуточных данных и результатов. При делении однобайтовых чисел регистр используется для хранения частного и остатка. При делении двухбайтовых чисел в AX содержится младшие 16 бит 32-разрядного делимого. В командах обработки строковых данных регистр может содержать одно- и двухбайтовые данные. Если для обработки данных достаточно использовать 8-разрядные числа, то регистр AX можно рассматривать как два независимых 8-битовых регистра AH и AL, причем AH содержит старшие, а AL — младшие 8 бит.

Базовый регистр EBX. При базовых типах адресации регистр содержит адрес области памяти либо адрес, который суммируется для получения нового значения со смещением. При исполнении большинства операций с аккумулятором EAX регистр EBX может выполнять функции регистра общего назначения. При выполнении операций с 8-битовыми операндами регистр BX может рассматриваться как 2 регистра BH и BL.

Регистр-счетчик ECX. Предназначен для управления числом итераций в цикле или числом повторений в командах REP в строковых операциях. При выполнении операций с аккумулятором EAX он также может использоваться как РОН. Может использоваться, также как и регистр EBX, для косвенной адресации. При работе с 8-битовыми операндами регистр CX можно рассматривать как пару независимых 8-разрядных регистров CH и CL.

Регистр данных EDX. Используется как вторичный аккумулятор для хранения промежуточных данных и результатов. Также может использоваться в качестве базового при косвенной адресации. В командах умножения и деления он может использоваться вместе с регистром AX для формирования 32-разрядного числа, при этом он содержит старшую часть числа. При делении двухбайтовых чисел DX содержит остаток. При приеме или выводе информации на периферийные устройства регистр DX может использоваться для хранения адреса порта ввода-вывода. В однобайтовых операциях регистр DX можно рассматривать как два 8-битовых регистра DH и DL.

Индексные регистры и регистры-указатели

Индексный регистр-источник ESI. Используется в качестве указателя адреса байта или слова в строковых командах. При базово-индексной адресации содержимое регистра ESI может суммироваться с содержимым базового регистра. Для повышения эффективности выполнения содержимое регистра может автоматически возрастать или уменьшаться в режиме автоиндексации. Регистр может быть использован при выполнении большей части арифметических и логических операций.

Индексный регистр-приемник EDI. Используется как указатель назначения для адреса байта или слова в строковых командах. При базово-индексной адресации содержимое регистра EDI может суммироваться с содержимым базового регистра. Для повышения эффективности выполнения содержимое регистра может автоматически возрастать или уменьшаться в режиме автоиндексации. Регистр может быть использован при выполнении большей части арифметических и логических операций.

Регистр-указатель стека ESP. Используется для работы с данными в стековых структурах. Его содержимое указывает адрес элемента на вершине стека. Регистр ESP модифицируется аппаратно, и в прикладных программах не рекомендуется изменять его содержимое.

Регистр-указатель базы EBP. Используется как дополнительный указатель для работы с данными в стековых структурах. Регистр EBP может выполнять функции указателя на параметры или локальные переменные процедуры, находящиеся в стеке. В режиме базово-индексной адресации для получения адресов операндов содержимое регистра EBP может суммироваться с содержимым регистров ESI и EDI. Регистр EBP может использоваться в большинстве арифметических и логических операций. Но, поскольку этот регистр является основой рамки стека функции в языках высокого уровня, то использовать его в качестве регистра общего назначения на встроенном ассемблере настоятельно не рекомендуется.

Использование и назначение сегментных регистров в реальном и защищенном режиме существенно различается. В реальном режиме сегментные регистры предназначены для преодоления барьера 64К при 16-разрядной адресации, и любая прикладная программа может явно менять и зачастую меняет их содержимое. В защищенном 32-разрядном режиме сегментные регистры предназначены для изолирования адресных пространств отдельных процессов друг от друга. Каждый процесс имеет свое виртуальное адресное пространство размером 4G, которое перекрывается 32-разрядными исполнительными адресами. Поэтому явная модификация содержимого сегментных регистров в прикладных программах защищенного режима практически никогда не требуется.

Регистр сегмента команд CS — 16-разрядный управляющий регистр, указывающий сегмент, содержащий адрес текущей команды. Его содержимое может быть изменено только при выполнении команд дальнего перехода JMP, CALL, RET, IRET. Ближние варианты JMP и CALL не изменяют содержимое регистра CS.

Регистр сегмента данных DS — 16-разрядный управляющий регистр. Его содержимое указывает начало зоны адресов, которая в общем случае включает программно изменяемые данные. Все прямые и косвенные адресные ссылки, использующие регистры BX, SI, или DI, определяются относительно регистра DS. Адресные ссылки в строчных командах, использующих регистр SI, также вычисляются относительно DS.

Регистры дополнительных сегментов данных ES, FS, GS — 16-разрядные управляющие регистры. Их содержимое указывает на начало области памяти, которая используется для динамически размещаемых данных. Адресные ссылки в командах работы со строками, использующих регистр DI, вычисляются относительно регистра ES.

Регистр сегмента стека SS — 16-разрядный регистр. Его содержимое указывает начало стековой структуры в памяти. Содержимое регистров SP и BP может использоваться для доступа к рамке стека функции с использованием косвенной адресации.

Указатель команд (программный счетчик) EIP — 32-разрядный регистр.

Регистр флагов — 32-разрядный регистр, содержащий информацию о текущем состоянии МП. При прикладном программировании используются в основном следующие флаги:

-флаг вспомогательного переноса AF. Используется при арифметических операциях над 8-разрядными числами в формате BCD для индикации переноса единицы из младших четырех битов в старшую тетраду или заема единицы из старшей тетрады в младшую.

-флаг переноса CF. Используется для индикации переноса в старший разряд или заема единицы из этого разряда при арифметических операциях над 8- 16- и 32-разрядными числами.

-флаг переполнения OF. Используется для индикации переполнения результатов при выполнении арифметических операций.

-флаг знака SF. Если SF установлен в 1, то результат отрицательное число, что соответствует 1 в самом старшем бите байта, слова или двойного слова, так как отрицательные числа в МП х86 представляются в дополнительном коде.

-флаг паритета PF. Используется для индикации четности числа битов в младшем байте результата. Если установлен в 1 — то число битов (но не само число) четное.

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

-флаг направления DF. Используется преимущественно вместе с командами обработки строк. Когда DF равен 1, эти команды автодекрементируются. Содержимое SI и/или DI используемых в этих операциях, уменьшаются на 1, 2 или 4 в зависимости от команд.

-флаг разрешения прерывания IF. Используется для разрешения или запрета обработки внешнего маскируемого прерывания. Когда флаг сброшен в 0, прерывания запрещены.

-флаг трассировки TF. Используется для осуществления пошагового выполнения программ при их отладке.

MS-DOS и TASM 2.0. Часть 8. Регистры.

Процессор Intel изнутри.

Процессор работает с данными. Обрабатываемые данные содержаться в оперативной памяти, куда считываются с жёсткого диска. Для того, чтобы ими манипулировать, а также верно организовывать свою работу по их обработке — выполнению программного кода, у процессора имеется система, построенная на небольших, но очень быстрых блоках памяти — регистров. Регистры процессора — это входящие непосредственно в процессор блоки памяти.

Изучать регистры процессора мы будем с использованием отладчика TD (Turbo Debugger) и нашей первой программы «Hello, world!» (prg.com). Так что запускаем предустановленный DOSBox и поехали (всё необходимое имеется в архиве DOS-1.rar, который можно скачать с нашего сайта).

Изучаем регистры процессора.

Изучаем регистры процессора с помощью TD и нашей первой программы.

Для удобства работы с Turbo Debugger целесообразно увеличить рабочую площадь программы на всё окно.

Turbo Debugger - F5.

Используем F5 для увеличения рабочей площади TD.

Регистры процессора Intel и их аналоги.

Количество регистров и их размер зависит от разрядности и сложности процессора.
Практически при написании кода регистры нужно понимать как постоянно имеющиеся под рукой программиста переменные.

Начиная с 80386, процессоры Intel и их аналоги имеют 16 основных регистров и 11 регистров для работы с числами с плавающей запятой (FPU/NPX) и мультимедийными приложениями (MMX). Для машины всегда быстрее и удобнее обращаться к регистру процессора, чем к памяти.

Помимо основных регистров существуют регистры управления памятью (GDTR, IDTR, TR, LDTR), регистры управления (CR0, CR1 – CR4), отладочные регистры (DR0 – DR7) и машинно-зависимые регистры, которые практически не используются в прикладном программировании.

Регистры процессора 8086.

Так как мы имеем дело с 16 битной операционной системой MS-DOS, то вернёмся во времена процессоров 8086 и 80286. В процессорах следующих поколений указанные регистры являются частями соответствующих 32 и 64 битных регистров с сохранением названия и функционала.

Например, регистр ax (16 бит) является составляющей частью регистра eax (32 бита). Благодаря указанному подходу достигается совместимость работы старых программ на новых компьютерах. Также сохраняются команды и директивы, переходя с 16 битного в 32 битный код.

Итак, процессор (8086 и 80286) содержит 12 16-ти разрядных программно-адресуемых регистров. Регистры процессора принято объединять в три группы:

  • Регистры данных.
  • Регистры указатели.
  • Сегментные регистры.

Кроме этого, в состав процессора входят:

  • Счётчик команд.
  • Регистр флагов.

16-ти разрядность обозначает, что в каждом регистре может содержаться 0FFFFh бит информации, то есть два байта: 0FFh-0FFh информации.

Регистры данных (регистры общего назначения).

Регистры данных допускают независимое обращение к старшим (High — обозначается литерой H) и младшим (Lough — обозначается литерой L) половинам.

Регистры процессора

Начиная с модели 80386 процессоры Intel предоставляют 16 основных регистров для пользовательских программ и ещё 11 регистров для работы с мультимедийными приложениями (MMX) и числами с плавающей точкой (FPU/NPX). Все команды так или иначе изменяют содержимое регистров. Как уже говорилось, обращаться к регистрам быстрее и удобнее, чем к памяти. Поэтому при программировании на языке Ассемблера регистры используются очень широко.

В этом разделе мы рассмотрим основные регистры процессоров Intel. Названия и состав/количество регистров для других процессоров могут отличаться. Итак, основные регистры процессоров Intel.

Таблица 2.1. Основные регистры процессора.

Название Разрядность Основное назначение
EAX 32 Аккумулятор
EBX 32 База
ECX 32 Счётчик
EDX 32 Регистр данных
EBP 32 Указатель базы
ESP 32 Указатель стека
ESI 32 Индекс источника
EDI 32 Индекс приёмника
EFLAGS 32 Регистр флагов
EIP 32 Указатель инструкции (команды)
CS 16 Сегментный регистр
DS 16 Сегментный регистр
ES 16 Сегментный регистр
FS 16 Сегментный регистр
GS 16 Сегментный регистр
SS 16 Сегментный регистр

Регистры EAX, EBX, ECX, EDX – это регистры общего назначения. Они имеют определённое назначение (так уж сложилось исторически), однако в них можно хранить любую информацию.

Регистры EBP, ESP, ESI, EDI – это также регистры общего назначения. Они имеют уже более конкретное назначение. В них также можно хранить пользовательские данные, но делать это нужно уже более осторожно, чтобы не получить «неожиданный» результат.

Регистр флагов и сегментные регистры требуют отдельного описания и будут более подробно рассмотрены далее.

Пока для вас здесь слишком много непонятных слов, но со временем всё прояснится)))

Когда-то процессоры были 16-разрядными, и, соответственно, все их регистры были также 16-разрядными. Для совместимости со старыми программами, а также для удобства программирования некоторые регистры разделены на 2 или 4 «маленьких» регистра, у каждого из которых есть свои имена. В таблице 2.2 перечислены такие регистры.

Вот пример такого регистра.

Структура регистра EAX

Из этого следует, что вы можете написать в своей программе, например, такие команды: Обе команды поместят в регистр AX число 1. Разница будет заключаться только в том, что вторая команда обнулит старшие разряды регистра EAX, то есть после выполнения второй команды в регистре EAX будет число 1. А первая команда оставит в старших разрядах регистра EAX старые данные. И если там были данные, отличные от нуля, то после выполнения первой команды в регистре EAX будет какое-то число, но не 1. А вот в регистре AX будет число 1. Сложно? Ну это пока… Со временем вы к таким вещам привыкните.

Мы пока не говорили о разрядах (битах). Эту тему мы обсудим в разделах, посвящённых системам счисления. А сейчас пока вам достаточно знать, что нулевой разряд (бит) – это младший бит. Он крайний справа. Старший бит – крайний слева. Номер старшего бита зависит от разрядности числа/регистра. Например, в 32-разрядном регистре старшим битом является 31-й бит (потому что отсчёт начинается с 0, а не с 1).

Ниже приведён список регистров общего назначения, которые можно поделить описанным выше способом и при этом к «половинкам» и «четвертинкам» этих регистров можно обращаться в программе как к отдельному регистру.

Таблица 2.2. «Делимые» регистры..

Регистр Старшие разряды Имена 16-ти и 8-ми битных регистров
31…16 15…8 7…0
EAX . AX
AH AL
EBX . BX
BH BL
ECX . CX
CH CL
EDX . DX
DH DL
ESI . SI
EDI . DI
EBP . BP
ESP . SP
EIP . IP

На этом мы закончим наше краткое знакомство с регистрами. Если вам пока не всё понятно – просто прочитайте этот раздел, чтобы более-менее представлять себе, что такое регистры. По мере приобретения новых знаний вы можете вернуться к этому разделу и уже на новом уровне воспринять эту информацию. А в следующем разделе мы коротко опишем процесс выполнения команды.

80386

Процессор i386 полностью совместим со своими предшественниками — процессорами 8086—80286. Он выполняет программы, предназначенные для них, без необходимости модификации кода и перекомпиляции (или с минимальными модификациями) и делает это более эффективно:

  • затрачивает на выполнение меньшее число тактов синхронизации;
  • имеет более высокие тактовые частоты, за счёт использования новых технологий;
  • имеет увеличенный, по сравнению с предыдущими процессорами, буфер предвыборки команд — 16 байт (которых хватает примерно на пять команд); буфер предвыборки обеспечивает меньшее количество обращений за командами и исключает лишние обращения в память в коротких циклах и выполнении строковых команд.

Вместе с тем i386 является серьёзной переработкой процессора 80286 . По некоторым оценкам, ни до, ни после i386 архитектура процессоров x86 ни разу не переделывалась столь кардинально. В процессорах этой архитектуры впервые были введены основные механизмы поддержки современных 32-разрядных операционных систем для PC-совместимых платформ.

Основные изменения:

32 бита [ ]

Вся архитектура x86 была расширена до 32 бит — все регистры (за исключением сегментных) стали 32-битными, получив в названии префикс «E» (EAX, EBX, EIP, EFLAGS и т. п.), с сохранением полного набора команд для работы с ними. В том числе:

    Шаблон:Lang-en ) — 32-битный вариант крохотной модели, в которой все сегменты задачи находятся в одном адресном пространстве. Плоская модель обеспечивает размер такого «общего» сегмента до почти 4 гигабайт, которых по тем временам хватало для любой мыслимой задачи.

Плоская модель имеет и недостатки:

  • в ней появляются проблемы перемещаемости машинного кода, которые ранее легко обходились сегментацией, обеспечение перемещаемости легло на плечи операционных систем, с новыми форматами дискового образа программы.
  • плоская модель практически сводит на нет Страничное преобразование [ ]

Шаблон:Main В i386 был введён новый механизм управления памятью — адресное пространство, к которому обращается процессор за данными и кодом, в котором располагаются сегменты (названное линейным адресным пространством) может не соответствовать реальной физической памяти. Физическая память (включая буфера внешних устройств, например, видеобуфер) может быть отображена в линейное адресное пространство произвольным образом — каждая страница (размером 4 килобайта) линейного пространства может быть переадресована на любую страницу физической памяти через каталог страниц, располагающийся в оперативной памяти (адрес каталога страниц определяется значением нового регистра управления «CR3»).

Как и сегменты, страницы линейного адресного пространства могут быть объявлены неприсутствующими (обращение к таким страницам вызывает обработчик страничного нарушения операционной системы). Неприсутствующие страницы, в первую очередь, используются для организации виртуальной памяти — обработчик страничного нарушения осуществляет свопинг страниц памяти с внешними запоминающими устройствами. Также неприсутствующие страницы используются в плоской модели памяти (где размер сегмента обычно имеет размер от 2 до 4 гигабайт, даже если у компьютера не имеется столько физической памяти) для маркировки страниц сегмента, в которые операционная система не выделила памяти. В этом случае страничное нарушение обычно завершает задачу или начинает её отладку.

Через страничное преобразование i386 может адресовать до 4 Гбайт физической памяти и до 64 Гбайт виртуальной памяти.

Улучшенная поддержка многозадачности и защиты [ ]

Шаблон:Main Поддержка многозадачности в процессорах x86 обозначает аппаратную поддержку «прозрачного» переключения с одной обычной программы (задачи) на другую. При переключении процессор сохраняет своё состояние (включая адрес следующей команды, селекторы сегментов) в сегменте состояния (TSS; сегмент памяти, с селектором из регистра TR) одной задачи, после чего восстанавливает состояние другой задачи из её сегмента состояния (селектор сегмента состояния новой задачи загружается из дескриптора её сегмента кода).

Переключение между задачами обычно осуществляется:

  • прерыванием таймера; время, на которое настроен таймер, называется квантом времени для задачи
  • системным вызовом (вызовом функции операционной системы)
  • исключением — например, при попытке выполнить недопустимую команду или обращении к неприсутствующей памяти
  • отладкой

В i386 механизмы защиты и многозадачности были значительно расширены и улучшены. В зависимости от характера нарушений, они могут тихо игнорироваться (например, некоторые биты регистра Шаблон:Lang-en ) процессора.

Например, i386 поддерживает ограничение доступа к портам ввода-вывода и флагу запрещения прерываний через:

    назначение необходимого уровня привилегий для выполнения таких команд (двухбитным полем IOPL Виртуальный режим [ ]

Шаблон:Main В процессоре i386 компания Intel учла необходимость лучшей поддержки реального режима, потому что программное обеспечение времени его появления не было готово полностью работать в защищённом режиме. Поэтому, например, в i386 возможно переключение из защищённого режима обратно в реальный (при разработке 80286 считалось, что это не потребуется, поэтому на компьютерах с процессором 80286 возврат в реальный режим осуществляется схемно — через сброс процессора).

В качестве расширенной поддержки реального режима i386 позволяет одной или нескольким задачам работать в виртуальном режиме — режиме эмуляции режима реального адреса.

Важно понимать, что «виртуальный режим», несмотря на похожесть названия, является не «третьим режимом работы процессора» (то есть реальный, защищённый и виртуальный), а лишь режимом работы задачи в многозадачном окружении защищённого режима.

Виртуальный режим предназначается для одновременного выполнения программ реального режима (например, программы для DOS) под многозадачной операционной системой защищённого режима.

Выполнение в виртуальном режиме практически идентично реальному, за несколькими исключениями, обусловленными тем, что виртуальная задача выполняется в защищённом режиме:

Аппаратная отладка [ ]

Шаблон:Main Как и в предыдущих процессорах (начиная с 8086), отладка в i386 осуществляется вызовом отладочного прерывания, обработчик которого передает управление программе-отладчику. В предыдущих процессорах отладка могла быть вызвана двумя событиями:

  • пошаговое выполнение
  • программные точки останова

в i386-отладку также могут начать:

  • аппаратные точки останова
  • ловушка переключения задачи
Пошаговое выполнение [ ]

Шаблон:Main Пошаговое выполнение или трассировка (вызов отладочного прерывания после выполнения каждой команды при установленном флаге TF) в i386 осталось таким же, как и в предыдущих процессорах, работая во всех новых режимах (32-битной адресации и режиме виртуальной задачи).

Точки останова [ ]

Шаблон:Main Точка останова ( Шаблон:Lang-en ) — прерывание выполнения программы по достижении определенного адреса.

В ранних процессорах x86 для организации точки останова было необходимо заменить первый байт команды на команду вызова отладочного прерывания (int 3), вызов прерывания возвращал управление отладчику, который возвращал исходное значение первого байта команды. Кроме всего, точки останова такого рода было невозможно устанавливать в ПЗУ. i386 поддерживает такие точки останова для совместимости.

Точки останова i386 определяются адресом в регистрах отладки. Обработчик отладки вызывается, если адрес следующей команды совпадает с адресом в регистре. В связи с тем, что такие точки останова не требуют записи в память, они могут использоваться для отладки программ в ПЗУ. i386 позволяет одновременно устанавливать до четырёх точек останова.

Точки останова i386 также могут быть установлены на обращение (чтение или запись) к переменной по заданному адресу в памяти. Процессор вызывает обработчик отладки при обращении команды к памяти по заданному адресу.

Ловушка переключения задачи [ ]

Отладочное прерывание может быть вызвано при переключении на задачу (для этого в сегменте состояния задачи предусмотрен специальный бит).

Другие изменения [ ]

Линии данных и адресов в процессоре 80386, как и в процессоре 80286, не мультиплексируются: имеется 32 линии данных и 32 независимых от них линии адреса.

Регистры [ ]

Шаблон:Main В составе микропроцессора имеются 8 32-битных регистров общего назначения (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP). Младшая, 16-битная, половина каждого из этих регистров соответствует регистрам AX, BX, CX, DX, SI, DI, BP, SP в предыдущих процессорах семейства x86. Как и раньше, возможна адресация младших и старших 8-битных половин, младшей 16-битной половины 32-разрядных регистров данных (AL и AH, BL и BH, CL и CH, DL и DH). Регистр указателя команды и регистр флагов также стали 32-битными (EIP и EFLAGS соответственно), причём в регистре флагов добавлены новая группа флажков. К 4 16-битным сегментным регистрам (ES, CS, SS, DS) прибавились ещё 2 16-битных регистра (FS и GS), теперь стало 6 сегментных регистров. Добавлены несколько новых групп регистров (каждый регистр размером 32 бит): 3 регистра управления (CR0 (MSW), CR2, CR3), 8 регистров отладки (DR0, DR1, DR2, DR3, DR6, DR7), 2 тестовых регистра (TR6, TR7).

Набор инструкций [ ]

Шаблон:Main Набор инструкций i386 был расширен, в основном, за счёт добавления 32-битных вариантов существующих инструкций (образованных 32-битными префиксами), включая те, у которых 32-битные варианты имеют другие мнемоники (pushad/popad, pushfd/popfd, cwd*/cdq, movsd/cmpsd/scasd/lodsd/insd/outsd, iretd), а также команды mov для новых регистров. Другие новые инструкции:

  • установка байта по условию (set*)
  • команды переходов (jmp, j*) с относительным 16-битным смещением
  • команды загрузки полного адреса для новых сегментных регистров (lfs, lgs)
  • логические команды (and, or, xor) при работе с 16-разрядными непосредственными данным получили возможность использовать знаковые расширения байта, что позволяет сократить такие команды на байт, когда данные помещаются в байт (эта возможность впервые была описана в фирменной документации на 80386, но возможно имелась и в более ранних процессорах)

Средняя длина инструкций составляет 3,2 байта.

Математический сопроцессор [ ]

Шаблон:Main Так же, как и в случае связки 80286-80287, обмен данными процессора 80386 с его сопроцессором шёл через порты с адресами 0F0H-0FFH, и, в принципе, небольшим дополнением схемы можно было подключить сопроцессор 80287 к процессору 80386DX [1] [2] , это предлагалось в качестве дешёвой альтернативы использованию сопроцессора 80387.

Специально для микропроцессоров Intel 80386 были разработаны математические сопроцессоры 387SX и 387DX, объединяемые единым наименованием Intel 80387. Эти сопроцессоры совместимы с процессорами 386SX и 386DX соответственно; так, сопроцессор 387DX возможно подключить к 32-разрядной шине процессора. В остальном, обе модели аналогичны математическому сопроцессору 80287, который также можно использовать вместе с процессором 80386.

Модели [ ]

С 1985 года было выпущено множество модификаций процессора i386, отличающихся между собой производительностью, потребляемой мощностью, разъёмами, корпусами и прочими характеристиками.

386DX [ ]

Первый процессор семейства 386 выпущен 1985 года и имел тактовую частоту 16 МГц. После выпуска процессоров 386SX процессоры этой серии получили индекс ‘’DX’’  — ‘’D’’ouble-word e’’X’’ternal, что указывало на его 32-разрядную внешнюю шину. Процессор позиционировался как производительное решение для настольных систем. Производился процессор по CHMOS IV технологии и потреблял 400 мА, что значительно меньше, чем Intel 8086. 1987 года анонсирована модель с частотой 20 МГц; 4 апреля 1988 года с частотой 25 МГц и 1989 года с частотой 33 МГц. Процессор выпускался в корпусах PGA-132 (такие процессоры имели литеру «A» в начале названия, например, A80386DX25)

Первые процессоры 386DX имели ошибку, которая иногда приводила к неверным результатам при работе с 32-разрядными числами в таких программах, как OS/2 2.x, UNIX/386, или 1987 года . Уже вышедшие процессоры прошли проверку, в результате которой процессоры, не имеющие ошибки, были промаркированы двойным символом «сигма» и/или одним символом «IV», а с ошибкой — 16 BIT S/W ONLY.

386SX [ ]

Первая модель этого семейства была представлена 1988 года и имела частоту 16 МГц, позже были представлены и более быстрые модели: 20 МГц ( 1989 года ), 25 МГц и 33 МГц (оба процессора представлены 1992 года ). Процессоры позиционировались как решения для настольных ПК начального уровня и портативных ПК. Семейство SX отличалось от семейства DX тем, что у него разрядность внешней шины данных составляла 16 бит, а разрядность внешней шины адреса — 24 бит, в результате чего процессор мог адресовать только 16 Мбайт физической памяти, что делало вычислительные системы, построенные на его основе, аппаратно совместимыми с предыдущими процессорами Intel 80286. В то же время процессор 386SX мог выполнять все программы, написанные для 386DX, и это сделало его популярным для изготовления «Турбо-плат», например, Cumulus 386SX, Intel InBoard или Orchid Tiny Turbo.

В рамках серии SX были выпущены процессоры с маркировками 80386SXTA, 80386SXSA, 80386SXLP, которые представляли собой 386SL [ ]

Первая модель этого семейства была представлена 1990 года и имела частоту 20 МГц, позже была представлена модель 25 МГц ( 1991 года ). Процессоры позиционировались как первые энергоэффективные микропроцессоры, специально предназначенные для портативных ПК. Семейство SL отличалось от семейства SX тем, что имело на кристалле также контроллер оперативной памяти, контроллер внешней кэш-памяти объёмом от 16 до 64 Кбайт и контроллер шины.

386EX [ ]

Представляет собой модификацию процессора 386SX. Процессор предназначался для встраиваемых приложений с высокой интеграцией и малой потребляемой мощностью. Ключевые особенности этого процессора — низкое энергопотребление, пониженное напряжение питания, расположенные на кристалле FlightLinux .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar