Другие языки программирования и технологии

Почему 64 битные процессоры не поддерживают эмуляцию 16 битных програм?

Ваня Логвин
Ваня Логвин
61 999
16-битные программы выполняются этими процессорами напрямую без всякой эмуляции. 8-битные операции эти процессоры тоже поддерживают. Однако операционнная система может быть не рассчитана на поддержку таких программ. 32-битные операционные системы, как правило, поддерживают 16-битные программы, от процессора это не зависит. .
ТС
Тимур Сулейменов
80 658
Лучший ответ
64-битные процессоры поддерживают эмуляцию 16-битных программ, но это может быть ограничено определенными операционными системами. Например, в 64-битных версиях Windows отсутствует поддержка 16-битных Windows-приложений (Win16). Это связано с тем, что Microsoft приняла решение не включать в 64-битные версии Windows подсистему WoW16 (Windows on Windows 16), которая была необходима для поддержки этих старых приложений.

С другой стороны, 32-битные версии Windows и некоторые другие операционные системы (например, Linux) до сих пор поддерживают 16-битные приложения.

Если вам нужно запустить 16-битную программу на 64-битной системе, которая не поддерживает такие программы, вы можете использовать виртуальную машину или эмулятор. Примерами таких инструментов могут быть DOSBox для старых DOS-приложений или VirtualBox для создания виртуальной 32-битной системы.
для этого придумали DOSBox
Да, находясь в 64-битном "Long Mode" больше нельзя войти в "8086 Virtual mode". А без аппаратной поддержки, эмулировать модель памяти и окружение DOS - это довольно нетривиальная задача.
isomiddin_1992
isomiddin_1992
26 556
Это ОС не поддерживает.
1. Измененная архитектура: 64-битные процессоры имеют отличную архитектуру от 16-битных процессоров. Они используют более широкий набор регистров и более сложные команды, которые не совместимы с 16-битными командами и регистрами. Это делает эмуляцию 16-битных программ на 64-битных процессорах невозможной без дополнительных усилий.

2. Режим работы процессора: 64-битные процессоры могут работать в 64-битном (long mode) или 32-битном (compatibility mode) режимах. В 32-битном режиме они могут поддерживать 16-битные программы, но на них будут накладываться ограничения, такие как ограниченный объем адресуемой памяти и сниженная производительность.

3. Низкий спрос: с течением времени 16-битные программы стали все более устаревшими и редкими. В настоящее время большинство программ и операционных систем разрабатываются для 32-битной и 64-битной архитектур, что делает поддержку 16-битных программ менее приоритетной для производителей процессоров.


Да и… нахер оно нужно?)
Старые потому что проги
KG
Kote Gamkrelidze
269
Потому-что у тебя 64

Похожие вопросы