Voilà qu'après avoir aquis suffisament de concept assembleur, j'utilise souvent le concept de classe (orienté objet) dans mes programmes. Par contre, n'ayant jamais eu d'example concrèt, j'ignore si ma technique est bonne ou pas.
En example, ce que je fait ressemble à ça :
1. je définis des constantes qui représente l'adresse relative de chaque membre dans l'objet en octets
.equ HUMAIN_ID,0
.equ HUMAIN_AGE,8
.equ HUMAIN_NOM,16
.equ HUMAIN_SIZE,24 # Sert à connaître la grosseur de la mémoire lors de l'allocation
Y a t-il une meilleur méthode pour déclarer des constantes de cette nature que la directive .equ?
2. Je fait l'allocation de mémoire et sauvegarde l'addresse quelque part
movq $HUMAIN_SIZE,%rcx
call malloc # J'utilise malloc pour éviter d'entrer dans les spécificités d'un OS
movq %rax,pHumain
3. Je déréférence le pointeur et récupère l'addresse relative d'un membre pour y accéder
movq pHumain,%rbx
movq $HUMAIN_AGE,%rcx
movq $25,(%rbx,%rcx,8) # Assigner le membre âge à 25
movq (%rbx,%rcx,8), %rax # ou récupérer la valeur de âge
Merci d'avance