
Сообщение от
Lethargeek
это за пределами совместимости (хотя можно запилить сегменты как на пц)
Существует абсолютная гарантия, что для любой 32-разрядной архитектуры всегда найдётся такой двоичный 16-разрядный код PDP-11, который не будет исполняться в этой 32-разрядной архитектуре так же, как в PDP-11. Эта гарантия делает совершенно бессмысленными любые попытки обеспечить частичную совместимость. Совместимость не бывает частичной - она или есть, или её нет. В случае с двоичным кодом PDP-11 - полная совместимость принципиально невозможна, а частичная - даром не нужна.
- - - Добавлено - - -
Но если речь идёт о полной совместимости на уровне исходных текстов - такая совместимость легко достигается директивой компилятора "включить предупреждения совместимости" - тогда компилятор выделит все строки кода, выполнение которых даст несовместимый результат в 16-разрядном и 32-разрядном режиме.
Например:
Код:
CONST = .+2. ; <-- !!! Несовместимо !!!
1$: MOV #36., R0
.TTYOUT
DEC CONST
SOB R0, 1$
HALT