Sunteți pe pagina 1din 19

Carrillo Hernández Rogelio Ignacio

Guía de instalación de NASM y SASM


Hola compañeros, este documento esta creado con el fin de poder ayudarles
con la instalación de los programas a utilizar en el curso de Estructura y
programación de computadoras.

Temas a tratar:

1) Instalación del ensamblador NASM.


2) Instalación del IDE SASM.
3) Diferentes formas de programar con NASM.
1. ¿Como ensamblar con el IDE SASM?
2. Instalación de un editor de código y como utilizarlo con NASM.
3. Trabajar directamente en la consola con VI.

Nota: Todos los comandos indicados a ingresar en este tutorial se encontraran


entre comillas y de color azul, ejemplo “comando”, donde la palabra
comando es lo que deberá introducirse en la consola.

1) Instalación del ensamblador NASM.


Sin importar que utilicemos un IDE, un editor de código o la consola para
programar en ensamblador, debemos instalar NASM, para ello debemos abrir
una terminal e ingresar el comando “sudo apt-get update” y “sudo apt
install nasm”

Para poder verificar que se instalo correctamente, ingresamos el comando


“nasm -v” para ver la versión de NASM que se instalo.
Carrillo Hernández Rogelio Ignacio

2) Instalación del IDE SASM.


Para poder descargar e instalar el IDE SASM ingresamos al link
proporcionado por el profesor en la plataforma de classroom.

https://github.com/Dman95/SASM

Hasta abajo viene una lista con las dependencias que debemos instalar antes
de instalar el IDE SASM

Entonces debemos ingresar los siguientes comando para instalar dichas


dependencias.

Primero debemos de sincronizar los paquetes de nuestro sistema con las


nuevas versiones, para ello utilizamos.
 “sudo apt-get update”
 “sudo apt-get -f install”
Luego procedemos a instalar las dependencias.
 gcc(x86) “sudo apt-get install gcc”
 gcc-multilib(x64) “sudo apt-get install gcc-multilib”
 gdb “sudo apt-get install gdb”
 nasm “sudo apt-get install nasm”
 qt4-qmake “sudo apt-get install qt4-qmake”
 libqt4-dev “sudo apt-get install libqt4-dev”
 libqt4-core “sudo apt-get install libqtcore4”
 libqt4-gui “sudo apt-get install libqtgui4”
 libxcb1 “sudo apt-get install libxcb1”
 libxcb-render9 “sudo apt-get install libxcb-render-util0”
 libxcb-icccm4 “sudo apt-get install libxcb-icccm4”
Carrillo Hernández Rogelio Ignacio

En mi caso ya se encontraban instadas y no requieren actualizarse.


Carrillo Hernández Rogelio Ignacio

Una vez instaladas todas las dependencias, procedemos a entrar a la pagina


oficial de SASM.
https://dman95.github.io/SASM/english.html

Damos clic
Carrillo Hernández Rogelio Ignacio

En la lista buscamos la versión del sistema operativo que tengamos.

Dependiendo de la arquitectura de nuestro sistema operativo y procesador


descargamos el archivo.deb correspondiente.

64 bits

32 bits
Carrillo Hernández Rogelio Ignacio

Si no conoces la versión de tu sistema operativo ni el tipo de arquitectura que


tienes, tendrás que abrir la terminal e ingresar el comando “sudo apt install
screenfetch”, para poder instalar el programa screenfetch.

Posteriormente ingresa el comando ”screenfetch”, para poder visualizar la


información de tu sistema operativo y el tipo de arquitectura que tienes.

Tipo de
arquitectura

Versión

En mi caso la arquitectura es de 64 bits, por lo tanto descargo la versión de


amd64.

Una vez descargado el archivo.deb ingreso a la carpeta donde se descargo e


ingresamos el comando “sudo dpkg -i <archivo.deb>”, el cual sirve para
instalar archivos.deb, en mi caso seria ingresar el comando “sudo dpkg -i
sasm_3.10.1_amd64.deb” para instalar el archivo.deb correspondiente.
Carrillo Hernández Rogelio Ignacio

Una vez instalado el paquete ejecutamos el programa directamente en la


terminal con el comando “sasm”, se abrirá el programa donde elegiremos el
idioma para trabajar.

De igual forma se mostrara el icono del programa en la box de aplicaciones.


Carrillo Hernández Rogelio Ignacio

3) Diferentes formas de programar con NASM.

Para programar en ensamblador tenemos muchas formas para realizar el


trabajo, podemos utilizar un IDE(SASM), un editor de código(Sublime Text,
Atom, Visual Code, etc) o trabajar directamente desde la terminal(VI, VIM
MONO, etc).

1. ¿Como ensamblar con el IDE SASM?.

Creamos un nuevo archivo.asm

Entramos en configuraciones y elegimos modo x64


