| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | C Compiler |
-=> Quoting Paul Edwards to Ian Binnie <=- IB> The bad news is that the assembler uses a custom syntax, and the object IB> format is also proprietary. IB> This enables the compiler to produce very fast compact code but... The "very fast compact code" was meant to bind with "the object format" not "assembler". I may be talking through my hat here as I am not an expert on 80x86 linking, but I have compared the code with other compilers and stand by the result. This may be due to compiler passing the first 2 (int size) arguments in registers and implementing stack deallocation in the function itself. The real reason for proprietary assembler may be historical, as pointed out by others. PS the assembler can produce Intel object code, but I have never tried this. PE> Surely it doesn't optimise the assembler code? All compiled code produces assembler. The code generator does global optimisation, but a separate optimiser pass between the code generator and assembler performs peephole optimisation and presumably operates on the assembler code. PE> I am not very familiar with DOS programming, but looked up that in PE> one of my compiler's manuals, and indeed, it would seem that doing PE> something like that, and just providing assembler for intdos(), if PE> the compiler didn't support it, would be better. I used to include a fair amount of assembler code in C programs, but now I rarely need to use it. (Every time I wrote some decent assembler HI-TECH included it in the compiler.) Even interrupt service routines can be coded in (Pacific) C; my communications programs are totally written in C. I do include the occasional in line "asm(CLI)" "asm(STI)" and use assembler when adapting other programs. PE> In fact, spawn.asm can be taken out completely, and if I could PE> likely write most of the vio routines in C too, possibly even PE> without performance penalty. That would bring me closer to being PE> able to use Pacific C. I'll have to look into it. There should be little need for assembler if the compiler provides access to system calls unless it is an extension to the language e.g. long integer multiply for fractals etc. --- Blue Wave/386 v2.30* Origin: Sydney PC Users Group Mail Exchange (3:712/505) SEEN-BY: 50/99 78/0 620/243 623/630 711/401 409 410 413 430 808 809 932 934 SEEN-BY: 712/311 390 407 411 505 506 515 517 535 617 624 704 713/306 888 SEEN-BY: 714/906 800/1 7877/2809 @PATH: 712/505 517 515 711/808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.