; NASM MBR boot loader [bits 16] ; Rejestry 16-bitowy [org 0x7c00] ; BIOS ładuje pamięć do adresów 0x07c0:0000 jmp 0x0000:initialize_bios ; Resetowanie segmentu kodu do 0x0000 z długim skokiem initialize_bios: xor ax, ax mov ds, ax ; Resetowanie segmentów danych do wartości 0x0000 mov es, ax mov [bootdrive], dl call text_A ; Wykonuje wywołanie procedury (funkcji) halt: hlt jmp halt text_A: ; Procedura mov dl, 20 ; Kolumna mov dh, 12 ; Wiersz mov bh, 0 ; Wyświetlana strona mov ah, 02h ; Zapis znaku na standardowe wyjście int 10h ; Przerwanie karty graficznej mov al, 'A' ; Znak do wyświetlenia mov ah, 09h ; Przerwanie karty graficznej mov bl, 0x02 ; Kolor znaku int 10h ; Zapis znaku na standardowe wyjście jmp text_S text_S: ; Procedura mov dl, 21 ; Kolumna mov dh, 13 ; Wiersz mov bh, 0 ; Wyświetlana strona mov ah, 02h ; Zapis znaku na standardowe wyjście int 10h ; Przerwanie karty graficznej mov al, 'S' ; Znak do wyświetlenia mov ah, 09h ; Przerwanie karty graficznej mov bl, 0x03 ; Kolor znaku int 10h ; Zapis znaku na standardowe wyjście jmp text_K ; Powrót do adresów ze stosu text_K: ; Procedura mov dl, 22 ; Kolumna mov dh, 14 ; Wiersz mov bh, 0 ; Wyświetlana strona mov ah, 02h ; Zapis znaku na standardowe wyjście int 10h ; Przerwanie karty graficznej mov al, 'K' ; Znak do wyświetlenia mov ah, 09h ; Przerwanie karty graficznej mov bl, 0x04 ; Kolor znaku int 10h ; Zapis znaku na standardowe wyjście jmp parking_course ; Powrót do adresów ze stosu parking_course: mov dl, 0 ; Kolumna mov dh, 0 ; Wiersz mov bh, 0 ; Wyświetlana strona mov ah, 02h ; Zapis znaku na standardowe wyjście int 10h ; Przerwanie karty graficznej ret data: bootdrive db 0x00 times 510 - ($ - $$) db 0 dw 0xaa55