А если сделать так: просто расширить регистры и шину адреса/данных до 32-х бит, а Legacy команды при записи будут выдавать ноль в старших 16 битах.
С точки зрения программиста это будет выглядеть так, как будто ОЗУ и ПЗУ теперь двухслойное, в первом слое хранятся 16-битные данные, во втором - дополнительные старшие 16 бит. Если второй слой содержит только нули, то будет выполняться 16-битная программа, но если там не нули, то это 32-х битные команды. Начальный загрузчик может загрузить либо 16-битный код (с размером слова 16 бит), либо 32-битный код. Сам загрузчик в ПЗУ должен быть конечно-же 32-х битным, чтобы иметь возможность писать старшие 16 бит (т.е. второй слой).
И кстати, можно в ПЗУ записать обычный 16-битный код в первый слой, а второй слой ПЗУ оставить нулевым. Тогда будет практически полностью 16-битная система (ну если не делать переход на неинициализированный участок ОЗУ), которая должна выполнять любой существующий на данный момент 16-битный код.
Минус лишь в том, что вроде бы процессор адресует 32-битные слова, но адрес слов увеличивается как обычно на 2, т.е. 0,2,4,6,...





Ответить с цитированием