¿Ensamblador?, ¿Lenguaje maquina?, Escribiendo un Hola mundo 🔥

Jimmy Vasquez
5 min readFeb 24, 2020

Si estudiaste o estudias alguna carrera relacionada a la tecnología, estoy seguro que tuviste que cursar alguna materia de este conocido lenguaje.

Ensamblador === “Lenguaje del diablo”

Primera parte. ¿Qué onda con el ensamblador, debería aprenderlo?

Para empezar, sabemos que nuestras computadoras se comunican por medio de pulsos que van en valores booleanos (true o false), de modo que nuestra querida PC/Laptop solo comprende instrucciones como esta “101010101010”, que no sé que significa porque la puse a lo random, pero es la idea del lenguaje binario con el cual trabaja.

Entonces para no tener que escribir miles de líneas de código de 1 y 0. Se pensó en 1949 usar algo llamado mnemónicos los cuales sustituían lineas de código y con solo poner el nombre mandabas a llamar esa instrucción. Si nosotros hablamos de ensamblador, usamos esas instrucciones para mover registros (espacios de memoria) que también es conocido porque actúa directamente sobre el hardware. Teniendo entendido para que usábamos ensamblador, otros lenguajes basados en el salieron y dominaron el mercado por un bien rato: Fortran y Cobol. Tenían miles de sistemas en el mundo…

Bill Hinshaw. Creador de los vaqueros de Cobol.

Lo que pasó después fue que muchas empresas requerían mantenimiento de sus sistemas con código Cobol y Bill Hinshaw era el mas experto, no podía con todo por lo que decidió crear una empresa y contratar programadores con experiencia en Cobol, poco a poco fueron creciendo. ¿Y hoy en día?

Pues también, la respuesta es que aún muchos bancos y empresas con años de estar viviendo tienen sistemas basados en Cobol/Fortran, no han migrado por no saber o querer. Sino, que estas migraciones les quitan tiempo y pueden ser largas. De todos modos, puedes elegir si aun deberías saber un poco sobre estos lenguajes o irte a lo mainstream donde JS/Python están dominando el mundo tecnológico y los trabajos sobran.

Segunda parte. Preparando nuestras herramientas.

Para comenzar con nuestros primeros programas en ensamblador, necesitamos un compilador. En este caso usaremos MASM (Microsoft Macro Assembler) un compilador creado por Microsoft pero, que solo corre en MS-DOS. Si, ese primer sistema operativo que hizo famoso a Bill Gates. ¿Cómo le hacemos?
Pues tenemos que emular MS-DOS, para eso usaremos DOSBox, un software para emular programas que solo corren en MSDOS. Y un editor de código.

Herramientas:

Tercera parte. Escribiendo nuestro primer programa.

Ubuntu: Abrimos una consola y corremos: dosbox y enter.

Windows: Abrimos dosbox dándole doble click.

Cambiamos el teclado a idioma español tecleando: keyb sp

keyb sp
Carpeta masm

Después de cambiar el idioma, iremos a descomprimir la carpeta de masm que descargamos y saldrá una llamada 8086, le cambiaremos el nombre a masm y la cortaremos a una ruta más fácil como el disco local C:/ o en la carpeta personal si están usando ubuntu. Después le daremos click en propiedades y veremos la ruta de la carpeta, ténganlo presente.

Estando en la consola de dosbox, montaremos nuestra carpeta masm como directorio con el comando: mount c aquivaladirecciondetucarpeta/masm/

Después tecleamos C: y enter, cambiándonos al disco C:

Estando en C:/, tecleamos dir y veremos todos los archivos necesarios de nuestro compilador para correr programas. Ya estamos listos.

Creando nuestro hola mundo. Para entrar al editor de código de MS-DOS, crearemos un archivo llamado holaMundo.asm (le puedes poner como quieras) y damos enter.

De modo que se nos abre el editor de codigo de MS-DOS, donde escribiremos nuestro programa en ensamblador:

Te recomiendo primero editarlo en VSCode, ya que este terminado lo pasas al editor de MS-DOS.

Este código es el que necesitamos para nuestro hola mundo, al final del blog te dejo mi GitHub donde puedes copiarlo. Esta comentado y realmente las bases de ensamblador las puedes encontrar fácilmente en internet.

Ya que escribimos el programa en el editor, damos en la tecla alt y bajamos a save para guardar nuestro programa. Por ultimo damos en exit, para regresar a la consola.

Ahora ya con nuestro programa hecho, vamos a “ensamblarlo”, para eso corremos masm holaMundo.asm (puedes autocompletar con tabulador) y damos enter. A continuación sale la info de MASM y campos por llenar, daremos enter, enter, enter dejando como default todos los campos. Esto creara un archivo hola.Mundo.obj.

Este archivo object, necesitamos linkearlo para crear un archivo ejecutable. Para eso corremos: link holaMundo.obj y de nuevo en enter, enter, enter dejando los campos como default.

Por ultimo, ya tenemos un archivo ejecutable ensamblado, solo debemos mandarlo a llamar como holaMundo.exe y damos enter.

Felicidades! Hiciste un HolaMundo en ensamblador. ¿Difícil?

Te dejo mi enlace de GitHub donde subiré algunos programas más por si te interesas en aprender, de igual modo hay que comprender que a veces muchos piensan que solo se debe aprender ensamblador por cultura, es verdad. Pero hay que saber de todo, tener todas las cartas del mundo para jugar.

Posteado con ❤ por Jimmy Vasquez.

--

--

Jimmy Vasquez

|Software Engineer 📱|Writer on Nerd For Tech 👔|Geek|Filmmaker 📹| Web 3 Developer 🖥 |