Sunteți pe pagina 1din 10

Reporte Prctica 3

Por

Cruces Luna Oscar Francisco


Estrada Mateos Elisabet Eunice
Flores Meja Irving Alan
Flores Moranchel Arturo Sealtiel

2CM10
Sistema Operativos
Jorge Corts Galicia

COMPETENCIAS
El alumno aprende a programar aplicaciones sensillas a nivel ensamblador bajo los sistemas
operativos Linux y Windows, comprendiendo la estructura general e instrcciones existentes
en el lenguaje ensamblador de procesador Intel-32 bits.
DESARROLLO
Seccion Linux:
Observaciones del primer cdigo seccin Linux (Oscar Francisco Cruces Luna):
La declaracin de variables en un programa en ensamblador se puede incluir como en el
cdigo proporcionado en la seccin .data. En esta seccin las variables que se declaren
sern inicializadas; y se pueden definir utilizando las siguientes directivas:
db: define una variable de tipo byte, 8 bits.
dw: define una variable de tipo palabra (word), 2 bytes = 16 bits.
dd: define una variable de tipo doble palabra (doubleword), 2 palabras= 4 bytes = 32
bits.
dq: define una variable de tipo cudruple palabra (quadword), 4 palabras = 8 bytes =
64 bits.
Para definir una variable de cualquiera de las directivas anteriores e sigue el siguiente
formato:
nombre_variable directiva valor_inicial
Como por ejemplo: cadena db 50, con lo que se declar una variable llamada cadena de tipo
byte con valor 50 decimal. Otra parte del cdigo es la seccin .text, y debe empezar siempre
con la directiva global, que indica cul es el punto de inicio del cdigo.
Observaciones del segundo cdigo seccin Linux (Oscar Francisco Cruces Luna):
Este cdigo resulta ser muy similar, sin embargo existe un elemento que es diferente al del
primer programa. La seccin de segment .bss, sirve para declarar variables no inicializadas.
Dentro de esta seccin se declaran y se reserva espacio para las variables del programa
para las cuales no queremos definimos un valor inicial; como en este caso la cadena que
ser ingresada durante la ejecucin del programa.

Contador del 0 al 9 (Linux)

DINMICA
Estas son las impresiones de pantalla de nuestro programa (Oscar Francisco Cruces Luna):

Cadenas (Linux)
DINMICA
Estas son las impresiones de pantalla de nuestro programa (Oscar Francisco Cruces Luna):

Analisis
Critico
(Oscar
Francisco
Cruces
Luna):
Para realizar esta prctica en su mayora tuve que investigar y aprender nuevas
instrucciones de forma independiente; en lo personal me hubiese gustado que se hablara
ms acerca de cada uno de los comandos que se pueden usar en el lenguaje ensamblador,
hubiese podido ser en clase o en dado caso dividir la prctica en dos para conocer los
comandos con detenimiento. En general me pareci una prctica compleja, pero en la que
sin duda aprend nuevas cosas y a donde buscar informacin.

Longitud de cadena (Linux)


DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Meja Irving Alan):

Concatenacion de 10 cadenas (Linux)


DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Meja Irving Alan):

Calculadora (Linux)
DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Meja Irving Alan):

Analisis
Critico
(Flores
Meja
Irving
Alan):
Esta
prctica
fue de una
dificultad
de
alta,

considerando que el conpilador NASM, constituyo un logro el poder instalar y media hacerlo
funcionar en la plataforma Linux (en mi caso personal), adems de que
considero que una mayor cantidad de ejemplos pudieran habernos
ahorrado algunas semanas de desarrollo, debido a la falta de
conocimiento fue dificil encontrar la forma de hacer, por ejemplo, un
ciclo. Una sugerencia seria trabajar con una herramienta ms estandar
con lo es gas (GNU assembler), ya que cuenta con un debugger del que
carece NASM, con el cual cada error hubiera sido mucho ms sencillo
de depurar por que sabriamos que parte exactamente del cdigo es la
que esta fallando.
Seccion Windows:
Estas son las impresiones de pantalla del primer codigo, compilado,
enlazado y probado:

Analisis Critico (Estrada Mateos Elisabet Eunice):


