Assembly language programming develops a very basic and low level
understanding of the computer. In higher level languages there is a distance
between the computer and the programmer. This is because higher level
languages are designed to be closer and friendlier to the programmer,
thereby creating distance with the machine. This distance is covered by
translators called compilers and interpreters. The aim of programming in
assembly language is to bypass these intermediates and talk directly with the
computer.
There is a general impression that assembly language programming is a
difficult chore and not everyone is capable enough to understand it. The
reality is in contrast, as assembly language is a very simple subject. The
wrong impression is created because it is very difficult to realize that the real
computer can be so simple. Assembly language programming gives a
freehand exposure to the computer and lets the programmer talk with it in
its language. The only translator that remains between the programmer and
the computer is there to symbolize the computer’s numeric world for the ease
of remembering.
To cover the practical aspects of assembly language programming, IBM PC
based on Intel architecture will be used as an example. However this course
will not be tied to a particular architecture as it is often done. In our view
such an approach does not create versatile assembly language programmers.
The concepts of assembly language that are common across all platforms will
be developed in such a manner as to emphasize the basic low level
understanding of the computer instead of the peculiarities of one particular
architecture. Emphasis will be more on assembly language and less on the
IBM PC.
Before attempting this course you should know basic digital logic
operations of AND, OR, NOT etc. You should know binary numbers and their
arithmetic.
Apart from these basic concepts there is nothing much you need
to know before this course. In fact if you are not an expert, you will learn
assembly language quickly, as non-experts see things with simplicity and the
basic beauty of assembly language is that it is exceptionally simple. Do not
ever try to find a complication, as one will not be there. In assembly language
what is written in the program is all that is there, no less and no more.
After successful completion of this course, you will be able to explain all
the basic operations of the computer and in essence understand the
psychology of the computer. Having seen the computer from so close, you
will understand its limitations and its capabilities. Your logic will become fine
grained and this is one of the basic objectives of teaching assembly language
programming.
Then there is the question that why should we learn assembly language
when there are higher level languages one better than the other; C, C++,
Java, to name just a few, with a neat programming environment and a
simple way to write programs. Then why do we need such a freehand with
the computer that may be dangerous at times? The answer to this lies in a
very simple example. Consider a translator translating from English to
Japanese. The problem faced by the translator is that every language has its
own vocabulary and grammar. He may need to translate a word into a
sentence and destroy the beauty of the topic. And given that we do not know........................
No comments