Linked by Thom Holwerda on Wed 8th Mar 2006 22:57 UTC, submitted by hidden player
OSNews, Generic OSes Even a small operating system can have big disputes within its community. The lead developer of MenuetOS, an OS written in assembly, has decided to drop all support for the 32bit version of Menuet, focusing development on the 64bit version. However, disgruntled users of the open source operating system are trying to keep the 32bit version alive by starting a special forum for it.
Permalink for comment 102731
To read all comments associated with this story, please click here.
RE: Responsive
by edwdig on Thu 9th Mar 2006 05:57 UTC in reply to "Responsive"
edwdig
Member since:
2005-08-22

Coding in assembly helped a lot back in the day when a having anything more than a few megabytes of RAM was unheard of. Back then, it was fairly easy to optimize a small loop better than a compiler could. Now CPUs have become so complex that it takes far more work than it's worth to be able to outdo a compiler in most situations.

Code size mattered more back then, and it was easy to write smaller code in assembly, which made larger programs/data sets more reasonable to work with. Memory paging eventually made this much less of a concern.

The other big thing you gained by coding in assembly was you could define better calling conventions for functions. Standard calling conventions for C functions is to pass all variables on the stack, and trash the registers ax, bx, cx, and dx. You can define calling conventions which pass variables directly in registers, or which trash different registers. If you customize the convention to meet the needs of the code in question, you can both gain speed and shrink the code at the same time. This is less of a gain on modern processors which have internal registers with register renaming.

Reply Parent Score: 5