Mes contributions pour CPC / Amiga

Mes contributions pour l'Amstrad CPC et accessoirement l'Amiga
 
AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  

Partagez | 
 

 additionner des nombres supérieurs à 65525 en assembleur

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Kron1
Invité



MessageSujet: additionner des nombres supérieurs à 65525 en assembleur   Lun 16 Mai - 15:10

Bonjour,

Je me suis remis à l'assembleur depuis peu,
(programmeur asm en 1986)

et j'ai oublié comment utiliser des nombres plus grands que 65535
avec un processeur 8 bits...

Pour faire le score d'un jeu, qui doit dépasser les 100.000, jusqu'a 500.000 ou 1 million par exemple, je cherche à additionner le résultat de 100.000 + 1000, etc

Comment faire ça en Z80 ? merci beaucoup Smile

Revenir en haut Aller en bas
Demoniak
Rang: Administrateur


Nombre de messages : 158
Age : 47
Localisation : Dunkerque (Nord)
Date d'inscription : 21/07/2005

MessageSujet: Re: additionner des nombres supérieurs à 65525 en assembleur   Sam 28 Mai - 11:15

Avec l'instruction ADC sur 16 bits, c'est possible de faire une addition 32 bits.
Voici un exemple :

Code:
    LD HL,(NombreLo)
    LD DE,(AddLo)
    ADD HL,DE
    LD (NombreLo),HL
    LD HL,(NombreHi)
    LD DE,(AddHi)
    ADC HL,DE ; on additionne ici en plus la retenue de l'opération précédente
    LD (NombreHi),HL
    RET
NombreHi: DW 1234
NombreLo: DW 5678
AddHi : DW 9876
AddLo : DW 5432
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cpc-pja.forumactif.com
Kron1
Invité



MessageSujet: Re: additionner des nombres supérieurs à 65525 en assembleur   Sam 28 Mai - 20:33

Ah, merci beaucoup!

Ta solution est parfaite. 32 bits permettant d'aller jusqu'a 4,2 milliards je pense. (256^4)

Admettons que tu aies additionné 200.000 + 100.000 : tu obtiens 300.000, ok.

Ca ne rentre pas dans un registre 16 bits évidement.

Comment fait tu pour faire à la suite une autre opération : 300.000 + 50.000 ?

Tu stockes le résultat sur 2 registres 16 bits, c'est ça ?
Revenir en haut Aller en bas
Demoniak
Rang: Administrateur


Nombre de messages : 158
Age : 47
Localisation : Dunkerque (Nord)
Date d'inscription : 21/07/2005

MessageSujet: Re: additionner des nombres supérieurs à 65525 en assembleur   Lun 6 Juin - 13:33

Kron1 a écrit:
Ah, merci beaucoup!

Ta solution est parfaite. 32 bits permettant d'aller jusqu'a 4,2 milliards je pense. (256^4)

Admettons que tu aies additionné 200.000 + 100.000 : tu obtiens 300.000, ok.

Ca ne rentre pas dans un registre 16 bits évidement.

Comment fait tu pour faire à la suite une autre opération : 300.000 + 50.000 ?

Tu stockes le résultat sur 2 registres 16 bits, c'est ça ?

En fait le résultat est stocké en mémoire, sur 32 bits. On peut effectivement le lire avec deux registres 16 bits
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cpc-pja.forumactif.com
Contenu sponsorisé




MessageSujet: Re: additionner des nombres supérieurs à 65525 en assembleur   

Revenir en haut Aller en bas
 
additionner des nombres supérieurs à 65525 en assembleur
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Message aux Officiers Supérieurs
» Le clan Scruten
» TRANSMOGRIFICATION
» Unitée volante peu utilisée par les hauts niveaux ( supérieurs a 100)
» Le phénix renaît de ses cendres

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Mes contributions pour CPC / Amiga :: Le CPC en général-
Sauter vers: