Is Assembler Still Relevant?
quarnap asks: "I'm a system administrator running mostly NT boxes. I got into a discussion with a unix admin over whether a knowledge of assembler was of any use in either of our jobs. He insists it is since it provides a fundamental level of understanding of how computers work. I disagree; I say it isn't needed for ANY system administration work since that level of understanding is way below the level at which system administration operates. What do you think?" We've discussed this issue in a general sense in a previous Ask Slashdot, yet when it comes to System Administration it's a toss up. I can see situations where Assembler experience might be a boon to a sysadmin, but not a requirement for the job. What about you?
please don't get me wrong, but actually the
.dll, .lib) or compile them to executables,
language is called "assembly" and the compiler
"assembler".
Assembly surely is fine, and even today you can
write native {DOS, Win32, NT native, UN*X}
applications fully in it - or even sedecimal
machine language, but no one tends to do it, even
if one can. The effort isn't worth it.
But you can, for example, as I do, code important
parts of you code in (portable !!) assembly, the
other parts in C. The C files I compile with gcc
(BSD and Linux) or BC++ (Win32), the assembly
files with nasm (http://nasm.2y.net/), with a
%ifdef for the cases ELF, A.OUT/BSD and OMF
differ (the object formats).
I can bind those object files to libraries (.a,
.so,
and they yield me funtionality at speed never
seen.
I recommend the newsgroup comp.lang.assembler.x86
for a start, _if_ you really want to code in asm.
But I do not recommend to do so if you didn't
understand coding in before, and for a NT sysadmin
I'd rather recommend php (or perl, but I dislike
it), or, as another poster told, python which I
didn't use yet.
This should give you a first shot.
On the other hand, these languages, as well as,
e.g., VBA, do not have typical programming language
structures such as type checking, so, if you want
to start "real" programming, download BC++ 5.5
(http://www.borland.com/) - there's a free download
edition, command line tools only, and start coding
in C. Mostly I'd recomment command line code for
a start, as GUI programming is way more difficult.
I personally dislike C++, for example because it
is too complex - noone can hold the whole of the
language definition in back-mind as I can easily
do with C or some assembly environment.
Of course there is also cygwin32, and my programmes
would compile no differently under it than they
do under BC++.
If you still want to do assembly, don't use MASM.
If you want, use TASM, but if you CAN, use NASM.
There's a linker (VALX) that can even produce
Win32 executables at http://members.tripod.com/~ladsoft/
included in the C compiler package, but here I
take ilink32 of the BC++ package for stability
reasons.
You can even write your own import libraries
under NASM if the provided packages are too
complicated (I do).
Google for "win32 nasm" and you will find some
more sites, or "win32 assembly".
Puh, this's a long and partially-OT post, but I
hope this will help you.
My Karma isn't excellent, damn it! (And