У меня есть несколько вопросов о стеке.Является ли стек в CPU или RAM?
- Является ли стек в CPU или оперативной памяти?
- Содержит место для запуска OPcode?
- EIP в CPU или RAM?
У меня есть несколько вопросов о стеке.Является ли стек в CPU или RAM?
Стек всегда находится в ОЗУ. Существует указатель стека, который хранится в регистре в ЦП, который указывает на вершину стека, то есть адрес местоположения в верхней части стека.
Стек находится в ОЗУ, а не внутри ЦПУ. Сегмент предназначен для стека, как показано на следующей схеме:
От Wiki:
Область стека содержит стек программы, структуру LIFO, обычно располагаться в верхних части памяти.
О каком процессоре вы говорите?
Некоторые может содержать память, которая является используется для callstacks, некоторые содержат память, может быть используется для callstacks, но требуют ОС для выполнения коды управления CallStack, и другие содержат не перезаписываемых памятей вообще. Например, архитектура x86 имеет один или несколько code caches and data caches, встроенных в CPU.
Некоторые процессоры или ОС выполняют операции, которые делают определенные области памяти неисполняемыми. Чтобы предотвратить переполнение буфера на основе стека, например, многие операционные системы используют hardware and/or software-based data execution prevention, что может помешать работе стековой памяти в качестве кода. Некоторый не; Вполне возможно, что строка кэша данных процессора x86 может использоваться для хранения как стоп-кода, так и кода, который должен быть выполнен в быстрее.
EIP звучит как регистр архитектуры процессора IA32. Если вы имеете в виду IA-32, то да, это операция с ЦП, хотя многие операционные системы будут переключать ее в/из ОЗУ для эмуляции многозадачности.
+1 Для указания того, что регистр из процессора указывает на стек –