History of Computers - Assembly Language

From SJS Wiki
Jump to: navigation, search

Page written by Victor Slavov

Overview

The inventor of the first assembly language is considered to be David J. Wheeler, who worked as a part of a team on the Electronic Delay Storage Automatic Computer. The machine was finished in 1949 and the first program it ran was on 9th May.

An assembly language is a low-level programming language for a programmable device that generally has a one-to-one correspondence between the language and the machine code instructions of the processor’s architecture (machine language). This means that every line of code is equivalent to exactly one processor instruction and is not interpreted or compiled. The most famous assembly languages are Intel x86 (x32), AMD x64 and ARM, used in modern computers and smartphones.

Another key element is that every assembly language is specific for an architecture in contrast to most high-level programming languages (such as C#, Java, etc.), which are aiming for a cross-platform solution.

PROG-LAN.gif

Significance and meaning

Before the assembly language was invented, people had to remember meaningless numbers that represent different operations. For an example,

“10110000 01100001” or “B0 61”

tells an x86 processor to move an immediate 8-bit value (01100001 or 61 in hex) into the AL register. What assembly introduced were mnemonic instructions (English word abbreviations) that would represent these bits as something human-readable. The above equivalent in assembly is:

“MOV AL, 61h”

This change allowed for a lot faster and easier programming, which in turn opened the gate towards the creation of more complex languages.

Assembly language today

While there are many high-level programming languages that are preferred over assembly because of their easier and faster usage, assembly still takes 11th place in usage as of September 2015[1]. It is especially applicable to certain scenarios where speed is of great importance, as running machine code directly allows the programmer to adapt and optimize code.


References

https://en.wikipedia.org/wiki/Assembly_language

http://www.swansontec.com/sprogram.html

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

http://www.tnmoc.org/special-projects/edsac/edsac-history