В Windows:
Основная проблема с запуском 16-битной программы в 32-битной ОС состоит в том, что большинство 16-битных программ используется для запуска в реальном режиме, который больше не поддерживается (ОС). Эти режимы принципиально отличаются и поэтому требуют программной эмуляции. Кроме того, поскольку все 16-битные заглушки API, функции DOS и вызовы BIOS недоступны, программы не смогут взаимодействовать с операционной системой, что делает их непригодными для использования без какой-либо эмуляции. В случае Windows NTVDM выполняет всю эмуляцию, начиная с Windows NT3.1.
Конечно, если ваша программа не требует какого-либо взаимодействия с ОС, вы сможете запустить ее. Что касается кодов операций и набора команд, то это правда, что 32-битный x86 является расширенным набором 16-битных x86. Просто среда, в которой обычно выполняется код, совершенно другая.