Это для совместимости с CP / M.
. В CP / M вы можете просто вернуться из своей программы, используя ret
, и ваша программа будет корректно завершена. Это было достигнуто за счет наличия 0x0000
на вершине стека и наличия инструкции int 20h
по адресу 0x0000
. Несмотря на то, что int 20h
является официальным способом DOS для выхода из программы, опция выхода из программы с использованием call 0
была сохранена в CP / M, а внешний диапазон ret
работает так же, так как возвращается к 0
.
Чтобы это слово 0x0000
находилось на вершине стека, вам нужно запустить пригодный стек на 2 байта ниже, очевидно. Вот почему SP
изначально находится на 0xFFFE
, указывая на то слово 0x0000
, которое, в свою очередь, указывает на инструкцию int 20h
.