x86


x86 (англ. Intel 80x86) — архитектура процессора и одноимённый набор команд, впервые реализованные в процессорах компании Intel.

Название образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). За время своего существования набор команд постоянно расширялся, сохраняя совместимость с предыдущими поколениями.

Помимо Intel, набор команд x86 также реализован в процессорах других производителей: AMD, VIA, Transmeta, IDT, Zhaoxin[2], МЦСТ (в процессорах Эльбрус) и др. В настоящее время для 32-разрядной версии архитектуры существует ещё одно название — IA-32 (Intel Architecture — 32).

x86 — это CISC-архитектура. Доступ к памяти происходит по «словам». «Слова» размещаются по принципу little-endian, известному также как Intel-формат. Современные процессоры включают в себя декодеры команд x86 для преобразования их в упрощённый внутренний формат с последующим их выполнением.

Реальный режим — классический режим адресации, использованный в первых моделях семейства. Адрес ячейки памяти (для работы с данными или для загрузки исполняемой команды процессора) формируется из сегмента (содержимого сегментного регистра) и смещения (константа, регистр, сумма регистра с константой или сумма двух регистров с константой); это записывается в виде SSSS:OOOO (Segment:Offset), где S и O — шестнадцатеричные цифры. Сам адрес вычисляется по формуле «Segment*16 + Offset».

Предельный адрес, к которому можно обратиться — это FFFF:FFFF, то есть FFFF0+FFFF=10FFEF или словами: «один мегабайт + 64 килобайта - 16 байт». Однако, у процессоров 8086, 8088 и 80186 адресная шина была всего 20 бит, и поэтому всё, что выходило за пределы одного мегабайта, оказывалось в начале памяти (в нулевом сегменте). Начиная с процессора 80286, можно было выбирать — работать в этом же режиме для совместимости или же при помощи драйвера HiMem задействовать дополнительный сегмент памяти, в котором можно было разместить DOS и резидентные программы. (Помимо DOS, на компьютере могли работать другие операционные системы. Информация о том, как они использовали верхнюю память, вряд ли сохранилась.)