Alloue Bloc de Mémoire
![[0.9]](../09.gif)
Alloue et réserve un bloc de mémoire linéaire.
Appel avec

AX = 0501H
BX:CX = taille du bloc (en octets, doit être non-nulle)
Retourne

si la fonction réussit
Carry flag = 0
BX:CX = adresse linéaire du bloc alloué
SI:DI = handle du bloc alloué(utilisé pour changer la taille et libérer
le bloc)
si la fonction échoue
Carry flag = 1
AX = code d'erreur
8012H | mémoire linéaire indisponible |
8013H | mémoire physique indisponible |
8014H | backing store indisponible |
8016H | handle indisponible |
8021H | valeur invalide (BX:CX = 0) |
Notes
- Le bloc alloué est assuré d'avoir au moins un alignement
au paragraphe.
- Sous les hôtes DPMI qui supportent la mémoire virtuelle,
le bloc mémoiredoit être alloué non vérouillé. Le client peut
vérouiller tout ou partie de la mémoire après son allocation avec la
fonction Verrouille une région linéaire (Int 31H Function 0600H).
- Sous de nombreux hôtes DPMI, les allocations par cette fonction ont
une granularité de page. Ceci signifie, par exemple, que si l'hôte DPMI a page
utilise une taille de 4 Ko (1000H), d'une allocation de 1001H octets
resultera une allocation de 2000H octets . Donc, il est meilleur d'allouer
toujours la mémoire en multiples de l' unité de granularité (sous
DPMI 0.9, utiliser 4K octets), qui peut être lue avec Int 31H Fonction 0604H.