Hum je n'ai pas le code d'origine, mais quand meme :
a4ac: e3a02010 mov r2, #16 ; 0x10
a4b0: e1a01002 mov r1, r2
a4b4: e5c31000 strb r1, [r3]
a4b8: e3e03bea mvn r3, #239616 ; 0x3a800
a4bc: e2433f71 sub r3, r3, #452 ; 0x1c4
a4c0: e2433003 sub r3, r3, #3 ; 0x3
a4c4: e3a02008 mov r2, #8 ; 0x8
a4c8: e08b1003 add r1, fp, r3
a4cc: e241300c sub r3, r1, #12 ; 0xc
Moi je le trouve vraiment tres fort ce petit GCC sur l'allocation des registres...
pour ceux qui parlent pas l'ARM:
- on commence par mettre 16 dans le registre R2
- on met R2 dans R1
- on stoque r1 dans l'adresse mémoire pointé par r3
- on fait quelques mumuse avec r3
- on met 8 dans r2
etc...
Hum autre exemple sympa un poil plus bas:
a584: eaffffff b a588 <Function+0x110>
a588: e91ba800 ldmdb fp, {fp, sp, pc}
en gros, saute a l'instruction juste après
Pour les non ARM-iste, b est l'équivalent d'un jmp du 68k, en gros saute a l'adresse, sans rien modifier de tes registres pile & co)