Цитата Сообщение от Patron Посмотреть сообщение
Когда по условию задачи заранее известно, что код обращается к данным ( например - к строке байтов ) и известен размер обращения ( из кода команды ) - возможность обращения к тем же данным с тем же размером гарантирована.
и ОТКУДА же это может без прокомментированного исходника быть известно?
где ГАРАНТИЯ, что к одной и той же структуре в памяти нет обращений И по байтам, И по словам?
где ГАРАНТИЯ, что содержимое структуры - 16-битные числа, а не опкоды (и не опкоды с числами вперемешку)?

Цитата Сообщение от Patron Посмотреть сообщение
Точно так же - значит с таким же размером. Если 16-разрядный код обращается к байту, то и 32-разрядный обращается к байту, если 16-разрядный код обращается к 16-разрядному слову, то и 32-разрядный код обращается к 16-разрядному слову.
а если 16-битным код обращался к 16-битным старым ОПКОДАМ (которые стали 32-битными) и как об этом компоновщик должен догадываться?
а если хуже - один код из разных мест вызывается для обращения И к опкодам, И к 16-битным данным (см. мой пример с пересылкой)?

Цитата Сообщение от Patron Посмотреть сообщение
Модифицируемый код точно не поломается, если его не использовать. Приведите пример библиотечного модуля с самомодифицируемым кодом - вряд ли такие вообще есть.
"вряд ли" не считается за ГАРАНТИЮ, а контрпримера и гипотетического достаточно

Цитата Сообщение от Patron Посмотреть сообщение
Под модифицируемым кодом имеется в виду код, изменяющий первое слово команды, а не второе или третье. Если запись идёт во второе или третье слово команды - такой "модифицируемый код" без проблем автоматически превращается в 32-разрядный.
нет, имеется в виду перезапись произвольного куска в памяти, в который после может выполнение перейти

Цитата Сообщение от Patron Посмотреть сообщение
Байтовые обращения к данным не могут поломаться, потому что и 16-разрядная, и 32-разрядная архитектуры обращаются к 8-разрядным и 16-разрядным данным одинаково. Разница только в обращении к коду. У 16-разрядного кода обращение к коду 16-разрядное, а у 32-разрядного кода обращение к коду 32-разрядное.
еще раз: КАК понять, что обращение было к коду? еще раз: где ГАРАНТИЯ, что команда обращается ТОЛЬКО к коду?

- - - Добавлено - - -

blackmirror, а вот это может и заработать, но не проще ли тогда уж выполнять pdp16 блок напрямую

- - - Добавлено - - -

пора тему переименовывать в "эмуляцию pdp-11 на каком-нибудь 32-битном процессоре"