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 09/05/2012, 16h56   #1
hazaki
Futur Membre du Club
 
mouloud jean
Inscription : septembre 2010
Messages : 84
Détails du profil
Informations personnelles :
Nom : mouloud jean

Informations forums :
Inscription : septembre 2010
Messages : 84
Points : 16
Points : 16
Par défaut Rectangle avec des étoiles

Bonjour,
Je souhaite coder en assembleur un programme qui prend deux valeurs données par l'utilisateur : le nombre de colonnes et de lignes pour créer un rectangle de ces dimensions formé d'étoiles. Mon code ne marche pas, le programme ne saute jamais à la ligne, voilà ce que j'ai fait :

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
 
ldi r1,'l'
st r1,[r1+255]
ldi r1,'i'
st r1,[r1+255]
ldi r1,'g'
st r1,[r1+255]
ldi r1,'n'
st r1,[r1+255]
ldi r1,'e'
st r1,[r1+255]
ldi r1,'s'
st r1,[r1+255]
ldi r1,' '
st r1,[r1+255]
ldi r1,'?'
st r1,[r1+255]
ldi r1,13
st r1,[r1+255]
ld r1,[r1+255]  //on prend la valeur pour les lignes
st r1,[r1+255]
ldi r2,13
st r2,[r2+255]
 
ldi r2,'c'
st r2,[r2+255]
ldi r2,'o'
st r2,[r2+255]
ldi r2,'l'
st r2,[r2+255]
ldi r2,'o'
st r2,[r2+255]
ldi r2,'n'
st r2,[r2+255]
ldi r2,'n'
st r2,[r2+255]
ldi r2,'e'
st r2,[r2+255]
ldi r2,'s'
st r2,[r2+255]
ldi r2,' '
st r2,[r2+255]
ldi r2,'?'
st r2,[r2+255]
ldi r2,13
st r2,[r2+255]
ld r2,[r2+255]  //on prends la valeur des colonnes                         
st r2,[r2+255]
ldi r3,13
st r3,[r3+255]
 
ldi r0,0
ldi r4,1
ldi r5,0
 
loop :  beq r0, r1, end_loop //on compare le nombre de lignes avec un indice qui sera incrémenté jusqu'à valoir le nombre de lignes
	ldi r5,0
 
loop2 : beq r5,r2, sautligne  //on compare le nombre de colonnes avec un indice qui sera incrémenté jusqu'à valoir le nombre de colonnes
	add r5, r5, r4    // on incrémente r5, indice comparé aux nombre de colonnes
	ldi r3,'*'
	st r3,[r3+255] // on affiche '*'
	j loop2
 
sautligne :	ldi r6,13
		st r6,[r6+255]  //on fait un saut de ligne
		add r0, r0, r4 // on incrémente r0, indice comparé aux nombre de lignes
		j loop
 
end_loop :
	j end_loop
hazaki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2012, 19h45   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 093
Points : 11 093
Bonsoir,

Merci de prendre quelques minutes pour lire la FAQ du forum assembleur avant d'écrire.

En particulier, on ne sait pas sur quelle architecture tu travailles.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2012, 10h37   #3
daniel06600
Nouveau Membre du Club
 
Homme
Ingénieur Temps Réel Multitâche
Inscription : décembre 2007
Messages : 39
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 56
Localisation : France

Informations professionnelles :
Activité : Ingénieur Temps Réel Multitâche
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : décembre 2007
Messages : 39
Points : 29
Points : 29
Bonjour. Ton branch equal R0,R1 me semble étrange.
Tu fais un LOAD immediate de R0 avec 0 mais pour R1 il semble avoir été rechargé par un load relatif loin avant. Cela me semble bizzard!
daniel06600 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h55.


 
 
 
 
Partenaires

Hébergement Web