Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#2326 Le 24/02/2011, à 03:16

\\Ouranos//

Re : /* Topic des codeurs couche-tard [3] */

neutral


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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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

RépartitionPosts/heure


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!

Rolinh a écrit :

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 smile

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é smile

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 tongue ).

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] */

smile

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... smile après si ru veux pousser des trucs en ram, c' est ton choix mais tu te débrouille. tongue

Hors ligne

#2342 Le 24/02/2011, à 11:35

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Oki smile
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 tongue

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 tongue

Hors ligne

#2345 Le 24/02/2011, à 12:57

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Rolinh a écrit :

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).



tshirtman a écrit :

De mes maigres souvenirs c' est tout ce que t' as de toutes façons, mais en fait c' est beaucoup 15... smile

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 smile Le pdf à l'air pas mal bien fait, avec notamment beaucoup d'exemples: un bon point smile

Hors ligne

#2349 Le 24/02/2011, à 21:00

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

De rien wink


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

RépartitionPosts/heure


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