В 8086 семья, самый простой способ заключается в использовании промежуточного регистра:
mov eax, txt
mov txt1, eax
Многие CISC архитектуры не-Intel обеспечивает прямую память команда перемещения памяти. Архитектуры RISC редко делают.
Если есть больше, чем это, возможно, было бы проще использовать команду строки перемещения, которое требует настройки ИЭУ и ЭОД регистров, флаг DF, и если вы хотите использовать rep
префикс, то ECX регистр:
Очевидно, что это не стоит одного или двух слов, но если у вас есть искусственные ограничения (нет промежуточного регистра, нет push/pop), то это может удовлетворять условиям.
Если ваша функция может принимать своих абонентов, все строго следуют стандартным соглашениям о вызове, вы можете предположить, что флаг направления уже очищен от ввода функции. Код загрузчика должен предполагать как можно меньше о начальном состоянии, так как разные BIOS переходят к нему с разными состояниями.
Не думайте о переменных как о расположении памяти. Переменная может быть записана в регистр или мертва в памяти. Вы можете и должны хранить переменные в регистрах как можно больше, а только проливать их на память, когда это необходимо. 32bit x86 имеет 7 регистров общего назначения (помимо указателя стека), которые вы можете использовать и должны использовать. –