Les BSS ne sont pas forcément initialisés à zéro par le code de startup des programmes AMS native, en effet.
./6 Sauf que sur la pile on n’a que 16 ko alors qu’en RAM on a 200 ko. J’ai faux ?
C'est le bon ordre de grandeur. Les valeurs réellement utilisables sont légèrement inférieures.
Le gros défaut des BSS, ce sont les références xxx.l que cela nécessite pour accéder aux variables non explicitement initialisées. La différence de vitesse est assez négligeable, mais ça peut coûter
très cher en place (décompressée, c'est celle qui importe à l'exécution): plusieurs KB (!) pour un programme de ~50 KB (exemple réel: TI-Chess *).
En général, dans les divers programmes de tiers auxquels j'ai contribué des optimisations, se passer de la section BSS était une
optimisation taille (et évidemment vitesse, puisqu'on remplace certaines références xxx.l par des références d(pc)).
(*): dans les dernières versions de TI-Chess, j'ai mergé la section BSS avec la section DATA. En réalité, le binaire sans BSS (donc, avec des kilo-octets de zéros qui n'étaient pas présents auparavant) est globalement plus
gros que le binaire avec BSS, mais la différence de taille est significativement inférieure à la taille qu'avait la section BSS (=> le code moins efficace pour accéder à la section BSS coûte plusieurs kilo-octets).