Angenommen, es eine Struktur isteines Zeigers in einer Struktur versetzt ist, und wie der Wert in der Montage bekommen
struct info{
struct stat information;
char * filename
}
Dann habe ich den Offset von Dateinamen Zeiger
size_t fOffset = offsetof(struct info, filename);
jetzt, was die foffset ist ?
Und in der SPARC-Assembly möchte ich die tatsächliche Zeichenfolge im Dateinamen abrufen. Das habe ich bisher geschrieben. Der Parameter ist ein Zeiger von Informationen struct
set fOffset, %l0
ld [%l0], %l1
add %i0, %l1, %l2
ld [%l2], %l2
ldub [%l2], %o0
Ich dachte, jetzt% o0 wird die Zeichenfolge speichern, aber es eindeutig nicht. Jemand hilft mir?
Der Offset hängt von der Definition von 'struct stat' und der Implementierung und/oder Konfiguration des zu verwendenden Compilers ab. – MikeCAT
Ich glaube nicht, dass diese Frage bezieht sich auf struct stat, es ist über den char Zeiger Mitglied in der Struktur info – faker
Der Wert von 'fOffset' wird wahrscheinlich' sizeof (struct stat) '- möglicherweise plus einige Polsterung, aber wahrscheinlich nicht. Sie können diese Größe in Assembly nicht bestimmen; Sie müssen die richtige Größe wissen - oder verwenden Sie C und nicht die Montage. –