Carrillo Hernández Rogelio Ignacio

Creamos el archivo y lo compilamos con el botón con icono de martillo. Lo


compilamos y ejecutamos con el botón con icono de play. Lo depuramos con
el botón con icono de play y un escarabajo.

SALIDA

Registro de compilación

El ejemplo holaSASM se tomo de Internet

Si queremos generar el archivo ejecutable le damos en la pestaña archivo y


en el menú elegimos “guardar.exe”(En linux no existe .exe), el ejecutable lo
podemos iniciar(correr) en la terminal.
Carrillo Hernández Rogelio Ignacio

Para correr el ejecutable ingresamos el comando “./<nombre_ejecutable>”,


en mi caso “./holaSASM”

2. Instalación de un editor de código y como utilizarlo con NASM.

Para instalar un editor de código procedemos a entrar a su pagina oficial, en


mi caso yo descargare Visual Code. Descargamos el archivo.deb .

Abrimos la terminal y entramos al directorio donde se descargo el archivo.deb,


en mi caso es en la carpeta Downloads.

Escribimos el comando “sudo dpkg -i <archivo.deb>”, en mi caso seria


“sudo dpkg -i code_1.31.1-1549938243_amd64.deb”
Carrillo Hernández Rogelio Ignacio

Cuando el programa termine de instalarse nos aparcera en el box de


aplicaciones.

Una vez instalado nuestro editor de código favorito escribimos un programa de


prueba, en mi caso tomare un ejemplo de un hola mundo para poder
ensamblarlo.
Carrillo Hernández Rogelio Ignacio

Para poder ensamblar debemos ingresar los siguientes comandos teniendo


en cuenta el tipo de arquitectura del SO que tenemos.

 Sistema de 64 bits: “nasm -f elf64 -o hola.o hola.asm”

 Sistema de 32 bits: “nasm -f elf -o hola.o hola.asm”

Al momento de ensamblar NASM creará un nuevo archivo “hola.o”, el cual


enlazamos con ”ld”, indicándole el nombre del ejecutable.

 Para enlazarlo y conectarlo: “ld -o hola hola.o”

 Para ejecutar el programa: “./hola”

En visual code ya vine por defecto incorporado la terminal en el editor,


entonces ingresamos los comandos anteriores y vemos que es lo que pasa.

El ejemplo hola se tomo de Internet

3. Trabajar directamente en la consola con VI.

Si vas a trabajar con VI, te recomiendo que instales el comando “tree”, el cual
te permite poder visualizar la estructura de tus directorios en forma de árbol.
Para instalar tree debes ingresar el comando “sudo apt-get install tree”.

Se supone que todas las versiones de linux ya tienen VI o VIM integrado, si en


tu caso no viniera integrado, solo tienes que instalarlo con el comando “sudo
apt-get install vim”.

Cunado ya estemos seguros que nuestro linux trae integrado VI


procederemos a configurarlo, para ello crearemos el archivo de configuración
de VI con el comando “vi ~/.vimrc”, se nos abrirá el editor donde
presionaremos la tecla “i” para entrar en modo edición e ingresamos las
siguientes lineas:

 syntax on (sirve para darle color al código)


 set nu (sirve para enumerar las lineas de código)
Carrillo Hernández Rogelio Ignacio

Después de escribir las lineas correspondientes procederemos a guardar el


archivo y salir, para ello debemos presionar la tecla “Esc” para salir del modo
inserción y luego escribir el comando “:wq”. El comando se ingresa en la
parte inferior izquierda.

Después de haber guardado el archivo de configuración de VI con nuestras


preferencias, procederemos a crear un hola mundo en ensamblador, para ello
existen 2 formas de crear un archivo con VI.

Primer forma.
La primer forma es crear los archivos con rutas(direcciones) relativas, por
ejemplo yo puedo abrir la terminal y crear un documento escribiendo la
dirección donde quiero que se cree mi archivo.asm, para ello nos guiaremos
con el comando “tree” para visualizar como esta estructurado nuestro
directorio.
Carrillo Hernández Rogelio Ignacio

En este caso me doy cuenta como esta organizada la estructura de mis


archivos a lo largo de mi sistema, en especifico en la carpeta personal que me
asigna el sistema operativo. Se puede observar dentro de la carpeta
“Desktop” se encuentra la carpeta “Codigo” y adentro de esta ultima
carpeta se observan varios archivos de diferente tipo.

Si yo quiero crear un archivo con VI dentro de la carpeta “Codigo” debo


darme cuanta de la dirección en la que se encuentra, la cual es
“Desktop/Codigo”, entonces fijándome en la dirección creo el archivo
“holaVI.asm” dentro del directorio con el comando
“vi ./Desktop/Codigo/holaVI.asm” y una vez adentro procedo a escribir el
código del programa y lo guardo.

