Оглавление:
- Определение - Что означает энергонезависимый регистр?
- Techopedia объясняет энергонезависимый регистр
Определение - Что означает энергонезависимый регистр?
Энергонезависимый регистр - это тип регистра с содержимым, который должен сохраняться при вызовах подпрограмм. Всякий раз, когда подпрограмма изменяет значение энергонезависимого регистра, старое значение должно быть сохранено в стеке до изменения регистра, и это значение должно быть восстановлено перед возвратом. Регистр похож на переменную, за исключением того, что существует фиксированное количество регистров. Каждый регистр - это уникальное место в CPU, в котором сохраняется одно значение. Регистр - это единственное место, где могут выполняться математические функции, такие как сложение, умножение, вычитание и т. Д. Регистры часто содержат указатели, которые относятся к памяти. Перемещение значений между памятью и регистрами является обычным явлением.
Techopedia объясняет энергонезависимый регистр
Ниже приведены несколько примеров энергонезависимых регистров:
- ebx : энергонезависимый регистр, используемый для общих целей. Для ускорения вычислений обычно устанавливается общее значение во всех функциях.
- esi : энергонезависимый регистр, используемый для общих целей. Он обычно используется в качестве указателя, особенно для «rep-» инструкций класса, которые требуют источника и места назначения для данных. Здесь ESI указывает на источник. В esi обычно хранятся данные, которые используются через функцию, поскольку они не подвержены изменениям.
- edi : еще один энергонезависимый регистр, используемый для общих целей. Это обычно используется в качестве указателя. Edi идентичен esi, за исключением того, что он обычно указывает на пункт назначения.
- ebp : еще один энергонезависимый регистр, который используется как регистр общего назначения. Он имеет два отличительных использования в зависимости от настроек компиляции. Это регистр общего назначения или указатель кадра. Если компиляция не была оптимизирована или если код написан от руки, ebp отслеживает расположение стека при запуске функции. Поскольку стек изменяется во всей функции, когда ebp устанавливается в исходное значение, переменные, сохраненные в стеке, могут легко ссылаться. Если компиляция была оптимизирована, ebp будет использоваться как регистр общего назначения для хранения данных любого типа, тогда как вычисления для указателя стека выполняются в зависимости от его перемещения.
