Sziasztok!
Tartok egy informatika szakkört, ahol elérkezettnek érzem az időt arra, hogy legyen egy kis ízelítő assemblerből.
A suliban csak Windows van (nekem kellene karbantartanom az összes Linuxot ahhoz, hogy legyen, de ezt nem tudtam bevállalni), viszont otthon sokan Linuxot használnak (plusz nekem is ki kell mozdulnom otthonról Windowsos gépér). Ezért minden példaprogramot multiplatformosra kell megcsinálnom.
Arra gondoltam, hogy gcc-vel csinálunk néhány rövid inline assembler blokkot, és azokon mérünk teljesítményt úgy hogy közben kisebb változtatásokat hajtunk végre a kódon. Ezzel kaphatnak egy fílinget a gépi kódú programozásból, illetve egy-két alapvető optimalizálási lehetőséget meg tudnak ismerni. Remélem, hogy ez érthető és tanulságos lesz.
A diákoknak (természetesen) nincs rendszergazda joguk, illetve a hálózat eléggé lelassul, ha egyszerre esnek neki sokan, ezért olyan megoldás kellene, amit simán bemásolással lehet telepíteni offline.
A kérdés tehát, hogy ismertek-e olyan gcc portot, ami:
* Windows XP-n működik
* "konzolos" (stdin, stdout) alkalmazást lehet benne írni
* lehet benne inline ASM-et írni
* nem kell telepíteni, elég kitömöríteni és elindítani
A minGW elvileg megfelelne, de eléggé pilótavizsgás a kézi telepítés, az automatizált pedig online működik csak (http://www.mingw.org/wiki/Getting_Started).
Egy 3rd party csomagoló:
* http://www.develer.com/oss/GccWinBinaries
- 1301 megtekintés
Hozzászólások
hello,
Code::Blocks
http://codeblocks.org
Tud C/C++-t, tobb platformara is tud forditani.
Windows-ra a 19Mb-os mingw-setup-ot toltsd le, abban benne van a fordito is.
- A hozzászóláshoz be kell jelentkezni
Szerintem nem kell pilótavizsga. Egyrészt van önkibontó installer. Vagy, ha már egyet telepítettél (c:\mingw), akkor összezipeled (zip -r mingw mingw), másik gépen kibontod, PATH/LIB/INCLUDE környezeti változókat beállítod.
Az MS-nek is van igyenes fordítója, amit én használok a VCToolkitSetup.exe, az is egy önkibontó installer. Azt hiszem ebben volt a Platform SDK dokumentáció is, ami hasznos dolog.
Inline assemblert írni béna ötlet.
Amit ajánlottak (Code::Blocks) az csak egy IDE, nincs rá szükséged.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
"Inline assemblert írni béna ötlet."
Szerintem meg pont nem. Abból a szempontból legalábbis, hogy manapság kb. ez az egyetlen "elterjedt" felhasználási területe az assembly-nek.
Az más kérdés, hogy asm-et tanulni talán tényleg jobb volna első körben tisztán, gcc nélkül.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ha az a cél, hogy a diákok "fílinget kapjanak a gépi kódú programozásból", akkor javaslom, hogy a C fordítótól kérjék el az assembly listát. Lehet nézegetni, lehet módosítgatni.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
Viszont, tudja-e valaki, hol van a mingwm10.dll-nek a forrása?
Észrevettem, hogy a statikusra linkelt programom függ a mingwm10.dll-től. Utánanéztem a googlen. Rengeteg helyen kínálják a mingwm10.dll ingyenes letöltését (nem kell, nekem is van). Rengetegen próbálnak megszabadulni a tőle való függéstől. Néhányan firtatják a mingwm10.dll licenszét.
Letöltöttem CVS-ből az egész MinGW-t és Cygwin-t. Látszik a rá való hivatkozás, de nincs meg a forrás.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
mingwm10.dll csak akkor kell, ha a -mthread kapcsolot hasznalod (multithreaded exceptions). Egyszerü kis programoknál ez nyilván nem kell :-) (Ezt a TDM GCC 4.3-as MinGW variánsnál próbáltam ki, de más verziókra is igaz lehet.)
- A hozzászóláshoz be kell jelentkezni
Itt az a lényeg, hogy az elvileg nyílt forrású szoftvernek nincs meg a forrása.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
A kérdéses dll két fv-t exportál:
__mingwthr_key_dtor, __mingwthr_remove_key_dtor.
Mindkettő megtalálható az mthr.c-ben.
Egyébként gyanítom, hogy a mingw forrását lefordítva is lesz neked ilyen dll-ed, így nem igazán értem miből gondoltad, hogy nincs hozzá forrás...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
"nem igazán értem miből gondoltad, hogy nincs hozzá forrás"
Hát abból, hogy kerestem, de nem találtam. Amúgy kösz.
--
CCC3
- A hozzászóláshoz be kell jelentkezni