Slashdot Mirror


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?

1 of 58 comments (clear)

  1. Assembly... by mirabilos · · Score: 2, Informative

    please don't get me wrong, but actually the
    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, .dll, .lib) or compile them to executables,
    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 /. still does not get UTF-8 right in 2012. Wow.)