



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
differences between assembly language,machine level language,high level language and low level language
Typology: Exams
1 / 5
This page cannot be seen from the preview
Don't miss anything!




An assembly language is a low-level programming language for microprocessors and other programmable devices. It is not just a single language, but rather a group of languages. An assembly language implements a symbolic representation of the machine code needed to program a given CPU architecture.
An assembly language is the most basic programming language available for any processor. With assembly language, a programmer works only with operations that are implemented directly on the physical CPU.
Assembly languages generally lack high-level conveniences such as variables and functions, and they are not portable between various families of processors. They have the same structures and set of commands as machine language, but allow a programmer to use names instead of numbers. This language is still useful for programmers when speed is necessary or when they need to carry out an operation that is not possible in high-level languages.
Why is learning assembly language still important?
The following are some of the reasons why learning assembly language is still important and relevant.
As a programmer, the closest you can come to the processor of a machine is by using assembly language. Here, you can write code to access the registers and even deal with memory addresses directly for retrieving values and pointers. So, if you are writing a program that has a great algorithm, you are going to benefit greatly. This is mainly because assembly language is the gateway to optimization in speed, thereby offering great efficiency and performance.
If you are writing a program that is meant to be a compiler or a device driver, then a complete understanding of the processor’s function is a big plus. So, in this case the best option is to write some code in assembly language and see how the processor and the memory work. However, one thing to keep in mind is that assembly language is symbolic, so it may appear cryptic. Furthermore, the source code in assembly language is always larger than that of a high-level language. However, putting in time and effort to master it can benefit one greatly in terms of understanding.
Assembly language is the only language that speaks to the computer/machine directly. It is the language that a certain CPU recognizes and different CPUs recognize different types of them.
However, since every section of binary caters to a certain meaning, it can be somewhat easy to comprehend.
When compared to high-level languages, which are mostly in the form of abstract data types, assembly language is bare and transparent. This is largely since it has a small number of operations. So, this is very helpful for algorithm analysis, consisting of semantics and flow of control. It also makes it easier for debugging, as it is less complex. Overall, there is less overhead as compared to high-level languages.
What is the difference between an assembly
language and high level language?
Difference between machine language and assembly
language
Machine language is the actual bits used to control the processor in the computer, usually viewed as a sequence of hexadecimal numbers (typically bytes). The processor reads these bits in from program memory, and the bits represent "instructions" as to what to do next. Thus machine language provides a way of entering instructions into a computer (whether through switches, punched tape, or a binary file).
Low level computer languages are machine codes or close to it. Computer cannot understand instructions given in high level languages or in English. It can only understand and execute instructions given in the form of machine language i.e. language of 0 and 1. There are two types of low level languages:
Machine Language: It is the lowest and most elementary level of Programming language and was the first type of programming language to be Developed. Machine Language is basically the only language which computer Can understand. In fact, a manufacturer designs a computer to obey just one Language, its machine code, which is represented inside the computer by a String of binary digits(bits) 0 and 1. Assembly Language: It was developed to overcome some of the many inconveniences of machine language. This is another low level but a very important language in which operation codes and operands are given in the form of alphanumeric symbols instead of 0’s and l’s. These alphanumeric symbols will be known as mnemonic codes and can have maximum up to 5 letter combination e.g. ADD for addition, SUB for subtraction, START,LABEL etc. Because of this feature it is also known as ‘Symbolic Programming Language’. This language is also very difficult and needs a lot of practice to master it because very small English support is given to this language. The language mainly helps in compiler orientations. The instructions of the Assembly language will also be converted to machine codes by language translator to be executed by the computer.
Assembly Language VS Machine Language
Readability: The readability of Assembly Language is very high as it is written in English which is understandable by human beings.
The readability of Machine Language is less as compared to Assembly Language because it is written in the form of binary code which normal human being cannot understand. But this is the actual language of computer.
Platform Dependency: The Assembly Language is platform dependent and so at the present time most programs are written in third generation language.
Machine Language varies from platform. Different platform have different machine language code.
Modifiable: It is necessary for survival of software to evolve. So in order to avail this advantage the language should be easily modifiable. And Assembly Language is easily Modifiable and its support changes.
Machine Language cannot be changes easily and it does not support modification.
Quality: The risk of occurrence of error is reduced in Assembly Language.
The risk of existence of error is high in Machine Language.
Memorability: Memorability is high in Assembly Language because it is easy to remember variable name instead of binary code.
The binary code cannot be memorized.
Need of Compiler: In case of Assembly Language interpreter is needed which is knows as assembler in case of Assembly Language to convert its code into machine code in the form of bits and bytes.
In case of Machine Language there is no need of compiler or interpreter because it is mother language of computer. So computer does not need any interpreter to understand its own language.