Assembly Language

Fast, Efficient, And It Does Exactly What You Tell It

by Vincent Joseph Shuta (shutavj@scranton.com)
written 20 Jan 1993

This article is classified "Real"


Assembly language programming is one of the most powerful methods of
programming a computer.  It works one step above the level of the computer.
That is, instead of writing a program that says "print this character on the
screen when such and such a condition is met" you write a program that says
"put the number $A6 at address $E510 when the flag at $1023 becomes a one."
Actually, this isn't entirely true.  Which addresses and numbers are
appropriate varies wildly from computer to computer (or, microcontroller
to microcontroller.  The actual semantics of whether to say computer or
microcontroller are just that -- semantics.  Generally, microcontrollers
are used with devices and computers are used for number-crunching).

Assembly programs generally use numbers in base 16, also known as
hexadecimal, due to the fact that the physical structure of most computers
is based on grouping the individual switches in groups of 8.  Thus it is
very easy to go from the switch patterns to the hexadecimal numbers.

The commands are very short, and the computer does exactly what you
tell it.  The advantage to this is that the executables are extremely small
and fast.  To give you an idea of the speed gains, an assembly program will
generally run 2 to 4 times faster than a comparable C/C++ program, and
orders of magnitude faster than many other languages.

One of the disadvantages of assembly is, the computer does exactly what
you tell it.  That is, if you think you're telling it one thing, and you're
actually telling it another, the results are going to be quite different
than what you expect.  Usually, they're dramatically different, and nine
times out of ten they involve an infinite loop somewhere you didn't expect
it.

This brings us to the second disadvantage.  Due to the short and direct
nature of the syntax, debugging your own program can be difficult.  Even
trying to figure out what someone else's program is attempting to do can
take so much time that it's often easier to start from scratch.  And the
slightest mistake will mean the program won't work properly.  Only very
rarely will it even do anything close.  This is simply because of the direct
nature of the commands.  The only way around this is to document the program
far more than one would deem necessary; every line if possible.

Thus assembly language can be considered an extremely fast, powerful,
and efficient language.  But one should be alert for the potential
difficulties assembly language can present.

See also:
  • JSP

  • Go to [Root page | Title list | Author list | Date list | Index]