Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: joachim_neu am 01. June 2004, 12:58
-
Hallo, ich habe einen Code geschrieben, der aus einer Sektornummer, die nicht in Form von 1. Head, 5. Sector, 65. Track angegeben wird, sondern als Nummer von 1 - 2880 in eine INT0x13-kompatible Darstellung bringt. Jetzt weiß ich aber nicht, wie ich testen soll, ob der geht, weil ich ja keine Zahlen so wie bei C oder so ausgeben kann... Syntaxfehler werden nicht gemeldet... Erkennt jemand einen Fehler und kann mir jemand sagen, wie er einen solchen Code testen würde? CODE:
nummer_start dw 0x0000
nummer db 0x0000
head db 0x0000
track db 0x0000
sector db 0x0000
;hier muss nummer_start mit dem start_wert gefüllt werden
mov ax,[nummer_start]
xor dx,dx
mov bx,0x05A0
div bx
mov [head],al
mov [nummer_start],dx
mov ax,[nummer_start]
mov bl,0x12
div bl
mov [track],al
mov [nummer],ah
mov al,[nummer]
mov [sector],al
mfg
JOACHIM NEU
-
Also weiß nicht wollte dich bloß drauf hinweisen das deine Homepage-Adresse nicht funktioniert.
-
Ich hatte so eine Umrechnung auch in meinem FAT12 Tutorial beschrieben.
Da kannst du ja überprüfen ob du das richtig machst.
-
So rechnet man aus LHS die CHS:
mov ax,[LHS]
xor dx,dx
mov bx,18
div bx
inc dx
mov [Sektor],dx
xor dx,dx
mov bx,2
div bx
mov [Cylinder],ax
mov [Head],dx
Aber scheinbar willst du aus nem FAT-Eintrag die CHS errechnen dann würd ich mir das im Bootloader von Teejay mal angucken
-
also, meine HP geht nicht, weil ich im moment keinen Betreiber habe, meine Domain ist registriert, aber der Webspace-Anbieter (glovi.de) ist bankrott gegangen... @lobmann: das problem bei dir ist, dass Cylinder,Head und Sektor Words sind und man die dann nicht in Int 0x13 verwenden kann, da da ja alle Bytes sind... ich habe das tut von TeeJay erst gestern nochmal gelesen, da ich und bscreator ja FAT16 implementieren wollen...
-
Fast Richtig die words werden benutzt damit das ergebnis nicht verfälscht wird Du kannst trotzdem die Variablen in die entsprechen 8_BIT Register für int 13h laden.