Assembly language – a reduced-level programming language that is used for encoding programs in a form that is easily decipherable by a machine’s central processing unit. It converts each of these instructions into a unique machine code of a specific type of processor, which makes these programs automatically non-portable, though it is possible to port them after creating some new instructions of the particular set.
First of all, the assemblers facilitated the preliminary task of computer programming to a great extent. Shortly, the complexity of applications increased and rather simple high-level languages became to be used. The importance of assembly language declined as far as mainframes and minicomputers were progressing at the same time as languages like C were coming into view at the same time. Assembly language regained relevance with the advent of microcomputers which at the time did not possess very good compilers for high-level languages at their disposal. The performance and portability problems that were associated with DLLs originally, however, due to the capability of present day computers and optimizing compilers that are used to generate highly efficient machine code, have been countered.
Assembly language is a low level language that is used in order to interact with the Central Processing Unit (CPU) of a computer. Assembly and machine code are very much related since a single instruction in assembly language has an equivalent code in machine language. This direct mapping between assembly instructions and machine code gives programmer a very fine control on the hardware but at the same time programs written in assembly language are not portable. These programs are then transferred to another type of processor and new set of instructions must be written for the new processor and this can be a tedious process.
In the early years of computers, assembly language was the only mean to program the computers since it provided a means of translating the code directly into machine language. But as the applications of the software became more sophisticated, the high level languages which are more general and less complicated were used more often. This change was attributed to the decrease in the use of assembly language especially with the coming of large scale machines and minicomputer and with the coming of C language which was more convenient and portable.
However, assembly language made a come back with the beginning of microcomputers as other languages could not be compiled well on these devices at the time. As the microcomputers of this time were quite slow, assembly language was used to make the software run more efficiently. In the course of time, the possibilities of increasing the computing power and the creation of highly effective compilers have limited many of the performance and portability issues connected with the use of assembly language. At the present time high level languages are used in most of the software developments but assembly language is also in use in some regions where one must have a control over the hardware and where efficient code is required like in embedded systems, drivers and real time applications.