Ceci est un paragraphe de la série de développement du système d'exploitation broken thorn. Il y a 3 lignes de code. Il faudra 512 octets pour charger jusqu'à la deuxième ligne et 514 octets jusqu'à la troisième ligne. Comment pouvons-nous calculer cela? Si possible, veuillez me donner un lien où je peux le lire en détail. Merci d'avance.Comment calculer la mémoire requise pour un code d'assemblage?
En langage d'assemblage, nous pouvons très facilement dépasser la marque de 512 octets en . Donc, le code pourrait sembler très bien, mais seulement une partie de celui-ci sera dans la mémoire . Par exemple, coinsider ceci:
mov ax, 4ch
inc bx ; 512 byte
mov [var], bx ; 514 byte
Dans le langage de l'Assemblée, l'exécution commence par le haut du fichier vers le bas. Cependant, rappelez-vous que, lors du chargement de fichiers en mémoire, , nous sommes secteurs de chargement. Chacun de ces secteurs est de 512 octets, de sorte que copie 512 octets du fichier dans la mémoire .
Si le code ci-dessus a été exécuté, et seul le premier secteur a été chargé en mémoire, il ne copier jusqu'à 512 octets (L'instruction inc bx ). Ainsi, alors que la dernière instruction mov est toujours sur le disque, elle n'est pas en mémoire !. Que fera le processeur après inc bx alors? Il continuera continuer sur l'octet 514. Comme ce n'était pas en mémoire, il va exécuter après la fin de notre fichier! Le résultat final ? Un accident.
Merci, j'ai compris. – narayanpatra