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 Spur |- | 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"-HD-Diskette == Da es im Bootsektor auf jedes Byte ankommt, habe ich mich darum bemüht, die Umrechnung möglichst klein zu machen. Die Zahlenwerte (Sektoren pro Zylinder und Anzahl der Köpfe) gelten für eine 3,5"-Diskette mit 1440 kB Speicherplatz. ; 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 == siehe auch == * [[CHS]] - veraltete Methode zum Adressieren von Sektoren [[Kategorie:Glossar]] [[Kategorie:Hardware]]