x86 ASM Linux - Utilisation de la section .bss
J'espère que ces questions est assez simple: (MSNA Compilateur, Linux x86 Intel Syntaxe)
PARTIE 1:
Je suis à essayer de comprendre comment utiliser le .sev section d'un programme d'Assemblée de trouver un moyen de stocker des valeurs, comme une valeur à partir d'une opération (+ - * /), à une variable déclarée. Par exemple:
section .bss
variable: resb 50 ;Imaginary buffer
section .text
add 10,1 ;Operation
;move the result into variable
Donc, je sais que c'est possible de le faire avec le noyau intterupt pour la lecture de la saisie de l'utilisateur (mais qui implique des chaînes, mais est-il un moyen de copier cette valeur dans le variable variable de sorte qu'il peut être utilisé plus tard? Ce serait beaucoup plus facile que d'avoir à push et pop deux choses sur et en dehors de la pile.
PARTIE 2:
Est-il un moyen pour supprimer la valeur de la variable dans le .sev section? En d'autres termes, si je veux stocker une nouvelle valeur dans la .sev variable, comment pourrais-je le faire sans les caractères/valeurs déjà dans la variable de ne pas arriver aggravée avec la nouvelle valeur(s)?
Grâce
source d'informationauteur nmagerko
Vous devez vous connecter pour publier un commentaire.
... le symbole
variable
se réfère désormais à l'adresse de 4 octets de stockage dans le.bss
section (c'est à dire assez pour stocker une valeur de 32 bits).... définit la
eax
inscrire pour123
puis stocke la valeur deeax
dans l'emplacement adressée par le symbolevariable
.... lit la valeur actuellement stockées dans l'emplacement adressée par
variable
dans leeax
registre.... magasins une nouvelle valeur, en écrasant la précédente.