Bon je ne sais pas si il y a bien des gens au courant de ça, mais il y a peu longtemps, j'ai réalisé que même les variables de bases sont des types définis par le compilateur et que une fois compilé, c'est l'exécutable lui-même qui vérifie les erreurs de types. Par exemple si on essaye de mettre un long dans un int, etc. Et que le comportement des erreurs, comme par exemple en java si on dépasse la capacité il ne fera pas un overflow mais plutôt il va recommencer "à l'envers" je veux dire quand il arrive avec un int de 2 octets à 65536 il recommence à -256 au lieu de planter ou un truc du genre, alors qu'en C c'est différent. Donc j'en ait conclu que lorsqu'on compile notre exe n'est pas exclusivement notre programme, mais il y a des routines de gestion du code d'inclus, etc. Alors au final une variable n'est qu'une adresse mémoire (ça je le savais déjà) mais qui est géré par des routines inclus à notre insu dans nos exe.
Est-ce qu'il y a autre chose qui est inclus à part cela ?
De plus, en asm, en code binaire pur, il n'y a donc aucune gestion ? Donc il n'y a qu'un seul type de variable, c'est-à-dire ce qu'on en fait ? Si je décides de mettre le nombre 4574 en mémoire, c'est à moi de gérer l'espace nécessaire ou si c'est le cpu qui s'en charge ?
Car en asm, comment s'assurer que la mémoire est libre ou non ?