El ejemplo holaVI se tomo de Internet

Para poder ensamblar debemos ingresar los siguientes comandos teniendo


en cuenta el tipo de arquitectura del SO que tenemos. En esta ocasión las
rutas serán relativas.

 Sistema de 64 bits:

nasm -f elf64 -o ./Desktop/Codigo/holaVI.o ./Desktop/Codigo/holaVI.asm

 Sistema de 32 bits:
nasm -f elf -o ./Desktop/Codigo/holaVI.o ./Desktop/Codigo/holaVI.asm

Al momento de ensamblar NASM creará un nuevo archivo “holaVI.o”, el cual


enlazamos con ”ld”, indicándole el nombre del ejecutable.

 Para enlazarlo y conectarlo:


ld -o ./Desktop/Codigo/holaVI ./Desktop/Codigo/holaVI.o
Carrillo Hernández Rogelio Ignacio

 Para ejecutar el programa:


./Desktop/Codigo/holaVI

Segunda forma
La segunda forma consiste en localizar y entrar a el directorio donde
queremos trabajar.

Para poder entrar a un directorio en especifico debo de ingresar el comando


“cd <directorio>”, por ejemplo en mi caso seria “cd Desktop/Codigo”.

Para poder crear un archivo.asm con VI ya no es necesario poner la ruta


relativa, ya que me encuentro dentro de ella. Ingreso el siguiente comando
para crear el archivo “holaVI.asm”, “vi holaVI.asm”.

Para poder ensamblar debemos ingresar los siguientes comandos teniendo


en cuenta el tipo de arquitectura del SO que tenemos. En esta ocasión se
ensamblara pero sin hacer mención de rutas relativas.

 Sistema de 64 bits: “nasm -f elf64 -o holaVI.o holaVI.asm”

 Sistema de 32 bits: “nasm -f elf -o holaVI.o holaVI.asm”


Carrillo Hernández Rogelio Ignacio

Al momento de ensamblar NASM creará un nuevo archivo “holaVI.o”, el cual


enlazamos con ”ld”, indicándole el nombre del ejecutable.

 Para enlazarlo y conectarlo: “ld -o holaVI holaVI.o”

 Para ejecutar el programa: “./holaVI”

Si quieren conocer mas acerca de como funciona VI y como se desarrollado,


continuación les dejo mas información para que profundicen un poco en el
tema.

Es importante mencionar que para utilizar VI hay que aprender ciertos


comando propios del editor para poder trabajar de forma profesional.

Historia sobre VI

VI (Visual) fue originalmente escrito por Bill Joy en 1976. Es un programa que
entra en la categoría de los editores de texto, pues a diferencia de un
procesador de texto no ofrece herramientas para determinar visualmente
cómo quedará el documento impreso. Por esto carece de opciones como
centrado o justificación de párrafos, pero permite mover, copiar, eliminar o
insertar caracteres con mucha versatilidad. Este tipo de programas es
frecuentemente utilizado por programadores para escribir código fuente de
software.

El editor VI fue creado cuando no todos los teclados de la terminal tenían


teclas de movimiento de cursor, por consiguiente, todas las tareas que pueden
realizarse en VI, también pueden llevarse a cabo con las teclas alfanuméricas
tradicionales y otras pocas teclas como “Esc” e “Insert”. Debido a sus orígenes
y al hecho de que las primeras conexiones de terminales eran lentas, VI se
destacó por el uso de comandos muy breves y críticos. Veamos primero las
teclas que se usan para navegar dentro de un archivo.

Navegación general
Use los siguientes comandos para desplazarse dentro de un archivo:

h Desplazarse un carácter hacia la izquierda en la línea actual


j Pasar a la línea siguiente
k Pasar a la línea anterior
l Desplazarse un carácter hacia la derecha en la línea actual
w Pasar a la palabra siguiente en la línea actual
e Pasar al siguiente fin de palabra en la línea actual
b Pasar al anterior inicio de palabra en la línea actual
Ctrl-f Pasar a la página siguiente
Ctrl-b Pasar a la página anterior
Carrillo Hernández Rogelio Ignacio

Se tipea un número antes de cualquiera de estos comandos, el comando se


ejecutará las veces que indique ese número. Este número se denomina conteo de
repetición o simplemente conteo. Por ejemplo, el comando 5h moverá el cursor cinco
caracteres hacia la izquierda. Muchos comandos vi admiten el conteo de
repeticiones.

Navegación a líneas específicas

Use los siguientes comandos para desplazarse a líneas específicas dentro de un


archivo:

G Desplazarse a una línea específica dentro del archivo. Por ejemplo, el


comando 3G lo ubicará en la línea 3. Sin ningún parámetro, G lo ubica en la
última línea del archivo.

H Desplazarse en relación a la línea superior de la pantalla. Por ejemplo, el


