Hallo. (s geht um C)
Ich habe eine Struct:
typedef struct {
WORD size0;
WORD base0;
UCHAR base1;
UCHAR type;
UCHAR size1_info;
UCHAR base2;
} DESCRIPTOR;
, die Adresse der GDT und ne Function copy, die ne beliebige Anzahl von Bytes kopiert.
Wenn ich mir nun lokal! einen descriptor definiere:
DESCRIPTOR dummy;
und dann mit
copy(gdtinfo.offset + 8*i, (char*)&dummy, 8);
fülle werden alle Daten ausser dem WORD size0 korrekt! kopiert(dh. die Werte stimmen!). Nur size0 behält den Initialisierungswert! (getestet)
Wenn dummy global deklariert wird geht es! Warum geht es also nicht, wenn dummy lokal deklariert wird?
(WORD = unsigend short und UCHAR = unsigned char)
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
wuerde wetten das du hier ein alignment problem hast;
WM_HOPETHISHELPS
thomas woelfer