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]]