Предположим, я хочу инициализировать стек размером S
байтов.
Я бы хотел выбрать базовую позицию стека B
, чтобы при увеличении стека от B
Я не перезаписываю какой-либо код или другую память, используемую загрузчиком или B IOS.
Поскольку я сам пишу загрузчик (а начальный сектор MBR загружается по линейному адресу 0x7c00
) предотвращение конфликтов с загрузчиком кажется вопросом тщательного планирования.
Как узнать, где находится код B IOS, и может ли мой стек перезаписывать любую используемую память по B IOS?
Кроме того, есть ли какая-либо гарантия относительно того, куда указывает начальный ss:sp
, и сколько места в стеке я могу безопасно использовать, не задавая новое значение?