Общая информация | |
---|---|
Запущен | 1978 |
Прекращено | 1998 [1] |
Обычный производитель | |
Производительность | |
Макс. тактовая частота ЦП | 5 МГц - 10 МГц |
Ширина данных | 16 бит |
Ширина адреса | 20 бит |
Архитектура и классификация | |
Технологический узел | 3 мкм |
Набор инструкций | x86-16 |
Физические характеристики | |
Транзисторы |
|
Сопроцессор | Интел 8087 , Интел 8089 |
Упаковка | |
Гнездо | |
Продукция, модели, варианты | |
Вариант | |
История | |
Предшественник | Интел 8085 |
Преемники | 80186 и 80286 (оба были представлены в начале 1982 года) |
Статус поддержки | |
Неподдерживаемый |
8086 [3] (также называемый iAPX 86 ) [ 4] — это 16-разрядный микропроцессорный чип, разработанный Intel в период с начала 1976 года по 8 июня 1978 года, когда он был выпущен. Intel 8088 , выпущенный 1 июля 1979 года, [5] представляет собой слегка модифицированный чип с внешней 8-разрядной шиной данных (что позволяет использовать более дешевые и менее поддерживающие ИС ), [примечание 1] и примечателен тем, что именно он использовался в оригинальной конструкции IBM PC .
8086 дал начало архитектуре x86 , которая в конечном итоге стала самой успешной линейкой процессоров Intel. 5 июня 2018 года Intel выпустила ограниченный тираж процессора в честь 40-летия Intel 8086, названный Intel Core i7-8086K . [5] [ мертвая ссылка ]
В 1972 году Intel выпустила 8008 , первый 8-битный микропроцессор Intel. [примечание 2] Он реализовал набор инструкций, разработанный Datapoint Corporation с учетом программируемых терминалов CRT , который также оказался довольно универсальным. Для создания функционального компьютера устройству требовалось несколько дополнительных микросхем , отчасти из-за того, что он был упакован в небольшой 18-контактный «корпус памяти», что исключало использование отдельной адресной шины ( в то время Intel была в основном производителем DRAM ).
Два года спустя Intel выпустила 8080 , [примечание 3] используя новые 40-контактные DIL-корпуса, изначально разработанные для ИС калькуляторов, чтобы обеспечить отдельную адресную шину. Он имеет расширенный набор инструкций, совместимый по исходному коду (но не двоично-совместимый ) с 8008 [6] , а также включает некоторые 16-битные инструкции для упрощения программирования. Устройство 8080 в конечном итоге было заменено на 8085 на основе истощения нагрузки (1977), которому хватало одного источника питания +5 В вместо трех различных рабочих напряжений более ранних чипов. [примечание 4] Другие известные 8-битные микропроцессоры, появившиеся в эти годы, — Motorola 6800 (1974), General Instrument PIC16X (1975), MOS Technology 6502 (1975), Zilog Z80 (1976) и Motorola 6809 (1978).
Проект 8086 стартовал в мае 1976 года и изначально задумывался как временная замена амбициозному и запоздалому проекту iAPX 432. Это была попытка привлечь внимание к менее запоздалым 16- и 32-разрядным процессорам других производителей — Motorola , Zilog и National Semiconductor .
В то время как 8086 был 16-битным микропроцессором, он использовал ту же микроархитектуру , что и 8-битные микропроцессоры Intel (8008, 8080 и 8085). Это позволило программам на языке ассемблера, написанным на 8-битном языке, легко мигрировать . [7] Были добавлены новые инструкции и функции, такие как знаковые целые числа, адресация base+offset и самоповторяющиеся операции. Были добавлены инструкции, помогающие компиляции исходного кода вложенных функций в семействе языков ALGOL , включая Pascal и PL/M . По словам главного архитектора Стивена П. Морзе , это было результатом более программно-ориентированного подхода. Другие усовершенствования включали инструкции микрокода для инструкций языка ассемблера умножения и деления. Разработчики также ожидали появления сопроцессоров , таких как 8087 и 8089 , поэтому структура шины была разработана так, чтобы быть гибкой.
Первая версия набора инструкций и архитектуры высокого уровня была готова примерно через три месяца, [примечание 5] и поскольку почти не использовались инструменты САПР, над чипом одновременно работали четыре инженера и 12 специалистов по компоновке. [примечание 6] Процессору 8086 потребовалось чуть больше двух лет от идеи до рабочего продукта, что считалось довольно быстрым для сложной конструкции в 1970-х годах.
8086 был секвенирован [примечание 7] с использованием смеси случайной логики [8] и микрокода и был реализован с использованием схемы nMOS с истощением и нагрузкой примерно с 20 000 активных транзисторов (29 000, включая все сайты ROM и PLA ). Вскоре он был переведен на новый усовершенствованный производственный процесс nMOS, называемый HMOS (для High performance MOS), который Intel изначально разработала для производства быстрых статических продуктов RAM. [примечание 8] За этим последовали версии HMOS-II, HMOS-III и, в конечном итоге, полностью статическая версия CMOS для устройств с батарейным питанием, изготовленная с использованием процессов Intel CHMOS . [примечание 9] Первоначальный чип имел размеры 33 мм², а минимальный размер элемента составлял 3,2 мкм. Инструкции MUL и DIV были очень медленными из-за микрокодирования, поэтому программисты x86 обычно просто использовали инструкции сдвига битов для умножения и деления. [ требуется цитата ]
8086 был уменьшен до 2 мкм в 1981 году; эта версия также исправила ошибку стекового регистра в оригинальных 3,5 мкм чипах. Более поздние 1,5 мкм и КМОП-варианты были переданы на аутсорсинг другим производителям и не разрабатывались внутри компании.
Архитектура была определена Стивеном П. Морзе с некоторой помощью Брюса Равенеля (архитектора 8087) в доработке окончательных версий. Разработчики логики Джим Маккевитт и Джон Бейлисс были ведущими инженерами команды разработчиков аппаратного уровня [примечание 10] , а Билл Полман был менеджером проекта. Наследие 8086 сохраняется в базовом наборе инструкций современных персональных компьютеров и серверов; 8086 также одолжил свои последние две цифры более поздним расширенным версиям дизайна, таким как Intel 286 и Intel 386 , все из которых в конечном итоге стали известны как семейство x86 . (Другая ссылка заключается в том, что идентификатор поставщика PCI для устройств Intel — 8086 h .)
Все внутренние регистры, а также внутренние и внешние шины данных имеют ширину 16 бит, что прочно установило идентичность «16-битного микропроцессора» 8086. 20-битная внешняя адресная шина обеспечивает физическое адресное пространство размером 1 МБ (2 20 = 1 048 576 x 1 байт ). Это адресное пространство адресуется посредством «сегментации» внутренней памяти. Шина данных мультиплексирована с адресной шиной, чтобы вместить все линии управления в стандартный 40-контактный двухрядный корпус . Он обеспечивает 16-битную адресную шину ввода-вывода, поддерживая 64 КБ отдельного пространства ввода-вывода. Максимальное линейное адресное пространство ограничено 64 КБ просто потому, что внутренние регистры адреса/индекса имеют ширину всего 16 бит. Программирование за пределами границ памяти 64 КБ включает в себя настройку сегментных регистров (см. ниже); эта трудность существовала до тех пор, пока архитектура 80386 не представила более широкие (32-битные) регистры (аппаратное обеспечение управления памятью в 80286 не помогало в этом отношении, поскольку его регистры по-прежнему имели ширину всего 16 бит).
Некоторые из управляющих выводов, которые передают основные сигналы для всех внешних операций, имеют более одной функции в зависимости от того, работает ли устройство в минимальном или максимальном режиме. Первый режим предназначен для небольших однопроцессорных систем, тогда как последний — для средних или больших систем, использующих более одного процессора (разновидность многопроцессорного режима). Максимальный режим требуется при использовании сопроцессора 8087 или 8089. Напряжение на выводе 33 (MN/ MX ) определяет режим. Изменение состояния вывода 33 изменяет функцию некоторых других выводов, большинство из которых связаны с тем, как ЦП обрабатывает (локальную) шину. [примечание 11] Режим обычно жестко запрограммирован в схеме и, следовательно, не может быть изменен программным обеспечением. Работа этих режимов описана в терминах временных диаграмм в технических описаниях и руководствах Intel. В минимальном режиме все управляющие сигналы генерируются самим 8086.
|
8086 имеет восемь более или менее общих 16-битных регистров (включая указатель стека , но исключая указатель инструкций, регистр флага и сегментные регистры). К четырем из них, AX, BX, CX, DX, также можно получить доступ как к 8-битным парам регистров (см. рисунок), тогда как остальные четыре, SI, DI, BP, SP, являются только 16-битными.
Благодаря компактному кодированию, вдохновленному 8-битными процессорами, большинство инструкций являются одноадресными или двухадресными операциями, что означает, что результат сохраняется в одном из операндов. Максимум один из операндов может находиться в памяти, но этот операнд памяти также может быть назначением , в то время как другой операнд, источник , может быть либо регистром , либо непосредственным . Одна ячейка памяти также часто может использоваться как источник и назначение , что, среди прочих факторов, дополнительно способствует плотности кода , сопоставимой с (а часто и лучшей) большинством восьмибитных машин того времени.
Степень общности большинства регистров намного выше, чем в 8080 или 8085. Однако регистры 8086 были более специализированными, чем в большинстве современных мини-компьютеров , и также неявно использовались некоторыми инструкциями. Хотя это совершенно разумно для программиста на ассемблере, это делает распределение регистров для компиляторов более сложным по сравнению с более ортогональными 16- и 32-битными процессорами того времени, такими как PDP-11 , VAX , 68000 , 32016 и т. д. С другой стороны, будучи более регулярными, чем довольно минималистичные, но вездесущие 8-битные микропроцессоры, такие как 6502 , 6800 , 6809 , 8085 , MCS-48 , 8051 и другие современные машины на основе аккумуляторов, значительно проще построить эффективный генератор кода для архитектуры 8086.
Другим фактором этого является то, что 8086 также представил некоторые новые инструкции (отсутствующие в 8080 и 8085) для лучшей поддержки стековых языков программирования высокого уровня, таких как Pascal и PL/M ; некоторые из наиболее полезных инструкций — это , и ret size , напрямую поддерживающие « соглашение о вызовах Pascal ». (Несколько других, таких как и , были добавлены в последующие процессоры 80186, 80286 и 80386.)push mem-op
push immed
enter
Стек 64 КБ (один сегмент), растущий в сторону нижних адресов, поддерживается в оборудовании ; 16-битные слова помещаются в стек, а на вершину стека указывает SS:SP. Существует 256 прерываний , которые могут быть вызваны как аппаратным, так и программным обеспечением. Прерывания могут каскадироваться, используя стек для хранения адресов возврата .
8086 имеет 64 Кбайт 8-битного (или 32 Кбайт 16-битного слова) пространства портов ввода-вывода .
8086 имеет 16-битный регистр флагов . Девять из этих флагов кодов условий активны и указывают на текущее состояние процессора: флаг переноса (CF), флаг четности (PF), флаг вспомогательного переноса (AF), флаг нуля (ZF), флаг знака (SF), флаг ловушки (TF), флаг прерывания (IF), флаг направления (DF) и флаг переполнения (OF). Также называемый словом состояния, регистр флагов имеет следующую структуру: [9]
Кусочек | 15-12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Флаг | ИЗ | ДФ | ЕСЛИ | ТФ | СФ | ЗФ | АФ | ПФ | CF |
Также имеются четыре 16-битных сегментных регистра (см. рисунок), которые позволяют процессору 8086 получать доступ к одному мегабайту памяти необычным способом. Вместо того, чтобы объединять сегментный регистр с адресным регистром, как в большинстве процессоров, адресное пространство которых превышает размер их регистра, 8086 сдвигает 16-битный сегмент всего на четыре бита влево, прежде чем добавлять его к 16-битному смещению (16×сегмент + смещение), тем самым создавая 20-битный внешний (или эффективный или физический) адрес из 32-битной пары сегмент:смещение. В результате на каждый внешний адрес можно ссылаться с помощью 2 12 = 4096 различных пар сегмент:смещение.
0110 1000 1000 0111 0000 | Сегмент , | 16 бит, сдвинутых на 4 бита влево (или умноженных на 0x10) |
+ 1011 0100 1010 1001 | Компенсировать , | 16 бит |
| ||
0111 0011 1101 0001 1001 | Адрес , | 20 бит |
Хотя многие программисты считают эту схему сложной и громоздкой, у нее есть и преимущества: небольшая программа (менее 64 КБ) может быть загружена, начиная с фиксированного смещения (например, 0000) в ее собственном сегменте, что позволяет избежать необходимости перемещения , при этом на выравнивание будет потрачено не более 15 байтов.
Компиляторы для семейства 8086 обычно поддерживают два типа указателей : ближние и дальние . Ближние указатели — это 16-битные смещения, неявно связанные с кодом программы или сегментом данных, и поэтому могут использоваться только в частях программы, достаточно малых, чтобы поместиться в один сегмент. Дальние указатели — это 32-битные пары сегмент:смещение, разрешающиеся в 20-битные внешние адреса. Некоторые компиляторы также поддерживают огромные указатели, которые похожи на дальние указатели, за исключением того, что арифметика указателя на огромном указателе обрабатывает его как линейный 20-битный указатель, в то время как арифметика указателя на дальнем указателе обходит его внутри его 16-битного смещения, не затрагивая сегментную часть адреса.
Чтобы избежать необходимости указывать near и far для многочисленных указателей, структур данных и функций, компиляторы также поддерживают «модели памяти», которые определяют размеры указателей по умолчанию. Модели tiny (макс. 64 КБ), small (макс. 128 КБ), compact (данные > 64 КБ), medium (код > 64 КБ), large (код,данные > 64 КБ) и huge (отдельные массивы > 64 КБ) охватывают практические комбинации указателей near, far и huge для кода и данных. Модель tiny означает, что код и данные совместно используются в одном сегменте, как и в большинстве 8-битных процессоров, и могут использоваться, например, для создания файлов .com . Предварительно скомпилированные библиотеки часто поставляются в нескольких версиях, скомпилированных для разных моделей памяти.
Согласно Морзе и др. [10], проектировщики на самом деле рассматривали возможность использования 8-битного сдвига (вместо 4-битного) для создания физического адресного пространства размером 16 МБ. Однако, поскольку это заставило бы сегменты начинаться с границ 256 байт, а 1 МБ считался очень большим для микропроцессора около 1976 года, эта идея была отклонена. Кроме того, на дешевом 40-контактном корпусе не было достаточно контактов для дополнительных четырех контактов адресной шины.
В принципе, адресное пространство серии x86 можно было бы расширить в более поздних процессорах за счет увеличения значения сдвига, если бы приложения получали свои сегменты от операционной системы и не делали предположений об эквивалентности различных пар сегмент:смещение. [примечание 12] На практике использование «огромных» указателей и подобных механизмов было широко распространено, а плоская 32-битная адресация, ставшая возможной благодаря 32-битным регистрам смещения в 80386, в конечном итоге расширила ограниченный диапазон адресации более общим образом.
Поток инструкций извлекается из памяти в виде слов и адресуется процессором внутренне на уровне байтов по мере необходимости. Механизм очередей потока инструкций позволяет ставить в очередь до 6 байтов потока инструкций, ожидая декодирования и выполнения. Очередь действует как буфер FIFO (First-In-First-Out), из которого исполнительный блок (EU) извлекает байты инструкций по мере необходимости. Всякий раз, когда в очереди есть место хотя бы для двух байтов, BIU попытается выполнить цикл памяти выборки слов. Если очередь пуста (например, после инструкции ветвления), первый байт в очереди немедленно становится доступным для EU. [11]
Небольшие программы могли игнорировать сегментацию и просто использовать простую 16-битную адресацию. Это позволяет довольно легко переносить 8-битное программное обеспечение на 8086. Авторы большинства реализаций DOS воспользовались этим, предоставив интерфейс прикладного программирования, очень похожий на CP/M , а также включив простой формат исполняемого файла .com , идентичный CP/M. Это было важно, когда 8086 и MS-DOS были новыми, поскольку позволяло быстро сделать доступными многие существующие приложения CP/M (и другие), что значительно облегчало принятие новой платформы.
Следующий исходный код ассемблера 8086 предназначен для подпрограммы с именем , которая копирует строку символов ASCIIZ_strtolower
с нулевым окончанием из одного места в другое, преобразуя все алфавитные символы в нижний регистр. Строка копируется по одному байту (8-битный символ) за раз.
0000 0000 550001 89 Е50003 560004 570005 8Б 75 060008 8Б 7Д 04000Б ФК000С переменного тока000D 3C 41000Ф 7С 060011 3С 5А0013 7Ф 020015 04 200017 АА0018 08 С0001А 75 Ф0001С 5Ф001D 5E001E 5D001Ф С3001Ф | ; _strtolower: ; Копирование строки ASCII с завершающим нулем, преобразование ; всех буквенных символов в нижний регистр. ; ES=DS ; Параметры стека записи ; [SP+4] = src, Адрес исходной строки ; [SP+2] = dst, Адрес целевой строки ; [SP+0] = Адрес возврата ; _strtolower proc push bp ; Установка кадра вызова mov bp , sp push si push di mov si ,[ bp + 6 ] ; Установка SI = src (+2 из-за push bp) mov di ,[ bp + 4 ] ; Установка DI = dst cld ; направление строки по возрастанию цикл: lodsb ; Загрузка AL из [si], inc si cmp al , 'A' ; Если AL < 'A', jl copy ; Пропустить преобразование cmp al , 'Z' ;Если AL > 'Z', jg copy ; Пропустить преобразование add al , 'a' - 'A' ; Преобразовать AL в нижний регистр copy: stosb ; Сохранение AL в [di], inc di или al , al ;Если AL <> 0, jne loop ; Повторить цикл done: pop di ; восстановить di и si pop si pop bp ; Восстановить предыдущий кадр вызова ret ; Возврат к вызывающему объекту end proc |
В примере кода регистр BP (базовый указатель) используется для установки кадра вызова , области в стеке, которая содержит все параметры и локальные переменные для выполнения подпрограммы. Этот тип соглашения о вызовах поддерживает реентерабельный и рекурсивный код и используется языками типа Algol с конца 1950-х годов. Предполагается плоская модель памяти, в частности, что сегменты DS и ES адресуют одну и ту же область памяти.
Хотя это частично затенено другими решениями по проектированию в этом конкретном чипе, мультиплексированные шины адреса и данных немного ограничивают производительность; передача 16-битных или 8-битных величин выполняется в цикле доступа к памяти с четырьмя тактами, что быстрее на 16-битных, хотя и медленнее на 8-битных величинах по сравнению со многими современными 8-битными процессорами. Поскольку инструкции варьируются от одного до шести байт, выборка и выполнение выполняются параллельно и разделяются на отдельные блоки (как это остается в современных процессорах x86): блок интерфейса шины подает поток инструкций в блок выполнения через 6-байтовую очередь предварительной выборки (форма слабосвязанной конвейеризации ), ускоряя операции с регистрами и немедленными данными , в то время как операции с памятью стали медленнее (четыре года спустя эта проблема производительности была устранена в 80186 и 80286 ). Однако полная (а не частичная) 16-битная архитектура с ALU полной ширины означала, что 16-битные арифметические инструкции теперь могли выполняться за один цикл ALU (вместо двух, через внутренний перенос, как в 8080 и 8085), что значительно ускоряло такие инструкции. В сочетании с ортогонализацией операций по сравнению с типами операндов и режимами адресации , а также другими усовершенствованиями, это сделало прирост производительности по сравнению с 8080 или 8085 довольно значительным, несмотря на случаи, когда старые чипы могли быть быстрее (см. ниже).
инструкция | регистр-регистр | зарегистрироваться немедленно | регистр-память | регистр памяти | память-немедленная |
---|---|---|---|---|---|
мов | 2 | 4 | 8+EA | 9+EA | 10+EA |
АЛУ | 3 | 4 | 9+EA, | 16+EA, | 17+EA |
прыжок | регистр ≥ 11; метка ≥ 15; условие,метка ≥ 16 | ||||
умножение целых чисел | 70~160 (в зависимости от данных операнда , а также размера), включая любой EA | ||||
деление целых чисел | 80~190 (в зависимости от данных операнда , а также размера), включая любой EA |
Как видно из этих таблиц, операции с регистрами и немедленными были быстрыми (от 2 до 4 циклов), в то время как инструкции операндов памяти и переходы были довольно медленными; переходы занимали больше циклов, чем на простых 8080 и 8085 , а 8088 (используемый в IBM PC) дополнительно был затруднен своей более узкой шиной. Причины, по которым большинство инструкций, связанных с памятью, были тремя:
Однако производительность доступа к памяти была радикально улучшена с появлением следующего поколения процессоров Intel семейства 8086. 80186 и 80286 имели выделенное аппаратное обеспечение для вычисления адресов, что экономило много циклов, а 80286 также имел отдельные (немультиплексированные) шины адреса и данных.
8086/8088 можно было подключить к математическому сопроцессору для добавления аппаратной/микрокодовой производительности с плавающей точкой . Intel 8087 был стандартным математическим сопроцессором для 8086 и 8088, работающим с 80-битными числами. Такие производители, как Cyrix (совместимый с 8087) и Weitek ( несовместимый с 8087) в конечном итоге придумали высокопроизводительные сопроцессоры с плавающей точкой, которые конкурировали с 8087.
Первоначально тактовая частота была ограничена 5 МГц, [примечание 13] , но последние версии в HMOS были указаны для 10 МГц. Версии HMOS-III и CMOS производились в течение длительного времени (по крайней мере, некоторое время в 1990-х годах) для встраиваемых систем , хотя его преемник, 80186 / 80188 (который включает в себя некоторые периферийные устройства на кристалле), был более популярен для встраиваемого использования.
80C86, КМОП-версия 8086, использовалась в GRiDPad , Toshiba T1200 , HP 110 и, наконец, в Lunar Prospector 1998–1999 годов .
Что касается корпуса, Intel 8086 был доступен как в керамическом, так и в пластиковом DIP-корпусе.
Номер модели | Частота | Технологии | Диапазон температур | Упаковка | Дата выпуска | Цена (долл. США) [list2 1] |
---|---|---|---|---|---|---|
8086 | 5 МГц [13] | ХМОС | от 0 °C до 70 °C [14] | 8 июня 1978 г. [15] | 86,65 долл. США [16] | |
8086-1 | 10 МГц | ХМОС II | Коммерческий | |||
8086-2 | 8 МГц [13] | ХМОС II | Коммерческий | Январь/Февраль 1980 г. [17] | 200 долларов [17] [18] | |
8086-4 | 4 МГц [13] | ХМОС | Коммерческий | $72.50 [list2 2] [19] | ||
I8086 | 5 МГц | ХМОС | Промышленный от −40 °C до +85 °C [14] | Май/июнь 1980 г. [14] | 173,25 долл. США [14] | |
М8086 | 5 МГц | ХМОС | Военный класс от −55 °C до +125 °C [20] | |||
80С86 [21] | КМОП-матрица | 44-контактный PLCC [list2 3] [22] |
Совместимые — и, во многих случаях, улучшенные — версии были произведены Fujitsu , [23] Harris / Intersil , OKI , Siemens , Texas Instruments , NEC , Mitsubishi , и AMD . Например, пара NEC V20 и NEC V30 была аппаратно совместима с 8088 и 8086 , хотя NEC сделала оригинальные клоны Intel μPD8088D и μPD8086D соответственно, но включила набор инструкций 80186 вместе с некоторыми (но не всеми) улучшениями скорости 80186, обеспечивая возможность вставки для обновления как набора инструкций, так и скорости обработки без необходимости производителям изменять свои конструкции. Такие относительно простые и маломощные 8086-совместимые процессоры в КМОП все еще используются во встраиваемых системах.
Электронная промышленность Советского Союза смогла скопировать 8086 с помощью промышленного шпионажа и обратного проектирования [ требуется ссылка ] . Полученный чип, К1810ВМ86 , был двоичным и совместимым по выводам с 8086.
i8086 и i8088 были ядрами советских ПК-совместимых настольных компьютеров EC1831 и EC1832. (EC1831 — это идентификация EC IZOT 1036C, а EC1832 — это идентификация EC IZOT 1037C, разработанных и произведенных в Болгарии. EC означает Единая Система.) Однако компьютер EC1831 (IZOT 1036C) имел значительные аппаратные отличия от прототипа IBM PC. EC1831 был первым ПК-совместимым компьютером с динамическим размером шины (патент США № 4,831,514). Позднее некоторые принципы EC1831 были приняты в PS/2 (патент США № 5,548,786) и некоторых других машинах (заявка на патент Великобритании, публикация № GB-A-2211325, опубликована 28 июня 1989 г.).
[…] 8086 программно совместим с 8080 на уровне языка ассемблера. […]
Тайминги и кодировки в этом руководстве используются с разрешения Intel и взяты из следующих публикаций: Intel Corporation. iAPX 86, 88, 186 и 188 User's Manual, Programmer's Reference, Santa Clara, Calif. 1986.(Аналогично для iAPX 286, 80386, 80387.)
В оригинальном IBM PC (1981) и PC/XT (1983) FDC физически располагался на отдельной карте адаптера дискеты. Сам FDC был NEC μPD765A или совместимой частью, такой как Intel 8272A.
IBM Displaywriter заметно дороже других промышленных микроконтроллеров, использующих 8086.