Kron1 Invité
| Sujet: 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 |
|
Demoniak Rang: Administrateur
Nombre de messages : 165 Age : 54 Localisation : Dunkerque (Nord) Date d'inscription : 21/07/2005
| Sujet: 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
| |
|
Kron1 Invité
| Sujet: 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 ? |
|
Demoniak Rang: Administrateur
Nombre de messages : 165 Age : 54 Localisation : Dunkerque (Nord) Date d'inscription : 21/07/2005
| Sujet: 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 | |
|
Contenu sponsorisé
| Sujet: Re: additionner des nombres supérieurs à 65525 en assembleur | |
| |
|