|
|
|
Computer Languages are said to be "lower" or "higher,"
depending on how close they are to the language the computer itself uses
(0s and 1s - low) or to the language people use (more English-like - high).
Languages are generally divided into five levels or generations, each containing
improvements in ease of use and capabilities over the previous generation.
They are:
1. Machine
Language The only language that computers understand.
2. Assembly
Language
3. High-level language
4. Very High level language
5. Natural language.
Ultimately, the computer understands only binary numbers - strings of 0s and 1s. These programs represent the on and off electrical states of the computer, are in the actual machine language. All other languages must be translated into machine language before execution. Each type of computer has its own unique machine language, which are difficult for people to read and use.
Translators can be roughly divided into groups, depending on the relation between the source language and the target language. When the source language is essentially a symbolic representation for a numerical machine language, the translator is called an assembler and the source language is called an assembly language. When the source language is a high-level language such as Java or C and the target language is either a numerical machine language or a symbolic representation for one, the translator is called a compiler.
Assembly Language bears the closest resemblance to machine language. It is not as convenient for people to use as more recent languages. To replace the 0s and 1s, assembly languages use mnemonic codes, abbreviations that are easy to remember. Furthermore, assembly languages permit the use of names for memory locations. As with machine language, each type of computer has its own unique assembly language. An assembler is required to convert the assembly language program into machine language.
Why learn Assembly Language?
1. Assembly language has a one-to-one relationship with machine language, meaning that one assembly language instruction corresponds to one machine language instruction. Assembly language can be translated easily into machine language. Thus assemblers are faster and more efficient that compilers which convert high level languages into machine language. The code is smaller and faster.
2. If there is a problem with compiling or executing a high level language, a computer can be made to "dump" its contents. This will be in machine language, which can be easily converted into assembly language. Assembly language is often embedded into high level languages, that is a part of the code that is takes a very long time to compile is written in assembly language, and the rest of the program is in high level language. This is known as tuning. Overall this can be efficient in man hours and execution. To see an example, click here: Tuning
3. Assembly language requires less memory to store. In situations where memory s at a premium, such as credit or smart cards, cellular phones, device drivers, BIOS routines, and the inner loops of performance-critical appliances, the code is written in assembly language to conserve space.
4. Assembly language mimics
the way a computer behaves. We can understand how the computer operates,
about pointers,
registers, stacks better when using an assembly
language. Assembly language is a window into the soul of a computer.
Thus the reasons are performance and access to the machine.
For a thorough understanding of Assembly language, it is important to comprehend Binary and Hexadecimal numbers.