The language Assembly is a low-level programming language that is very close to machine language (i.e., the binary code we saw in the previous entry).
Unlike high-level languages like C++ or Java, which are easier for humans to understand, assembly language is designed to be easier for the processor to understand.
Assembly language is a programming language that uses mnemonics to represent the instructions that will be executed by the processor. These mnemonics are translated by the assembler to their equivalent in binary code.
For example, the instruction ADD
in assembly represents an addition operation in the processor. The assembler converts this instruction to its equivalent in binary code so that the processor can execute it.
An example of a program in Assembly would be:
section .data
message db 'Hello, world!', 0
section .text
global _start
_start:
; Write the message to the console
mov eax, 4 ; System call code to write to screen
mov ebx, 1 ; Standard output file descriptor (stdout)
mov ecx, message ; Address of the message to print
mov edx, 13 ; Length of the message
int 0x80 ; System interrupt to perform the call
; Exit the program
mov eax, 1 ; System call code to exit
xor ebx, ebx ; Return value (0)
int 0x80 ; System interrupt to perform the call
As we can see, as a programming language it still remains quite horrible. But it already has some of the points that we will see in programming languages such as:
- Blocks
- Variables
- Comments
- Entry and exit point
Translating assembly to machine code
The process of translating Assembly to binary code is carried out through the assembling process (it is precisely this process that gives the programming language its name).
The assembling process uses a table of instructions and their equivalent opcodes to convert the instructions written in Assembly to binary code.
For example, if during assembly the instruction ADD
is found in the source code, it will look in the instruction table for the corresponding addition operation in binary code and generate the necessary binary code for the processor to execute that operation.
The language Assembly is a very low-level programming language that is used to program systems that require precise control over processor resources.
Its relationship with binary code is very close, as it uses mnemonics to represent the instructions that are translated to binary code. In fact, the assembling process is a simple process, basically a direct translation using some tables.
Assembly language is not frequently used today. But it is still employed to program systems where precise control over processor resources is needed, such as in operating systems, device drivers, and real-time software.