#2326 Le 24/02/2011, à 03:16
- \\Ouranos//
Re : /* Topic des codeurs couche-tard [3] */
Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.
Hors ligne
#2327 Le 24/02/2011, à 03:17
- cm-t
Re : /* Topic des codeurs couche-tard [3] */
'Nuit;
Actu Ubuntu ☺/
Pauses Ubuntu sur Paris \_< -t
[(π)] La Quadrature du net
Hors ligne
#2328 Le 24/02/2011, à 04:03
- nesthib
Re : /* Topic des codeurs couche-tard [3] */
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#2329 Le 24/02/2011, à 04:25
- samυncle
Re : /* Topic des codeurs couche-tard [3] */
.
Hello world
Hors ligne
#2330 Le 24/02/2011, à 08:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [3] */
Scores totaux, depuis le début :
1) 2652 nesthib
2) 2507 samuncle
3) 2106 Pylade
4) 1716 Кຼزດ
5) 1397+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
6) 1282 cm-t
7) 888 Р☢w ! ✰ :mad: ✰ (эй !)
8) 830 helly
9) 792 \\Ouranos//
10) 659 gnuuat
11) 542 Lagierl
12) 432 tshirtman
13) 247 Rolinh
14) 225 The Uploader
15) 212 Kanor
16) 196 Askelon
17) 172 nathéo
18) 121 ǤƦƯƝƬ
19) 93 petifrancais
20) 82 kamui57
21) 81 :!pakman
22) 78 edge_one
22) 78 pierguiard
24) 70 gulp
25) 39 Le Rouge
26) 37 ilagas
27) 30 keny
28) 26 gustare
28) 26 xapantu
30) 25 GentooUser
30) 25 Morgiver
32) 24 ไ୦บเઢ'
32) 24 Steap
34) 20 CROWD
34) 20 d10g3n
36) 18 Ph3nix_
36) 18 :mad: ✰ :бешеный: ✰ :mad:
38) 15 timsy
39) 14 kouskous
40) 12 stratoboy
40) 12 sailing
40) 12 sakul
43) 11 alexises
43) 11 Crocoii
45) 10 Toineo
45) 10 NutMotion
45) 10 pseudovingtcinqcaracteres
45) 10 pfriedZ
45) 10 CasseTaTele
45) 10 Zeibux
51) 8 Mornagest
52) 7 Vista
53) 6 ubuntlin
53) 6 asma.geek
55) 5 tendances-tdct
55) 5 kinouchou
57) 4 danychou56
57) 4 Neros
57) 4 Biaise
57) 4 totoflute
57) 4 pinballyoda ㋛
57) 4 NLS le pingouin
63) 3 Revan26914
64) 2 SoJaS
64) 2 ceric
66) 1 geenux
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#2331 Le 24/02/2011, à 08:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [3] */
Scores de la période en cours :
1) 198 samuncle
2) 196 nesthib
3) 167 grim7reaper
4) 125 Кຼزດ
5) 112 Pylade
6) 101 cm-t
7) 74 Р☢w ! ✰ :mad: ✰ (эй !)
8) 61 The Uploader
9) 60 :!pakman
10) 50 Rolinh
11) 41 tshirtman
12) 28 helly
13) 23 Kanor
14) 18 :mad: ✰ :бешеный: ✰ :mad:
15) 17 gustare
16) 9 gnuuat
16) 9 \\Ouranos//
18) 8 kamui57
19) 4 NLS le pingouin
19) 4 Lagierl
19) 4 Zeibux
22) 1 xapantu
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#2332 Le 24/02/2011, à 09:27
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
Bon, j'ai soumis mon algo du 3n+1 à un autre juge en ligne.
Ben... j'ai trouvé les résultats vraiment bizarre...
Avec cet algo, il a mis 1.024
n = (n & 1) * (3 * n + 1) + (~n & 1) * (n >> 1);
Tandis qu'avec celui-ci 0.708
if ((n % 2) == 0)
n = n/2;
else
n = n*3+1;
Et avec celui-ci 0.596
n = ((n % 2) != 0) ? (3 * n + 1) : (n >> 1);
De plus, c'est bizarre d'avoir une mesure en temps parce que cela dépend vraiment de la charge de la machine qui fait les tests!
Bref, par vraiment précis je pense...
Hors ligne
#2333 Le 24/02/2011, à 09:30
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Hello World!
Nouveau semestre, nouveau cours.
/me va devoir se mettre à l'assembleur (jeu d'instruction d'un ARM)
Au programme: coder des jeux pour gameboy advance en assembleur
Ouais, copain \o/
L'assembleur ARM c'est trop bien (avec ses instructions conditionnelles, son barrel shifter, son MAC, ses nombreux registres…).
Tu bosses sur quoi ? De l'ARM7 ?
Putain, t'as du bol de faire des jeux. Moi j'ai fait des trucs moins marrant (mais bon, on avait pas beaucoup de TP en même temps…).
Sinon, pour tes résultats d'algo c'est pas forcément aberrant. Des fois, quand tu veux optimiser à la main tu peux embrouiller le compilo qui va alors moins optimiser ton code au final. Quand t'optimise toi-même faut vraiment savoir ce que tu fait et comment le compilo réagit derrière.
Après, ça peut aussi venir de la charge de la machine comme tu le dis. La seule façon de le savoir c'est de regarder le code ASM généré
Dernière modification par grim7reaper (Le 24/02/2011, à 12:46)
Hors ligne
#2334 Le 24/02/2011, à 10:25
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
Ouep, du ARM7. Maintenant, je ne me rappelle plus lequel exactement car je n'ai pas mon cours avec moi mais il me semble que c'est le fameux ARM7TDMI.
Pour moi ça fera un TP d'assembleur par semaine il me semble (ça va faire drôle parce que j'ai aussi un TP de java par semaine... le gros bond quoi ).
Ouep aussi pour les algos mais... j'avoue que j'ai été bien surpris!
Hors ligne
#2335 Le 24/02/2011, à 10:39
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Yep, /me a aussi fait ses armes sur un ARM7TDMI (ARM7-Thumb (jeux d'instructions 16 bits), Debug, Multiplier (Multiplieur 32x8 et instructions pour résultats sur 64 bits), ICE (émulateur embarqué)). Classique.
Moi j'avais eu que quatre TP (tronc commun donc forcément…), donc c'était un peu limite pour faire un jeu ^^
On a fait quelques routines graphiques (primitives : ligne, rectangle, cercle…), conversion en ASCII, un algo de tri (un pauvre tri par selection) et un générateur de nombre pseudo-aléatoire.
Édit : tiens j'ai retrouvé mon tri
Trisel:
POP {R0}
POP {R1}
PUSH {R4, R5}
SUB R1, R1, #1
LOOP_1:
CMP R1, #0
BEQ END_LOOP_1
MOV R2, R1
SUB R3, R1, #1
LOOP_2:
CMP R3, #-1
BEQ END_LOOP_2
LDR R4, [R0, R3, LSL #2]
LDR R5, [R0, R2, LSL #2]
CMP R4, R5
BLE RAF_2
MOV R2, R3
RAF_2:
SUB R3, R3, #1
B LOOP_2
END_LOOP_2:
CMP R1, R2
BEQ RAF_1
LDR R4, [R0, R1, LSL #2]
LDR R5, [R0, R2, LSL #2]
STR R4, [R0, R2, LSL #2]
STR R5, [R0, R1, LSL #2]
RAF_1:
SUB R1, R1, #1
B LOOP_1
END_LOOP_1:
POP {R4, R5}
BX LR
Et mon code de conversion hexa->ASCII
ConvWhexa:
EOR R2, R2, R2
CONV_CHAR:
CMP R2, #8
BEQ END_CONV_CHAR
MOV R0, R0, ROR #28
MOV R3, R0
AND R3, R3, #1111b
CMP R3, #9
ADDLS R3, R3, #'0'
ADDHI R3, R3, #'A'-10
STRB R3, [R1, R2]
ADD R2, R2, #1
B CONV_CHAR
END_CONV_CHAR:
BX LR
Dernière modification par grim7reaper (Le 24/02/2011, à 12:48)
Hors ligne
#2336 Le 24/02/2011, à 10:44
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
Bon, je suis bien content de faire de l'assembleur sur ARM et pas sur un intel...
Ah, c'est vrai que ça ne fait pas grand chose mais bon, j'imagine que tu mets facilement plus de temps à faire quelque chose qu'avec un langage plus haut-niveau ^^
Dernière modification par Rolinh (Le 24/02/2011, à 10:45)
Hors ligne
#2337 Le 24/02/2011, à 10:49
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Moi aussi j'aime pas vraiment l'ASM Intel…
Tiens j'ai retrouvé mon tri ^^
Trisel:
POP {R0}
POP {R1}
PUSH {R4, R5}
SUB R1, R1, #1
LOOP_1:
CMP R1, #0
BEQ END_LOOP_1
MOV R2, R1
SUB R3, R1, #1
LOOP_2:
CMP R3, #-1
BEQ END_LOOP_2
LDR R4, [R0, R3, LSL #2]
LDR R5, [R0, R2, LSL #2]
CMP R4, R5
BLE RAF_2
MOV R2, R3
RAF_2:
SUB R3, R3, #1
B LOOP_2
END_LOOP_2:
CMP R1, R2
BEQ RAF_1
LDR R4, [R0, R1, LSL #2]
LDR R5, [R0, R2, LSL #2]
STR R4, [R0, R2, LSL #2]
STR R5, [R0, R1, LSL #2]
RAF_1:
SUB R1, R1, #1
B LOOP_1
END_LOOP_1:
POP {R4, R5}
BX LR
Et mon code de conversion hexa->ASCII
ConvWhexa:
EOR R2, R2, R2
CONV_CHAR:
CMP R2, #8
BEQ END_CONV_CHAR
MOV R0, R0, ROR #28
MOV R3, R0
AND R3, R3, #1111b
CMP R3, #9
ADDLS R3, R3, #'0'
ADDHI R3, R3, #'A'-10
STRB R3, [R1, R2]
ADD R2, R2, #1
B CONV_CHAR
END_CONV_CHAR:
BX LR
Dernière modification par grim7reaper (Le 24/02/2011, à 10:52)
Hors ligne
#2338 Le 24/02/2011, à 10:50
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
Hors ligne
#2339 Le 24/02/2011, à 10:52
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Maintenant que j'ai un peu plus d'expérience sur l'archi des processeurs, je me rends compte que mon code est moisi car il est blindé de RAW (il y a aussi des WAR et des WAW mais c'est moins grave), je devais pourrir le pipeline >_<"
J'essayais de minimiser le nombre de registres utilisés, alors qu'en fait c'est pas vraiment une bonne idée…
Hors ligne
#2340 Le 24/02/2011, à 10:59
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
Mais sur l'ARM7TDMI il n'y a que 15 registres non? Je ne connais pas encore l'assembleur mais par intuition j'ai envie de dire qu'il faut essayer de se limiter à 15 afin de limiter les accès en mémoire.
Hors ligne
#2341 Le 24/02/2011, à 11:17
- tshirtman
Re : /* Topic des codeurs couche-tard [3] */
De mes maigres souvenirs c' est tout ce que t' as de toutes façons, mais en fait c' est beaucoup 15... après si ru veux pousser des trucs en ram, c' est ton choix mais tu te débrouille.
Hors ligne
#2342 Le 24/02/2011, à 11:35
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
Oki
Ouep mais pousser des trucs en RAM ça bousille carrément le temps d'exécution à cause de la lenteur des accès...
Hors ligne
#2343 Le 24/02/2011, à 12:10
- tshirtman
Re : /* Topic des codeurs couche-tard [3] */
ben ouais, mais si tu fais un traitement d'image, tu va pas garder le résultat dans un registre je pense
Dernière modification par tshirtman (Le 24/02/2011, à 12:10)
Hors ligne
#2344 Le 24/02/2011, à 12:13
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
heu... ouais
Hors ligne
#2345 Le 24/02/2011, à 12:57
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Mais sur l'ARM7TDMI il n'y a que 15 registres non? Je ne connais pas encore l'assembleur mais par intuition j'ai envie de dire qu'il faut essayer de se limiter à 15 afin de limiter les accès en mémoire.
Oui, faut limiter les accès mémoires quand tu le peux c'est sûr (et donc les empilages/dépilages inutiles).
Par contre, tu n'as pas que 15 registres. Il y en a 37, organisés en banc et tu y as accès ou pas selon le mode que tu utilises (user, FIQ, IRQ, Supervisor, etc)
Mais oui, en mode normal tu n'as accès qu'a 17 registres : 13 de données (r0 à r12), le stack pointer (r13), le link register (r14), le program counter (r15), le registre d'état avec les flags (CPSR : Current Program Status Register) et le SPSR (copie du CPSR pour éviter son empilage qui pourrait survenir dans certaines conditions).
Ce que je voulais dire, c'est que j'essayais de travailler toujours sur les mêmes registres, mais c'est pas une bonne techniques à cause de l'apparition de RAW dont je parlais.
Encore que là ça peut aller car le pipeline de l'ARM7TDMI ne fait que 3 étages (mais bon c'est pas une excuse non plus).
De mes maigres souvenirs c' est tout ce que t' as de toutes façons, mais en fait c' est beaucoup 15...
Beaucoup non, c'est toujours mieux que sur du Intel ouais ça c'est sûr mais il y a aussi des archi où tu en as plus (genre 32 par exemple).
Dernière modification par grim7reaper (Le 24/02/2011, à 17:26)
Hors ligne
#2346 Le 24/02/2011, à 15:17
- tshirtman
Re : /* Topic des codeurs couche-tard [3] */
je veux, dire, dans un contexte donné, t'as rarement besoin de 10 variables…
Hors ligne
#2347 Le 24/02/2011, à 16:29
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Oui, mais c'est pas non plus extrêmement rare (ça dépend sur quoi tu bosses) :]
Et puis il n'y pas que les variables qui sont dans les registres, tu peux aussi avoir pas mal de valeurs de calculs intermédiaires qui traînent.
@Rolinh : si tu veux j'ai un document pas trop mal foutu sur l'assembleur ARM.
Dernière modification par grim7reaper (Le 24/02/2011, à 17:36)
Hors ligne
#2348 Le 24/02/2011, à 20:58
- Rolinh
Re : /* Topic des codeurs couche-tard [3] */
@grim7reaper: merci Le pdf à l'air pas mal bien fait, avec notamment beaucoup d'exemples: un bon point
Hors ligne
#2349 Le 24/02/2011, à 21:00
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
De rien
Ptain, le bug de la déconnexion sauvage est de retour (je sens que je vais refaire un Rage Quit…)
Hors ligne
#2350 Le 25/02/2011, à 08:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [3] */
Scores totaux, depuis le début :
1) 2652 nesthib
2) 2507 samuncle
3) 2106 Pylade
4) 1716 Кຼزດ
5) 1397+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
6) 1282 cm-t
7) 888 Р☢w ! ✰ :mad: ✰ (эй !)
8) 830 helly
9) 792 \\Ouranos//
10) 659 gnuuat
11) 542 Lagierl
12) 432 tshirtman
13) 247 Rolinh
14) 225 The Uploader
15) 212 Kanor
16) 196 Askelon
17) 172 nathéo
18) 121 ǤƦƯƝƬ
19) 93 petifrancais
20) 82 kamui57
21) 81 :!pakman
22) 78 edge_one
22) 78 pierguiard
24) 70 gulp
25) 39 Le Rouge
26) 37 ilagas
27) 30 keny
28) 26 gustare
28) 26 xapantu
30) 25 GentooUser
30) 25 Morgiver
32) 24 ไ୦บเઢ'
32) 24 Steap
34) 20 CROWD
34) 20 d10g3n
36) 18 Ph3nix_
36) 18 :mad: ✰ :бешеный: ✰ :mad:
38) 15 timsy
39) 14 kouskous
40) 12 stratoboy
40) 12 sailing
40) 12 sakul
43) 11 alexises
43) 11 Crocoii
45) 10 Toineo
45) 10 NutMotion
45) 10 pseudovingtcinqcaracteres
45) 10 pfriedZ
45) 10 CasseTaTele
45) 10 Zeibux
51) 8 Mornagest
52) 7 Vista
53) 6 ubuntlin
53) 6 asma.geek
55) 5 tendances-tdct
55) 5 kinouchou
57) 4 danychou56
57) 4 Neros
57) 4 Biaise
57) 4 totoflute
57) 4 pinballyoda ㋛
57) 4 NLS le pingouin
63) 3 Revan26914
64) 2 SoJaS
64) 2 ceric
66) 1 geenux
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne