Bei Logical Block Addressing (Logische Block Adressierung) werden Sektoren von Massenspeichern von 0 aufsteigend adressiert. Das Gegenstück zu LBA ist das ältere [[Cylinder Head Sector|CHS]]. Umrechnung von LBA zu [[CHS]]: {| {{prettytable}} ! Abkürzung || Bedeutung |- | mS || Anzahl der Sektoren pro Zylinder |- | mH || Anzahl der Köpfe |- | S || Sektor |- | H || Kopf |- | C || Zylinder |} C = LBA / (mH*mS) H = (LBA mod (mH*mS)) / mS S = ((LBA mod (mH*mS)) mod mS) + 1 == Beispiel für eine 3,5"-Diskette == Da es im Bootsektor auf jedes Byte ankommt, habe ich mich darum bemüht, die Umrechnung möglichst klein zu machen. ; in ax steht die Sektornummer ; C xor dx, dx ; dx leeren mov bx, 2*18 ; Anzahl der Heads * Sektoren pro Zylinder div bx ; dx:ax / bx = ax, Rest dx mov [tmpa], al ; al sichern ; H mov ax, dx ; mit dem Rest der Division wird jetzt weitergearbeitet xor dx, dx ; dx wieder leeren shr bx, 1 ; 36/2 = 18, also nur die Anzahl der Sektoren pro Zylinder div bx ; dx:ax / bx = ax, Rest dx mov [tmpb], al ; al sichern ;S inc dx ; Den Rest um 1 erhöhen mov [tmpc], dl ; Und ebenfalls sichern [[Kategorie:Glossar]] [[Kategorie:Hardware]]