|Introduction to 64 Bit Intel Assembly Language Programming for Linux||Search for a title, author or keyword|
Introduction to 64 Bit Intel Assembly Language Programming for Linux
by Ray Seyfarthm, October 27, 2011. In a time when the latest fads in programming tend to be object-oriented high-level languages implemented using byte-code interpreters, the trend is clearly to learn to write portable programs with high reliability in record time. It seems that worrying about memory usage and CPU cycles is a relic from a by-gone era. So why would anyone want to learn assembly language programming? Assembly language programming has some of the worst "features" known in computing. First, assembly language is the poster child for non-portable code. Certainly every CPU has its own assembly language and ma;ny of them have more than one. The most common example is the Intel CPU family along with the quite similar AMD CPU collection. The latest versions of these chips can operate in 16 bit, 32 bit and 64 bit modes. In each of these modes there are differences in the assembly language. In addition the operating system imposes additional differences. Further even the function call interface employed in x86-64 Linux systems differs from that used in Microsoft Windows systems. Portability is difficult if not impossible in assembly language.
An even worse issue with assembly language programming is reliability. In modern languages like Java the programmer is protected from many possible problems like pointer errors. Pointers exist in Java, but the programmer can be blissfully unaware of them. Contrast this to assembly language where every variable access is essentially a pointer access.
Furthermore high level language syntax resembles mathematical syntax, while assembly language is a sequence of individual machine instructions which bears no syntactic resemblance to the problem being solved. Assembly language is generally accepted to be much slower to write than higher level languages. While experience can increase one's speed, it is probably twice as slow even for experts. This makes it more expensive to write assembly code and adds to the cost of maintenance. So what is good about assembly language?
|Introduction to 64 Bit Intel Assembly Language Programming for Linux||Disclaimer: this link points to content provided by other sites.|