Как я могу сделать всю свою операционную систему одним файлом .ASM
? Я изучил MikeOS, и он работает с несколькими файлами (например, string.asm
, screen.asm
et c.). Как я могу работать и писать коды после загрузки подписи? В MikeOS я понял, что он загружает файл kernel.asm
в память. Почему он загружается в память? Почему он не работает в одном файле?
Пример кода:
bits 16
org 7c00h
mov si, bootmsg
call ps
call hidecursor
jmp $
bs:
pusha
mov al, 8 ;BACKSPACE
mov ah, 0eh
int 10h
mov al, 32 ;SPACE
mov ah, 0eh
int 10h
mov al, 8 ;BACKSPACE
mov ah, 0eh
int 10h
popa
ret
nl:
pusha
mov al, 13
mov ah, 0eh
int 10h
mov al, 10
mov ah, 0eh
int 10h
popa
ret
ps:
pusha
.test:
lodsb
cmp al, 0h
je .eof
mov ah, 0eh
int 10h
jmp .test
.eof:
popa
ret
hidecursor:
pusha
mov ah, 1
mov cx, 2607h
int 10h
popa
ret
showcursor:
pusha
mov ah, 1
mov cx, 0607h
int 10h
popa
ret
bootmsg db 'Hi', 0
times 510 - ($ - $$) db 0
dw 0xaa55