Сборка x86: работа только с одним файлом ASM - PullRequest
0 голосов
/ 14 января 2020

Как я могу сделать всю свою операционную систему одним файлом .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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...