Supposons qu'il ya une structdécalage d'un pointeur dans un struct, et comment obtenir la valeur dans l'assemblage
struct info{
struct stat information;
char * filename
}
Ensuite, je régler le décalage du pointeur de nom de fichier
size_t fOffset = offsetof(struct info, filename);
maintenant ce qui est le fOffset ?
Et dans l'assembly SPARC, je veux obtenir la chaîne actuelle dans le nom de fichier. C'est ce que j'ai écrit jusqu'ici. Le paramètre est un pointeur de l'info struct
set fOffset, %l0
ld [%l0], %l1
add %i0, %l1, %l2
ld [%l2], %l2
ldub [%l2], %o0
Je pensais que maintenant% o0 stockeront la chaîne, mais il est clair qu'il ne fonctionne pas. Quelqu'un m'aide?
Le décalage dépendra de la définition de 'struct stat' et de l'implémentation et/ou de la configuration du compilateur à utiliser. – MikeCAT
Je ne pense pas que cette question se rapporte à struct stat, il s'agit du membre char pointer dans la structure info – faker
La valeur de fOffset sera probablement 'sizeof (struct stat)' - éventuellement plus un peu de remplissage, mais probablement pas. Vous ne pouvez pas déterminer cette taille dans l'assemblage; vous devez connaître la taille correcte - ou utiliser C et non l'assemblage. –