Я следую сериям операционных разработок Brokenthorn, чтобы изучить загрузчик. На этой странице это три строки кода:
bits 16 ; We are still in 16 bit Real Mode
org 0x7c00 ; We are loaded by BIOS at 0x7C00
start: jmp loader ; jump over OEM block
Во второй строке Он загрузил биос на 7c00 с дискеты. почему не на 0000? Я проверил Где хранить загрузчик на дискете?< /а>. Вот и дал то же самое. Но причину не объяснил. Кто-нибудь может объяснить мне это, пожалуйста? Заранее спасибо.
РЕДАКТИРОВАТЬ: я запутался, потому что на том же сайте в более позднем учебнике коды:
bits 16 ; we are in 16 bit real mode
org 0 ; we will set regisers later
start: jmp main ; jump to start of bootloader
а потом в основном
main:
;----------------------------------------------------
; code located at 0000:7C00, adjust segment registers
;----------------------------------------------------
cli ; disable interrupts
mov ax, 0x07C0 ; setup registers to point to our segment
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
Теперь вот почему он использовал org 0? И зачем тогда он скопировал адрес во все реестры? Извините, если это глупый вопрос. Я очень новичок в программировании на ассемблере и только начал читать о загрузчиках.