Bonjour,
j'ai un problème, je suis débutant en assembleur ( pour ne pas dire nul ).
Le code qui va suivre contient vraiment des éléments de base
( Afficher - Lire - Afficher - Boucle )
Pour commencer, voilà les détails requis
_ Machine : PC
_ Processeur : 8086
_ Compilateur : AS ( GNU Compiler )
_ OS : Debian 5
Ensuite, voilà le problème exact : boucle infinie.
En fait, je ne comprend pas bien comment on peut (ici, dans la boucle) utiliser plusieurs choses différentes avec les registres.
Car à 1ère vue, mon problème est mon essai (en vain) d'afficher la variable "varb" à chaque incrémentation. Et les commandes d'affichage que j'ai tenté de mettre ont l'air de changer la valeur de la variable..
Peut-être que c'est les limites de ce genre de chose et qu'il faut utiliser ensuite la pile ( désolé si je dis des conneries ^_^ )
M'enfin ceci est mon (gros) problème
Pour finir, le code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
59
60
61
62 .globl _start .data text: .asciz "Bienvenue dans le programme de test !\n" input: .space 15 bcl: .asciz "Boucle terminee" valb: .byte 10 valh: .byte 20 .text _start: txt_bienvenue: movl $39, %edx /* Taille de la chaine */ movl $text, %ecx /* Adresse de la chaine */ movl $1, %ebx /* Appel : Ecran */ movl $4, %eax /* Appel : Afficher */ int $0x80 /* Appel systeme */ input_texte: movl $15, %edx movl $input, %ecx movl $1, %ebx movl $3, %eax int $0x80 output_texte: movl $15, %edx movl $input, %ecx movl $1, %ebx movl $4, %eax int $0x80 init_boucle: movl $valh, %ecx movl $valb, %edx boucle: cmp %ecx, %edx je fin_boucle inc %edx movl $2, %edx movl $valb, %ecx movl $1, %ebx movl $4, %eax int $0x80 jmp boucle fin_boucle: movl $15, %edx movl $bcl, %ecx movl $1, %ebx movl $4, %eax int $0x80 quitter: movl $0, %ebx /* Code de retour sans erreur */ movl $1, %eax /* Appel : Sortir */ int $0x80 /* Appel systeme */
Cordialement,
Valentin.
Partager