MESSAGE
DATE | 2004-09-01 |
FROM | Billy
|
SUBJECT | Re: [hangout] Assembly
|
On Wed, Sep 01, 2004 at 07:06:44PM -0400, Steve Milo wrote: > So basically this all means that I am going to have to suck it up and > tough it out.
> Strangely, the Sun Admins sentiments, when I asked him who > else uses assembly language besides in academia were 'no one'.
I strongly suspect that he doesn't know what he's talking about. On the sysadmin end, security researchers work in assembly (and disassembly) *ALL THE TIME*. In the normal "PeeCee" application/OS kernel style of programming, you CANNOT get maximum performance for your number crunching, video codecs, etc. using vanilla C code. Search the Linux kernel sometime. It's loaded with asm. You HAVE to use some extra ASM to optimize the coprocessors and caches and pipelines other exotics. C is flexible, scalable, and portable, but it's very rarely making the best use of the CPU for that dark corner of the room occupied by specialized programs or specialized hardware.
There's a LOT of stuff that just cannot be expressed in C, because it has no idea what machine it's running on. You're going to have to understand what's REALLY going on to be a good programmer. You can DRIVE the car with C, but you can't repair it or even tune it up.
Several sysadmins I know tend to be too dismissive of tech they don't use. I don't know what it is about them. Maybe it's an ignorant personality type that leads people into sysadminning.
> I said well what about embedded devices, 'thats all done in C' was his > reply.
Don't listen to him. He doesn't know what the hell he's talking about. This is understandable because he's a sysadmin, and not an EE.
I *do* embedded devices, and I can tell you that there is no C without asm. C is compiled into asm, and sometimes it is compiled into into malfunctioning asm. Embedded folks have to deal with moving-target CPUs for which the port of the C compiler isn't very mature, and that means rolling up your sleeve, debugging in assembly, and even hunting down and sidestepping/killing the compiler bugs which produced the bad asm in the first place. Can you guess how far you'll get in this endeavor without being able to at least read the asm?
> Some how I find it hard to believe that even though 'C' is the standard > programming language in many things assembly has been forgotten about.
Your intuition serves you well.... assembly code hasn't and cannot be forgotten about. As long as CPUs evolve, we'll have to think of ways to write efficient code for them. It's impossible for a higher-level language to expose the full power of a CPU the way native assembly can.
So we use LOTS and LOTS of C, with a LITTLE BIT of asm for the weird CPU-specific stuff to get some cool functionality or a tight little code speedup here and there. A lot of the asm code I've seen in the field is expressed as 'asm' statements in C code.
____________________________ NYLXS: New Yorker Free Software Users Scene Fair Use - because it's either fair use or useless.... NYLXS is a trademark of NYLXS, Inc
|
|