Re: Should I Learn Assembly ?



I started learning about computers when I was in high school,
this was the mid to late 1960s. I got to work with mainframes
and minis before I got to college. Those were IBM 360s, DEC
PDP-8(various), a CDC-6400 and an IBM 1620.

In those days any serious programmer, even applications programmers,
learned assembly language. Those who didn't were considered dilettantes
by most others. But even then things were changing, although
mega-LOC (Lines Of Code) programs were still being written in 360 BAL
(Basic Assembler Language), that practice was starting to be phased out
in favor of using HLLs (High Level Language).

These days learning assembler is considered unnecessary for applications
programming, and optional for some systems level stuff. However, I think
it is still desireable for anybody planning for or interested in sys level
stuff. [MHOO]

What you get is a different abstraction of the computation process. One
used to get exposure to several flavors of doing things, but that is less
true now. Now most general purpose hardware is stack oriented supporting
C-ish calling conventions, twos-complement arithmetic for example. Classic
360/370/390 style is perhaps the major exception. Ones-complement and sign-magnitude
arithmetic are rarely seen. Decimal as opposed to binary arithmetic
is a tad more seen, but still fairly rare. Non-stack based calling conventions
are even less common (outside the aforementioned 360 &al camp, which uses
register-based calling conventions natively).

Yes, there are some funny things out there, but mostly those are embedded
systems oriented minimal cost things (if you never have to code for a
4 bit microP, consider yourself blessed). Even embedded stuff is often
going with HLLs and familiar style to C-educated programmers.

So, if you are serious about sys level stuff, sure, give assembly a try.
It might be better to start with a more regular architecture than x86,
I would suggest 68k, for example. Consider that if you do go this path,
it is best to learn several assembly languages. I use x86 and 8051 regularly
these days, (I do embedded stuff for experimental apparatus, we use 89C51 and
89C52 micros for that at present) and I've coded a fair amount for 68k, 360,
PDP-8 over the years. You can play with alternate hardware using simulators
these days -- Hercules for the 360/370/390 family, SIMH for really old stuff
(e.g., PDP-8), if you've any interest in exploring such.

But if sys level stuff is not going to be one of your major focuses, then
perhaps the time invested in learning assembly could be better spent learning
something else.

HTH
Kevin

.



Relevant Pages

  • Re: Id like to learn asm...
    ... The bottom line is that the manufacturer's documentation, ... If you are using Windows, ... is of little interest to someone learning assembly language. ... learning assembly language doesn't require someone to learn ...
    (alt.lang.asm)
  • Re: HLA v1.86 is now available
    ... conversion routine is one minute they aren't spending learning machine ... instructions and other true assembly stuff. ... If so, clown, when they are writing an Assembly Routine, ... into an assembly language course wouldn't have a clue about the ...
    (alt.lang.asm)
  • Re: Do header files really serve a useful purpose?
    ... Learning it completely is very hard. ... >there is a good deal of excellent software written in the language. ... The also seem to encourage programmers to avoid using namespaces. ...
    (comp.lang.cpp)
  • Re: Question about jumps
    ... figuring out how flags and conditional instructions work together to ... Learning by doing is great, but it's important to learn things in the ... All assemblers have a different syntax. ... it isn't "assembly language syntax" that you're ...
    (alt.lang.asm)
  • Re: Assembly Language for Secondary Schools
    ... How could learning an HLL teach Assembly, ... some HLL prior to learning assembly language -- so that AoA doesn't ... HLL programming knowledge rather than trying to make them forget ...
    (alt.lang.asm)