Para el ensamble y enlace del codigo hay que tener encuenta el tipo de procesador y de
sistema operativo, debido a que al compilar un programa pueden haber errores debido aque
en los sistemas operativos de 64 bits no esta soportadas ciertas lineas de codigo y esto
causa un error al compilar.
Estas son las impresiones de pantalla del segundo codigo, compilado, enlazado y probado:

Analisis Critico (Estrada Mateos Elisabet Eunice):


Para este lenguaje de programacion hay que tener cuidado al codificar debido a que
depende de los registros que utilicemos para guardar datos o realizar operaciones con
dichos datos nos dara un resultado de nuestro programa.

Contador del 0 al 9 (Windows)


DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Moranchel Arturo
Sealtiel):

Anlisis crtico (Flores Moranchel Arturo Sealtiel):


Esta prctica se me hizo interesante y a la vez difcil, ya que nunca haba trabajado con
ensamblador y este tiene unas reglas y sintaxis muy estrictas las cuales por un mnimo error
no sala el programa.

Longitud de cadena (Windows)


DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Moranchel Arturo
Sealtiel):

Concatenacion de 10 cadenas (Windows)


DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Moranchel Arturo
Sealtiel):

Anlisis crtico (Flores Moranchel Arturo Sealtiel):


Yo creo que es necesario dedicarle por lo menos un parcial a este lenguaje ya que se
necesita saber la sintaxis para poderle sacar provecho a este lenguaje ya que por lo que
investigue te ayuda mucho al aprovechamiento de recursos as como a ser ms eficiente por
sus llamadas al sistema.

Calculadora (Windows)
DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Moranchel Arturo
Sealtiel):

Anlisis crtico (Flores


Moranchel Arturo Sealtiel):
Cumpl con los objetivos de la prctica y aprend un poco ms acerca del lenguaje
ensamblador, al principio me pareci interesante el poder llegar a aprender uno de los
lenguajes de bajo nivel que existen ya que nunca lo haba utilizado. Me parece buena idea
saber por lo menos cmo funciona el ensamblador, aunque no se utilice en el desarrollo de
aplicaciones, y no hayamos aprendido el lenguaje al 100%.

Conclusin
COLA DINMICA
Flores Meja Irving Alan:
Las competencias se alcanzaron de manera mediana, por que considero que el principal
objetivo tendra que haber sido poder trabajar de una manera sencilla la programacin en el
lenguaje ensamblador de una manera ms sencilla sin hacer tanto enfsis a la plataforma en
la que se estuviera trabajando, por otra parte falto ver alguna serie ms completa de
ejemplos.
Flores Moranchel Arturo Sealtiel:
Considero que por ser un lenguaje de nivel bajo son necesarias demasiadas lneas de
cdigo, cada una dicindole a la mquina qu hacer. Esto puede beneficiarnos en cierto
modo ya que tenemos un control total del uso de recursos y del camino que est tomando el

proceso. Pero con este acceso al control total la complejidad sube a la misma escala y se
debe ser muy consciente de todo lo que se debe hacer.
Estrada Mateos Elisabet Eunice:
Esta prctica me parece que debemos aprender ms sobre este lenguaje ya que todos los
lenguajes estn basados en el lenguaje ensamblador, lo cual nos ayudara a comprender
mejor el funcionamiento del software de todas las computadoras. Adems de que es algo
complejo el orden en el que se programan las aplicaciones debido a que con un registro que
no est indicado en el cdigo el programa saldra errneo.
Cruces Luna Oscar Francisco:
Tras haber realizado algunas de las aplicaciones de la prctica en este lenguaje, me percate
de lo complejo que puede ser programar en un nivel como lo es ensamblador, ya que
adems de conocer las instrucciones (su sintaxis, parmetros, etc.) se debe considerar los
registros con las que estas pueden trabajar; es decir se debe conocer el hardware con el que
se trabaja tambin (procesador). Me hubiese gustado que se hablara tambin de
ensamblador pero con una arquitectura de 64 bits, ya que en la actualidad las computadoras
tienden a tener dicha arquitectura, y algunas instrucciones cambian; como lo es el caso del
comando para hacer el enlazado. Puedo concluir que tras haber programado con
ensamblador se puede conocer ms el hardware de la computadora, y lo que un lenguaje de
alto nivel puede llegar ha hacer para implementar un funcin muy simple.

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