@MegaCraZy6
Учу ассемблер

Архитектура компьютера, где размещен стек?

Где в ПК размещен стек? Как именно?
Просто я не понимаю если он размещен допустим в ОЗУ где именно если в реальном режиме адресации. На верхней границе ОЗУ FFFFh или как?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
  • EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Везде по разному.

    К примеру для современных Windows запуск исполняемого файла приводит к созданию вирт.адресного пространства. Загрузчик запуская исполняемый файл смотрит в системные данные в этом файле(PE-заголовок) и берет от туда необходимые значения. Далее выделяет в этом адресном пространстве область, которую запущенная программа и будет использовать как стек.

    В DOS программах по-другому. Если это COM-файл, то выделяется сначала 0x100 байт в качестве Program System Prefix, т.е. спец. область для системных данных. Далее целиком из com в память и только потом выделяет область под стек.

    После создания области под стек указатель присвается в указатель стека, к примеру в регистр esp.

    В современных системах Linux\Windows\OS X процесс настройки стека похожи. Разве что различия в формате исполняемых файлов и организации адресного пространства. Но поняв один раз под одну из этих систем, то получаешь понимание как это примерно организовано для других.
    Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы