Documente Academic
Documente Profesional
Documente Cultură
Por
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.
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.
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:
Calculadora (Windows)
DINMICA
Estas son las impresiones de pantalla de nuestro programa (Flores Moranchel Arturo
Sealtiel):
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.