Salut à tous.

Je suis encore un débutant en assembleur et je lis beaucoup de doc sur le sujet. Cependant quelques notions restent encore vachement floues et, sur toute la doc que j'ai trouvé du moins, ne sont pas vraiment expliquées. Je me suis donc décidé à franchir le pas et demander de l'aide sur ce forum.

Voici quelques petites questions et je remercie d'avance ceux qui prendront le temps de me répondre. Je précise que pour l'instant, ne me demandez pas pourquoi j'aime me compliquer la vie, j'apprends sous linux avec la syntaxe AT&T et l'assembleur Gas :

_ Concrètement, quelle est la différence entre la section .bss et la section .data? (j'ai cru comprendre que le loader initialise la section .bss à 0 mais je n'en vois pas trop l'utilité. Est ce exact?).

_ Quelle est la différence entre la directive .comm et .lcomm? Pour l'instant si j'ai bien compris comm alloue de l'espace dans la section .data et lcomm dans la section .bss mais je rame un peu.

Et j'en profite, bien que je ne sois peut-être pas pas dans le bon topic, pour poser une question sur la segmentation :

_ Si les segments se chevauchent de façon à ce qu'un segment n'ait que 16 bytes pour lui. Est ce qu'une section peut dépasser les 16 bytes?

J'aurai encore des tonnes de question à vous poser mais je pense que je vais m'arrêter là et partir pour de nouvelles aventures googlesque avec les infos que vous pourrez me fournir histoire de pas trop embêter.

Si vous avez de bon tutos ou un bon livre à me conseiller sur les sujets suivants, n'hésitez pas :

La segmentation / la pagination / le swapping

Les privilege level (bonne explication au niveau harware si possible).

Merci infiniment à ceux qui prendront le temps de me répondre. Je n'ai pas fait d'étude la dedans et en info en général mais la discipline ma passionne donc soyez indulgents si mes questions sont un peu stupides!