Zestaw kodu maszynowego do pierwszego laboratorium
lab1_2.txt
— 1.5 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 ask2 ; Wykonuje wywołanie procedury (funkcji)
halt:
hlt
jmp halt
ask2: ; Procedura
;=======================================
;Wynik operacji zapisujemy w rejestrze al
;=======================================
mov dl, 00 ; Kolumna
mov dh, 05 ; Wiersz
mov bh, 0 ; Wyświetlana strona
mov ah, 02h ; Zapis znaku na standardowe wyjście
int 10h ; Przerwanie karty graficznej
mov ah, 09h ; Przerwanie karty graficznej
mov bl, 0x02 ; Kolor znaku
int 10h ; Zapis znaku na standardowe wyjście
jmp parking_course
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
