czerwiec 17th, 2007
Hi =^^=
Czy zastanawialiście się kiedyś czemu prosty Hello World skompilowany MinGW GCC do exeka zajmuje 15kb (po strip 5kb), a do obiektu (COFF .o) 0.5kb ? Co takiego kompilator dodaje że 0.5kb rośnie do 15kb/5kb ? Oczywiście prolog (kod wykonywany przed “main”) oraz epilog (kod wykonywany po “main”). Dzisiejszy post poświęcę temu co prolog i […]
Posted in Kompilatory, C/C++, Windows | 1 Comment »
czerwiec 16th, 2007
Hi =^^=
Dzisiaj co nie co o tym jak działa funkcja fopen pod systemami z rodziny Windows NT (czyli NT, 2000, XP, 2003, Vista oraz Longhorn), a dokładniej, jak realizowane jest działanie tejże funkcji.
W ramach wstępu przypomnę że fopen jest funkcją ze standardowej biblioteki poleceń języka C (w zależności od humoru będę na tą bibliotekę mówić […]
Posted in C/C++, Windows, ring0 | No Comments »
czerwiec 15th, 2007
Hi =^^=
Jakiś już dłuższy czas temu pisałem (od zera) kompilatorek języka obiektowego. W pewnym momencie natknąłem się na problem niejednoznaczności w zamianie prostego wyrażenia matematycznego na drzewko, z którego to potem generowany jest odpowiedni kod odpowiedzialny za obliczenia.
Rozważmy proste wyrażenie matematyczne jakim jest A+B+C. To wyrażenie może zostać obliczone w dwojaki sposób. Pierwszym sposobem […]
Posted in Kompilatory, C/C++ | 1 Comment »