Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > Autres architectures
Autres architectures Toutes les autres architectures (PIC, MIPS, ARM, 68K, Z80...) et leurs outils
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 10/02/2012, 03h45   #1
guizaniseifislam
Membre du Club
 
Homme Seif El Islam Guizani
Développeur informatique
Inscription : février 2009
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Seif El Islam Guizani
Âge : 32
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2009
Messages : 99
Points : 58
Points : 58
Envoyer un message via MSN à guizaniseifislam Envoyer un message via Skype™ à guizaniseifislam
Par défaut prog assembleur en pep8

bonjour,
je ve ke mon prog calcule le nombre des chiffres d'un nombre ainsi que le nombre des séparateurs (nbr des séparateurs calculé sert pour tester si le nombre est erroné ou pas:
si on a 0 ==> le prog affiche nbr car = 0 et nbr sep = 0
si on a 0.23 ==> le prog affiche nbr car = 4 et nbr sep = 1
si on a 10..23 ==> le prog affiche nbr car = 6 et nbr sep = 2 ==> nombre erroné
l'execution de ce programme ne m'affiche pas ce que je veux et en debuggant j'arrive pas a trouver l'erreur.
voici le code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
;ce prog calcule le nombre des chiffres d'un nombre ainsi que le nombre
;des séparateurs (nbr des séparateurs calculé sert pour tester si le nombre est erroné ou pas
;si on a 0 ==> le prog affiche nbr car = 0 et nbr sep = 0
;si on a 0.23 ==> le prog affiche nbr car = 4 et nbr sep = 1
;si on a 10..23 ==> le prog affiche nbr car = 6 et nbr sep = 2 ==> nombre erroné
 
                 lda 0, i
                 ldx 0, i
 
boucle1:         chari sCar, d            ;compter le nombre des caracteres
                 ldbytea    sCar, d
                 cpa     0x0A, i          ;fin de la ligne
                 breq    fboucle1         ;si fin ligne ==> aller au traitement après la boucle
 
                 ldbytex nbCar, d         ;initialiser x par nbCar pour l'augmenter et le stocker de nouveau à nbCar
                 addx 1, i
                 stx nbCar, d
 
                 ldbytex nbSep, d         ;initialiser x par nbSep pour l'augmenter et le stocker de nouveau à nbSep
                 cpx ".", i
                 brne boucle1             ;si != "." ==> re-boucle
                 addx 1, i                ;sinon ajouter 1
                 stx nbSep, d             ;nbSep := x de nouveau
 
                 br boucle1
 
fboucle1:        stx  nbCar, d            ;fin de la boucle
                 deco nbCar, d
                 charo 0x0A, i
                 deco nbSep, d
                 stop
 
;variables
sCar:            .block 1                 ;le caractère lu
nbCar:           .block 2                 ;nombre des caractères
nbSep:           .block 2                 ;nombre des séparateurs
 
                 stop
.end
merci d'avance.
guizaniseifislam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 08h38   #2
guizaniseifislam
Membre du Club
 
Homme Seif El Islam Guizani
Développeur informatique
Inscription : février 2009
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Seif El Islam Guizani
Âge : 32
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2009
Messages : 99
Points : 58
Points : 58
Envoyer un message via MSN à guizaniseifislam Envoyer un message via Skype™ à guizaniseifislam
Par défaut prog assembleur en pep8

c bon j'ai trouvé la solution.
la voici
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
;ce prog calcule le nombre des chiffres d'un nombre ainsi que le nombre
;des séparateurs (nbr des séparateurs calculé sert pour tester si le nombre est erroné ou pas
;si on a 0 ==> le prog affiche nbr car = 0 et nbr sep = 0
;si on a 0.23 ==> le prog affiche nbr car = 4 et nbr sep = 1
;si on a 10..23 ==> le prog affiche nbr car = 6 et nbr sep = 2 ==> nombre erroné
 
                 lda 0, i
                 sta nbCar, d
                 ldx 0, i
                 stx nbSep, d
 
boucle1:         chari sCar, d            ;compter le nombre des caracteres
                 ldbytea    sCar, d
                 cpa     0x0A, i          ;fin de la ligne
                 breq    fboucle1         ;si fin ligne ==> aller au traitement après la boucle
 
                 ldx nbCar, d             ;initialiser x par nbCar pour l'augmenter et le stocker de nouveau à nbCar
                 addx 1, i
                 stx nbCar, d
 
 
                 cpa ".", i
                 brne orSep             ;si != "." ==> re-boucle sinon continue
 
                 ldx nbSep, d             ;initialiser x par nbSep pour l'augmenter et le stocker de nouveau à nbSep
                 addx 1, i                ;sinon ajouter 1
                 stx nbSep, d             ;nbSep := x de nouveau
 
 
cpVirg:          cpa ",", i
                 brne boucle1             ;si != "," ==> re-boucle sinon continue
 
                 ldx nbSep, d             ;initialiser x par nbSep pour l'augmenter et le stocker de nouveau à nbSep
                 addx 1, i                ;sinon ajouter 1
                 stx nbSep, d             ;nbSep := x de nouveau
 
                 br boucle1
 
fboucle1:     deco nbCar, d            ;juste pour test                 
                 charo 0x0A, i            ;juste pour test
                 deco nbSep, d            ;juste pour test
                 lda nbSep, d
                 cpa 0, i
                 brgt errNbr
                 stop
 
orSep:           br cpVirg 
 
;variables
sCar:            .block 1                 ;#1c ;le caractère lu
nbCar:           .block 2                 ;#2d ;nombre des caractères 
nbSep:           .block 2                 ;#2d ;nombre des séparateurs 
errNbr:          stro errNbrm, d
                 stop
 
;variables msg
errNbrm:         .ASCII "nombre erroné\x00"
.end
guizaniseifislam est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h22.


 
 
 
 
Partenaires

Hébergement Web