Zestaw kodu maszynowego do pierwszego laboratorium

by Michał Młodawski published 2022/10/06 08:33:06 GMT+2, last modified 2022-10-06T08:33:06+02:00

text/plain lab1_1.txt — 2.4 KB

File contents

; 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