Сборка загрузчика x86 - PullRequest
       8

Сборка загрузчика x86

0 голосов
/ 02 сентября 2018

Итак, я нашел следующий учебник по созданию простого загрузчика: http://mikeos.sourceforge.net/write-your-own-os.html#firstos

Вот начало его примера и область, в которой у меня возникли проблемы:

start:
    mov ax, 07C0h       ; Set up 4K stack space after this bootloader
    add ax, 288         ; (4096 + 512) / 16 bytes per paragraph
    mov ss, ax
    mov sp, 4096

    mov ax, 07C0h       ; Set data segment to where we're loaded
    mov ds, ax

Я понимаю, что Майк пытается собрать стек для своего загрузчика. Начало программы в 07C0h в памяти. Что я не понимаю, так это следующая строка «добавить топор, 288; (4096 + 512) / 16 байт на абзац '. Почему он берет общее количество стека и загрузочного сектора, а затем делит его на 16-битные регистры для начала стекового сегмента? Разве сегмент стека не должен начинаться в 20 часов, сразу после сектора загрузки? Наконец, не следует ли указатель стека установить в конце (512 + 4096)? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...