CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[ASM] Classe

drakenlorde
drakenlorde
Niveau 9
27 janvier 2016 à 01:50:30

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

VIeRepublique
VIeRepublique
Niveau 20
27 janvier 2016 à 18:28:46

C'est quoi comme ASM ?

C'est pas plutôt une structure et non une classe?

drakenlorde
drakenlorde
Niveau 9
27 janvier 2016 à 19:24:01

gas x86-64. Une classe et une structure sont la même chose. Dans les langages hauts niveaux, la différence est q'une classe va avoir des membres privées par défault et qu'une structure aura ces membres publiques par défault. Sinon, ils fonctionnent exactement pareille.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment