Hi!
Ich habe versucht mir einen Bootloader zu schreiben, allerdings funktioniert der Zugriff auf die Diskette anscheinend nicht ganz. Jetzt würde ich gerne den Fehlercode, der gespeichert wird auf dem Bildschirm ausgeben lassen. Ich habe auch etwas dazu gefunden, allerdings erhalte ich immer eine Zahl/Buchstabe und ein kryptisches Zeichen danach. Ich weiß allerdings nicht wieso. Ich hoffen ihr könnt mir helfen.
Hier mein Code zur Konvertierung der Zahl:
zahlausgabe:
mov bx, 10h
mov cx, 0 ; Ziffernzaehler
zahlausgabe1:
mov dx, 0 ; loeschen fuer Division
div bx ; durch Basis teilen
push dx ; Ziffer auf dem Stack merken
inc cx ; eine Ziffern mehr
cmp ax, 0 ; testen, ob letzte Ziffer erreicht ist
jne zahlausgabe1 ; wenn ungleich
zahlausgabe2:
pop dx ; Ziffer von Stack holen
add dl,'0' ; in den ASCII-Bereich der Ziffern transponieren
cmp dl,'9'
jbe zahlausgabe3 ; wenn kleiner, gleich
add dl,'A'-'9'-1 ; Ziffern weiter korrigieren
zahlausgabe3:
mov [errornum], dl
mov si, errornum
call putstr
loop zahlausgabe2
ret
Und hier die Ausgabe, die ich aus einem LowLevel Magazin habe:putstr:
lodsb ; Byte laden
or al, al
jz short putstrd ; 0-Byte? -> Ende!
mov ah, 0x0E ; Funktion 0x0E
int 10h ; schreiben
jmp putstr ; naechstes Byte
putstrd:
ret