Zestaw kodu maszynowego do pierwszego laboratorium

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

text/plain 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