Допустим, вы пишете компиляторы для разных архитектур.
Архитектуры имеют разные порядки байтов.
У вас есть память для чтения и записи инструкций
Возьмите пример инструкции сохранения, где вы хотите сохранить значение 0xAA0xBB0xCC0xDD.
Теперь, когда вы пишете сборку для этого, вы пишете две разные инструкции для
различные архитектуры, например
Для байтов: st (reg), 0xDD0xCC0xBB0xAA
Для большого порядка байтов: st (reg), 0xAA0xBB0xCC0xDD
Или вы пишете одну и ту же инструкцию, скажем, st, (reg), 0xAA0xBB0xCC0xDD
для обеих архитектур и позволяете процессору проанализировать инструкцию, чтобы она позаботилась о порядке байтов системы?
Причина, по которой я задаю этот вопрос, заключается в том, что я не знаю, что будет делать бинарный переводчик, когда ему приходится переводить код между архитектурами с разными порядками байтов. Если в Архитектуре A вы видите следующую строку st, (reg), XY, то конвертируете ли вы ее в st, (reg), YX для Архитектуры B ?? Если это так, то что происходит с чтением из памяти?
Я хотел бы знать, как позаботиться о порядке байтов, учитывая чтение и запись памяти в двоичном переводе.