Linked by Thom Holwerda on Mon 6th Aug 2012 21:50 UTC, submitted by iseyler
General Development I asked for more of this, and I got it. "There has been much interest in assembly lately (whether the real 6502, or the fictional DCPU-16; I even created my own virtual 8-bit CPU called i808 in 2007), but none of this attention focuses on the architecture that is most popular in today's computers. If you are reading this on a desktop, laptop, or server then your computer is most likely using x86-64 (or x86). x86-64 is the 64-bit superset of the 32-bit x86 architecture and any modern CPU from AMD or Intel supports it. This document will focus on the most used parts of x86-64."
Permalink for comment 530200
To read all comments associated with this story, please click here.
RE[6]: Uh?
by moondevil on Wed 8th Aug 2012 06:35 UTC in reply to "RE[5]: Uh?"
Member since:

"Please elaborate how it is untrue.

Quite simply the fact that asm isn't a must. We'll take the first item on your list as an example -- drivers. I invite you to join any of the numerous mailing lists used for Linux driver development.
Ask people who actually write drivers if they agree that asm is a must and you will get a resounding no.

Well, back on my long gone university days. Every CS student had to do driver projects in multiple operating systems. So I guess I do have some experience with drivers. On those days Linux was still being brewed.

Linux is not the only kernel in town, and not all provide C API abstractions to access the hardware.

There three ways to access hardware:

- Memory mapped I/O
- Processor instructions to talk via I/O ports
- Processor instructions to talk via traps (not so common)

Specific hardware sometimes requires initialization steps not covered by the way the kernel abstracts the above forms of I/O communication.

For that matter, many of the guys writing drivers have zero asm experience. I have a friend who has worked for a handful of major chip makers and the only requirement placed on him, ever, was his willingness to sign NDA's. He also has no asm experience.

Sure, it may be that he never needed, but if he is writing drivers, for sure he will eventually need to get either touch Assembly or have someone else do it.

Linux kernel version 3.4.7 driver tree has

- 8 Assembly files;
- 58 C files making use of inline Assembly;

Since you made the claim, perhaps you should explain why you think it is, despite the fact we already know it isn't.

If you care, I can also list use cases for every single point I've listed on my previous comment.

Reply Parent Score: 1