comando 3H lo ubicará en la tercera línea actual de la pantalla.

L Igual a H, pero en relación a la última línea de la pantalla. Por lo tanto, el


comando 2L lo ubicará en la antepenúltima línea de la pantalla.

Salir de vi

Las opciones para salir de vi son las siguientes: salir guardando o cancelando los
cambios, o reiniciar desde el comienzo. Si estos comandos no funcionan en su
sistema, es probable que esté trabajando en modo insertar, para salir de dicho modo
y volver al modo de comandos, presiones la tecla Esc , en el cual podrá usar los
siguientes comandos.

:q! Salir sin guardar.

:wq Guardar y salir

:w! Sobrescribe el archivo existente. Guardar sin salir.

ZZ Escribir el archivo sólo si se han realizado modificaciones, luego salir. Esta


expresión se utiliza con frecuencia para salir de vi de forma normal.

:e! Editar la copia de disco actual del archivo. El archivo se volverá a cargar y
todos los cambios realizados se cancelarán. También puede usar esta función
si la copia de disco ha cambiado por cualquier motivo y usted quiere trabajar
sobre la última versión.

:! Ejecute un comando shell. Tipee el comando y presione Enter. Cuando el


comando finalice, verá los datos de salida y un aviso para volver al editor vi.

El editor vi tiene dos modos de operación:

Modo de comandos
En el modo de comandos, podemos desplazarnos dentro de un archivo y
efectuar operaciones de edición como buscar texto, eliminar texto, modificar
texto, etc. vi suele iniciarse en modo de comandos.
Carrillo Hernández Rogelio Ignacio

Modo insertar

Presionar la tecla i para entrar en el modo insertar, donde podemos tipear


texto nuevo en el punto de inserción de un archivo. Para volver al modo de
comandos, presione la teclaEsc(Escape).

Estos dos modos determinan la forma de comportamiento del editor. Todo lo que se
tipee en el modo insertar se considerará como texto a insertar en el archivo. Si intenta
tipear un comando y no sucede nada o el carácter aparece debajo del cursor,
seguramente olvidó presionar Esc para salir del modo insertar.

Edición de texto

Ahora que ya sabemos cómo abrir un archivo en vi, desplazarnos dentro de éste y
salir, llegó el momento de aprender a editar el texto dentro del archivo.

Modificar texto

Use los siguientes comandos para insertar, eliminar o modificar texto. Tome en
cuenta que algunos de estos comandos poseen una forma en mayúscula que es
similar a la forma en minúscula; lea las descripciones proporcionadas a continuación.

I Ingrese al modo insertar antes del carácter en la posición actual. Tipee el


texto deseado y presione Esc para volver al modo de comandos. Use I para
insertar texto al comienzo de la línea actual.

a Ingrese al modo insertar antes del carácter en la posición actual. Tipee el


texto deseado y presione Esc para volver al modo de comandos. Use A para
insertar texto al final de la línea actual.

c Use c para modificar el carácter actual e ingrese al modo insertar para tipear
caracteres de reemplazo.

o Abra una línea nueva para insertar texto debajo de la línea actual. Use O para
abrir una línea arriba de la línea actual.

cw Elimine el resto de la palabra actual e ingrese al modo insertar para


reemplazarla. Use un conteo de repetición para reemplazar varias palabras.
Use c$ para reemplazar hasta el final de la línea.

dw Igual a cw y c$, con la excepción de que no se ingresa al modo insertar.

dd Elimine la línea actual. Use un conteo de repetición para eliminar varias líneas.

x Elimine el carácter en la posición del cursor. Use un conteo de repetición para


eliminar varios caracteres.

p Coloque el último texto eliminado después del carácter actual. Use P para
colocarlo antes del carácter actual.

xp Esta combinación de x y p es una expresión muy útil que intercambia lugares


entre el carácter en la posición del cursor y el que tiene a la derecha.
Carrillo Hernández Rogelio Ignacio

Búsqueda de texto

Busque texto en el archivo usando expresiones regulares:


/ Use / seguido de una expresión regular para buscar hacia delante en el archivo.

? Use ? seguido de una expresión regular para buscar hacia atrás en el archivo.

n Use n para repetir la última búsqueda en cualquier dirección.

Referencias
Ejercicio holaSASM: https://www.youtube.com/watch?v=wLXIWKUWpSs

Ejercicio hola y holaVI:


 https://elpistolerosolitario.wordpress.com/2015/08/31/hola-mundo-en-ensa
mblador-x86-para-gnulinux/

Información sobre Vi:


 https://www.unirioja.es/cu/enriquez/docencia/Quimica/vi.pdf
 https://www.profesionalreview.com/2017/04/01/vi-linux/
 https://www.ibm.com/developerworks/ssa/linux/library/l-lpic1-v3-103-8/ind
ex.html

S-ar putea să vă placă și