Описание тега x86-16

Для вопросов программирования и / или микроархитектуры о 16-битных процессорах Intel x86, включая чипы 8088, 8086 и более поздних версий, работающих в 16-битном режиме.

X 86-16 относится к 16-битному семейству архитектур с набором команд (ISA) на базе процессора Intel 8086. Этот процессор был разработан Intel в середине 1970-х годов и дал начало архитектуре x86.

См. Вики- страницу с тегами x86 для получения ссылок на ресурсы программирования x86 ISA и ассемблера (в основном предназначенные для современных 32-разрядных и 64-разрядных реализаций).

8086 использует тот же набор команд, как позже x86 процессоров, но оно ограничено 16-битном режиме и не имеет поддержки инструкций, добавленных с 186, 286, 386 (или более поздней). Это означает, что чрезвычайно полезные инструкции, такие какmovzx недоступны, поэтому многие операции требуют перемещения данных в axдля использования с инструкциями, в которых он указан как неявный операнд. 16-разрядная реализация x86 также ограничена в отношении того, какие регистры могут использоваться в режимах адресации. Это ограничение адресации сохраняется в современных процессорах, работающих в 16-битном режиме, поскольку формат машинного кода тот же.

8088 является производным от 8086. 8088 идентичен по функциональности к 8086 и полностью 16-битный внутри, но он имеет 8-битовый внешнюю шину данных (вместо 8086 16-битной внешней шины данных). С точки зрения программирования, между 8088 и 8086 нет существенных различий, поэтому они объединены под одним тегом. Не стесняйтесь упоминать, на какой именно чип вы нацеливаетесь, в теле и / или заголовке вопроса.

Этот тег также подходит для вопросов о процессорах сторонних производителей, которые используют тот же набор инструкций, что и 8086, включая NEC v20 и v30, клоны AMD 8086 и т. Д. Существуют также некоторые современные микроконтроллеры, которые используют простые ядра 8086.

Обратите внимание, что хотя он будет работать на современных процессорах x86, код, использующий только 16-разрядные инструкции (как будет поддерживаться на 8086), обычно не считается хорошим или эффективным кодом.

Тем не менее, остается большой интерес к написанию 16-битного кода для эмуляторов dos (таких как DOSBox и emu8086) и настоящего винтажного оборудования как со стороны новичков, так и со стороны энтузиастов. Retrocomputing.SE имеет тег 8086, но если вы не спрашиваете о реальном древнем оборудовании, stackru - подходящее место для вопросов о 16-битных загрузчиках, ядрах и исполняемых файлах DOS. Ретро-вычисления в основном касаются даже более старых систем, таких как 8-битные микросхемы.


Связанные теги:

  • x86 (для x86 в целом, включая 32-битные и 64-битные. Много хороших вещей в вики-странице тегов, включая некоторые 16-битные ссылки)
  • x86-64 (специально для 64-битных расширений x86 ISA)
  • x87 (для устаревшего числового сопроцессора - также известного как модуль с плавающей запятой, в отличие от SSE/SSE2 FPU)
  • сборка (для программ, написанных на языке ассемблера любого типа, включая x86, MIPS, ARM и игрушечные архитектуры, такие как LC-3)
  • dos (для программ, ориентированных на DOS и / или вопросов об API DOS)
  • emu8086 (для вопросов, касающихся конкретно пакета эмулятора EMU8086, который часто используется студентами)