[an error occurred while processing this directive]
|
проект все время усложняется, и не хватает мощностей. Поэтому и ядро совершенствуем, чтобы старый код, который не является критическим для производительности (всякий там пользовательский интерфейс и вокруг него), свободно использовать. Причем опыт уже был - программу переписать оказывается болезненней, чем переписать ядро. А так как и то, и это, пишется примерно одинаковыми методами, только одно на верилоге, второе на асме/С, то и решение принимается исходя из того, что проще.
А средства разработки - так если понадобится, то можно нанять человека, который компилер спортирует. Тот же gnu. Благо в этом ядре есть достаточно инструкций и возможностей для этого. Но это только вопрос спроса.
ЗЫ - а ошестнадцатибитить оказалось просто - точно так же, как интель свои 86-е отридцатидвухбитил - один бит в PSW, текущий режим 8/16 бит, и одна инструкция-префикс, локально переключающая проц в противоположный режим на одну команду. И подизвращенная схема предвыборки инструкций, позволяющая выполнять префиксы (реально их там не один, 8/16, есть еще для модификаций режимов адресации, расширении нулем/знаком при "смешанных" 8/16 битных операциях, для полной смены функциональности инсструкции, там есть команды для DSP-обработки, для семафоренья в мультизадачности, занесения битовых полей, сдвигов на N, и т.д.) в том же такте, что и саму инструкцию, если весь комплект уже выбран из памяти программ.