je devais juste jeter un oeil à une très simple sortie de montage SPARC que je suis arrivé de ce programm C:sortie gcc Démonté semble faire un « appel 0 » au lieu de « fonction offset appel », mais fonctionne correctement
int addition_func(int a, int b)
{
return(a+b);
}
void main()
{
int a = 20;
int b = 19;
int res;
res = addition_func(a, b);
}
désassemblage de l'article .text:
00000000 <addition_func>:
0: 81 c3 e0 08 retl
4: 90 02 00 09 add %o0, %o1, %o0
00000008 <main>:
8: 90 10 20 14 mov 0x14, %o0
c: 92 10 20 13 mov 0x13, %o1
10: 82 13 c0 00 mov %o7, %g1
14: 40 00 00 00 call 14 <main+0xc>
18: 9e 10 40 00 mov %g1, %o7
1c: 01 00 00 00 nop
Je ne comprends pas pourquoi l'instruction "appel" dit:
call 14 <main+0xc>
Pourquoi est-il pas:
call 0 <addition_func+0x0>
Le programme fonctionne très bien, cependant, cette sortie ne fait pas trop de sens pour moi. Des suggestions pour lesquelles il est géré de cette façon?
Merci
Pourrait utiliser un sujet plus descriptif .... –