Next: , Previous: DJGPP DPMI server, Up: GPC na DJGPP-u



3.3.7 Imam problema s asemblerskim kodom ...

GNU asembler (as.exe), ili gas, kojeg poziva GCC prihvaća “AT&T” sintaksu koja je različita od “Intel” sintakse. Razlike su pojašnjene u odlomku 17.1 DJGPP FAQ-a.

Na rapolaganju je vodič kojeg je napisao Brennan Mr. Wacko Underwood brennan@mack.rt66.com, a opisuje kako koristiti "inline" asemblerske instrukcije s DJGPP-om, na ovom URL-u: http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html

Postoji također i GPC asemblerski vodič, na adresi
http://www.gnu-pascal.de/contrib/misc/gpcasm.zip

Odlomak 17.3 DJGPP FAQ-a opisuje neke metode pretvaranja “Intel” sintakse u “AT&T” sintaksu.

Međutim, molimo primijetite da asemlerski kod nije prenosiv, tj. radit će na IA32 (“x86”) i kompatibilnim procesorima, ali neće se čak ni prevesti na drugim procesorima. Dakle umećući asemblerske instrukcije u svoje programe, znatno ćete smanjiti njihovu korisnost.

Ako mislite da zaiste “trebate” asemblerski kod radi brzine – i provjerili ste da se asemblerski kod zaista vrti brže nego Pascal kod sa prikladnim optimizacijama – mogli biste poželjeti oboje, i Pascal i asemblersku verziju, i dozvoliti npr. da jedan {$ifdef i386} odlučuje koju će koristiti. Na ovaj način, program će se barem prevesti na svim procesorima.