Lenguaje Ensamblador (Assembly Language)
Es un lenguaje de programación de bajo nivel que permite
escribir instrucciones entendibles por el procesador. Usa códigos simples como
MOV, ADD, SUB, que se traducen casi directamente a lenguaje máquina. Es
específico para cada tipo de procesador y se necesita un programa llamado
ensamblador para convertirlo en código ejecutable. Se usa cuando se necesita
máximo control del hardware, como en sistemas operativos, controladores o
programación embebida.
Historia
El lenguaje ensamblador, o Assembly, es un lenguaje de
programación de bajo nivel que fue desarrollado en los años 1940s y 1950s para
facilitar la programación de computadoras en lugar de usar directamente el
lenguaje máquina (código binario). Es el lenguaje más cercano al lenguaje de la
CPU, lo que permite controlar el hardware directamente.
¿Quién lo creó?
El lenguaje ensamblador no tiene un único creador, ya que
ha evolucionado con las arquitecturas de cada procesador. Sin embargo, uno de
los primeros sistemas de ensamblador fue desarrollado por Kathleen Booth en
1947, quien escribió uno de los primeros lenguajes ensambladores para la
computadora ARC en el Reino Unido.
¿Cuando se creo?
El lenguaje ensamblador se desarrolló en la década de 1940, como una manera de simplificar la programación en comparación con el código máquina. Permitió a los programadores utilizar mnemotécnicos en lugar de números binarios, facilitando la escritura y el entendimiento del código.
País de origen
Reino Unido (UK) – desarrollado en el contexto de
investigación en computación de la Universidad de Birkbeck.
Codigos:
1. Hola
Mundo con función
section .data
msg db 'Hola Mundo', 0xA
len equ $ - msg
section .text
global _start
_start:
mov eax, 4 ; syscall:
write
mov ebx, 1 ; file
descriptor: stdout
mov ecx, msg ; message to
write
mov edx, len ; message
length
int 0x80 ; interrupt
mov eax, 1 ; syscall:
exit
xor ebx, ebx ; exit code 0
int
0x80
2.
Sumar y
mostrar resultado con funciones
nasm
Copiar
Editar
section .text
global _start
_start:
mov eax, 5 ; primer número
mov ebx, 3 ; segundo número
add eax, ebx ; eax = eax + ebx
; Salir del programa
mov eax, 1
xor ebx, ebx
int 0x80
3.
Bucle que
imprime del 5 al 1 con funciones
nasm
Copiar
Editar
section .text
global _start
_start:
mov ecx, 5 ; contador
loop_start:
; aquí podrías hacer
algo, como imprimir (omitido por simplicidad)
loop loop_start
;
salir
mov eax, 1
xor ebx, ebx
int 0x80
Tamaño de almacenamiento (estimado)
El lenguaje ensamblador en sí no es un software, sino una
forma de codificar instrucciones. Pero un ensamblador típico (como NASM, MASM o
GNU Assembler) puede ocupar aproximadamente:
Entre 1 MB y 10 MB, dependiendo de la versión y plataforma.
Diagrama de flujo:
Opinión:
El lenguaje ensamblador es complicado, pero sirve mucho
cuando se necesita que un programa sea rápido y funcione bien con el hardware.
Referencias bibliográficas:
https://www.elsevier.com/books/computer-organization-and-design/patterson/978-0-12-812275-4
más información
https://computerhistory.org/profile/kathleen-booth/
más información
Más información
