by Ti64CLi++ » 19 Sep 2017, 22:33
Bon, je reformule.
Mon but principal est de savoir ou sont renvoyees les valeurs retournees par un syscall.
Par exemple, si j'utilise le syscall
#define e_gui_gc_global_GC_ptr 298
, ou est stockee la valeur de retour? Dans quell register? Ou alors dans le stack?
Deuxieme question, comment
push
et
pop
des valeurs dans le stack?
stmfd sp!, {...}
et
ldmfd sp!, {...}
?
Troiseme question, avec un syscall graphique, il y a un parameter
Gc p1
, quelle valeur dois-je donner a ce parameter, je sais que c'est le context graphique, mais quelle est cette valeur? La valeur de retour de
e_gui_gc_global_GC_ptr
?
Quatrieme question, comment est-ce que j'utilise les syscalls
- Code: Select all
#define e_show_dialog_box2_ 30 // void show_dialog_box2_(int p1, const char *p2, const char *p3, const char **p4)
#define e__show_msgbox_2b 93 // int _show_msgbox_2b(int p1, const char *p2, const char *p3, const char *p4, int p5, const char *p6, int p7, const char **p8)
#define e__show_msgbox_3b 94 // int _show_msgbox_3b(int p1, const char *p2, const char *p3, const char *p4, int p5, const char *p6, int p7, const char *p8, int p9, const char **p10)
Quels sont les arguments? Comment je fais un pointeur de pointeur en ASM, parce que je sais recuperer une adresse dans un register a l'aide de
ADR reg, label
mais pas faire de pointeur de pointeur comme
const char **p10
?
Voila, ce sera tout pour cette fois.
J'attends vos reponses