bootloader hata kodu tespiti

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Seçkin Üye
Katılım
18 Tem 2019
Mesajlar
348
Tepki puanı
21
Ödüller
7
Yaş
26
6 HİZMET YILI
Aşağıda bir bootloader kodumu vereceğim. Bu bootloader, BIOS üzerinden doğrudan ekrana "Hello, Bootloader!" yazdırmayı amaçlamaktadır. Ancak, kodda bir hata var ve bu nedenle düzgün çalışmıyor.
----
BITS 16 ; 16-bit gerçek mod kullanıyoruz
ORG 0x7C00 ; BIOS tarafından bellekte yükleneceği konum

start:
mov si, message ; SI registerine mesajın adresini koyar
call print_string ; Mesajı ekrana yazdırmak için alt yordamı çağır

hang:
jmp hang ; Sonsuz döngüye girer, burada kalır

print_string:
mov ah, 0x0E ; BIOS teletip fonksiyonu
.repeat:
lodsb ; SI'deki baytı yükler ve SI'yi arttırır
cmp al, 0 ; AL'de 0 varsa sonlandı
je .done
int 0x10 ; BIOS ekran yazma kesmesi
jmp .repeat
.done:
ret ; Alt yordamdan geri döner

message db 'Hello, Bootloader!', 0

times 510-($-$$) db 0 ; Geri kalan baytları 0 ile doldurur
dw 0xAA55 ; Bootloader imzası
----
Koddaki hata veya eksiklik nedir?
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst