LENGUAJE ENSAMBLADOR CON ARREGLOS


   1.    CONTENIDO:
ð  Definición:
Un array es un conjunto de datos del mismo tipo ordenados de forman líneal uno después de otro. Los componentes de un array se han de referenciar por medio del nombre del array y un índice de desplazamiento para indicar el componente deseado.
Los arrays son usados extensamente por los programadores para contener listas de datos en la memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro de un array con el objetivo de facilitar la manipulación de dichos datos, ya que los datos en memoria pueden ser modificados, clasificados, marcados para su eliminacion, etc. para luego ser reescritos al disco. Otro ejemplo podría ser el de un menú de opciones que se desplegarán dentro de una ventana para que el usuario pueda elegir una de éstas, en tales casos y cuando las opciones son numerosas, solamente se ponen unas cuantas, de ellas dentro de la ventana, pero se le da al usuario la oportunidad de poder subir y bajar a su antojo para ver el resto de opciones que, aunque no se vean en la ventana, forman parte del menú o array de opciones.

ð  Características:
Un array se caracteriza por:
- Almacenar los elementos del array en posiciones de memoria contínua
- Tener un único nombre de variable que representa a todos los elementos, y éstos a su vez se diferencian por un índice o subíndice.
- Acceso directo o aleatorio a los elementos individuales del array.
·         todos los arrays son de tamaño variable, tanto si se especifica cómo no un tamaño al ser declarados
·         Para ver el contenido de los arrays según van siendo ejecutadas las líneas de código que los declaran, utilizaremos la ventana Locales del depurador, que muestra las variables de ámbito local al procedimiento que estamos ejecutando actualmente
·         Los arrays se crean con el operador new seguido del tipo y número de elementos.
·         Se puede acceder al número de elementos de un arraycon la variable miembro implícita length (por ejemplo, vect.length).
·         Se accede a los elementos de un array con los corchetes [] y un índice que varía de 0 a length-1.
·         Se pueden crear arrays de objetos de cualquier tipo. En principio un array de objetos es un array de referencias que hay que completar llamando al operador new.
·         Los elementos de un array se inicializan al valor por defecto del tipo correspondiente (cero para valores numéricos, la cadena vacía para Strings, false para boolean, null para referencias).
·         Como todos los objetos, los arrays se pasan como argumentos a los métodos por referencia.
·         Se pueden crear arrays anónimos (por ejemplo, crear un nuevo array como argumento actual en la llamada a un método).

ð  Operaciones:
ü  LECTURA
Este proceso consiste en leer un dato de un arreglo y asignar un valor a cada uno de sus componentes.
La lectura se realiza de la siguiente manera:

     para i desde 1 hasta N haz
           x<--arreglo[i]

ü  ESCRITURA
Consiste en asignarle un valor a cada elemento del arreglo.
La escritura se realiza de la siguiente manera:

     para i desde 1 hasta N haz
                      arreglo[i]<--x

ü  ASIGNACION
No es posible asignar directamente un valor a todo el arreglo, por lo que se realiza de la manera siguiente:

     para i desde 1 hasta N haz
                     arreglo[i]<--algún_valor

ü  ACTUALIZACION
Dentro de esta operación se encuentran las operaciones de eliminar, insertar y modificar datos. Para realizar este tipo de operaciones se debe tomar en cuenta si el arreglo está o no ordenado.
Para arreglos ordenados los algoritmos de inserción, borrado y modificación son los siguientes:
1.-Insertar.
     Si i

2.- Borrar.
     Si N>=1 entonces
     inicio
          i<--1
          encontrado<--falso
          mientras i<=n y encontrado=falso
                inicio
                      si arreglo[i]=valor_a_borrar entonces
                            inicio
                                  encontrado<--verdadero
                                  N<--N-1
                                   para k desde i hasta N haz
                                        arreglo[k]<--arreglo[k-1]
                            fin
                      en caso contrario
                            i<--i+1
                fin
     fin
     Si encontrado=falso entonces
                mensaje (valor no encontrado)

3.- Modificar.
     Si N>=1 entonces
           inicio
                i<--1
                encontrado<--falso
                mientras i<=N y encontrado=false haz
                      inicio
                            Si arreglo[i]=valor entonces
                                 arreglo[i]<--valor_nuevo
                                 encontrado<--verdadero
                            En caso contrario
                                  i<--i+1
                      fin
          fin

ð  Tipos:
ü  Array unidimensional
Una array uni-dimensional es aquel en donde los componentes son accesibles por medio de uno y solamente un índice que apunte al componente requerido. Los arrays de este tipo son conocidos también con el nombre de vectores. Conceptualmente, podemos pensar en un array unidimensional como una lista compuesta de datos, donde para referirnos a uno de ellos emplearemos un número para indicar la posición del mismo dentro de la lista. Por ejemplo, consideremos el caso de la tabla o array VentaSemanal, la cual está pensada para registrar las ventas de cada uno de los días de la semana.
ü  Array bidimensional
Un array bi-dimensional es aquel en donde los componentes son accesibles por medio de una pareja de índices que apunten a la fila y a la columna del componente requerido. Los arrays de este tipo son conocidos también con el nombre de matrices. Conceptualmente, podemos pensar en un array bidimensional como en una lista compuesta de filas y columnas, en donde para referirnos a una de ellas emplearemos un número para indicar la posición de fila y otro número para indicar la posición de la columna del componente deseado. Por ejemplo, consideremos el caso de la tabla o array VentaSemanaQ, la cual está pensada para registrar las ventas de cada uno de los días de la semana por cuatro semanas, o sea, una tabla de 7 x 4 elementos.
ü  Array multidimensional
Los arrays multidimensionales son unas estructuras de datos que almacenan los valores en más de una dimensión. Los arrays que hemos visto hasta ahora almacenan valores en una dimensión, por eso para acceder a las posiciones utilizamos tan solo un índice. Los arrays de 2 dimensiones guardan sus valores, por decirlo de alguna manera, en filas y columnas y por ello necesitaremos dos índices para acceder a cada una de sus posiciones.
Dicho de otro modo, un array multidimensional es como un contenedor que guardara más valores para cada posición, es decir, como si los elementos del array fueran a su vez otros arrays.

ð  Ejemplos:
name "arreglo"
org 100h
;un areglo se puede acceder a travez de []
mov cx, 9 ;cuantos elementos voy a recorrer, empezamos con el 9
inicio:
 mov si, cx
 mov dl, v[si]
 cmp dl, mayor
 jng siguiente:
 mov mayor,dl
 siguiente:
 loop inicio
ret
v db 1,32,64,32,98,12,5,21,91,38
mayor db 0
   2.    RESUMEN:
         Un array es un medio de guardar un conjunto de objetos de la misma clase. Un Arrays o   arreglos son objetos implícitos que siempre conocen sus propias longitudes (values.length) (diferencia con C++ donde un arreglo no es nada más que un puntero) y que se comportan como clases finales
         Una Arrays se caracteriza
Almacenar los elementos del array en posiciones de memoria contínua
- Tener un único nombre de variable que representa a todos los elementos, y éstos a su vez se diferencian por un índice o subíndice.
- Acceso directo o aleatorio a los elementos individuales del array.
- todos los arrays son de tamaño variable, tanto si se especifica cómo no un tamaño al ser declarados
         Un array de una dimensión (unidimensional), también llamado vector o fila, es un tipo de datos estructurado compuesto de un número determinado de elementos, de tamaño fijo y elementos homogéneos (del mismo tipo). La característica de tamaño fijo se refiere a que el tamaño del array debe ser conocido en tiempo de compilación.
         Un array bidimensional (también llamado tabla o matriz) es un array con dos índices. Al igual que los vectores deben ser ordinales. Se declaran de igual manera que los arrays de una dimensión.
Un array bidimensional recoge valores de una tabla de doble entrada. Cada uno de los elementos se identifica y se asigna mediante una variable ($nombre) seguida de dos ([]) que contienen los índices del array.
         Los arrays multidimensionales son estructuras de datos que almacenan los valores en más de una dimensión. Los arrays que hemos visto hasta ahora almacenan valores en una dimensión, por eso para acceder a las posiciones utilizamos tan solo un índice.
   3.    SUMMARY:
 An array is a means of storing a set of objects of the same class. Arrays or arrays are implicit objects that always know their own lengths (values.length) (difference with C ++ where an array is nothing more than a pointer) and behave as final classes
 An Arrays are characterized
Store array elements in continuous memory locations
- Have a unique variable name that represents all the elements, and these in turn are differentiated by an index or subscript.
- Direct or random access to the individual elements of the array.
- all arrays are of variable size, whether or not a size is specified when declared
 An array of one dimension (one-dimensional), also called vector or row, is a structured data type composed of a fixed number of elements, of fixed size and homogeneous elements (of the same type). The fixed size feature refers to the size of the array must be known at compile time.
 A two-dimensional array (also called a table or array) is an array with two indexes. Just like vectors must be ordinal. They are declared in the same way as arrays of a dimension.
A two-dimensional array collects values ​​from a double-entry table. Each of the elements is identified and assigned by a variable ($ name) followed by two ([]) containing the indexes of the array.
 Multidimensional arrays are data structures that store values ​​in more than one dimension. The arrays we have seen so far store values ​​in one dimension, so to access the positions we use only an index.
   4.    RECOMENDACIONES:
-Tal vez no sea el lenguaje de programación más sencillo de aprender, pero el lenguaje ensamblador es y seguirá siendo una de las herramientas de programación más utilizadas por todas aquellas personas que desean tener un mayor grado de comprensión sobre el funcionamiento a nivel de dispositivo de una computadora personal.
-El lenguaje ensamblador no está relegado únicamente a computadoras antiguas con sistemas operativos en modo texto como el MS-DOS.
- Existe en la actualidad una gran cantidad de programas ensambladores que nos permiten programar en ambientes operativos gráficos como Windows 95/98, Windows NT y Linux, y una muestra de ello es el ensamblador que se utilizó para probar los programas de ejemplo de este trabajo.
- Por lo tanto, si alguien piensa que el lenguaje ensamblador ya pasó de moda, tal vez debería reconsiderar su postura y visitar algunas de las páginas en Internet que se dedican a cubrir temas sobre programación en lenguaje ensamblador y que se actualizan diariamente, tal vez lo que descubra le haga cambiar de opinión.
   5.    CONCLUSIONES:
- Podemos concluir diciendo que Los arrays permiten agrupar datos usando un mismo identificador. Todos los elementos de un array son del mismo tipo, y para acceder a cada elemento se usan subíndices.
- Los vectores o arreglos (array en inglés) de dos o más dimensiones se denominan con frecuencia matrices, y pueden tener tantas dimensiones como se desee; aunque lo correcto es llamarlo arreglo (de memoria) ya que una variable de más de dos dimensiones, no cumple con las características matemáticas de una matriz numérica.
- El tipo llamado arreglo o array, es el tipo más conocido y en muchos lenguajes, el único tipo d datos estructurados que se ha implementado.
- Los arreglos se utilizan con mucha frecuencia en el proceso de solución de problemas. Un programador que tiene muchos valores de datos de un mismo estilo muchas edades, temperaturas, nombres, etc. puede guardarlos en la computadora en forma de un arreglo, permitiendo una lectura y un uso más fácil.
- El programador también puede usar los valores de un arreglo para apuntar a los valores de otro arreglo (se conoce como Técnica del Puntero, pues el valor de un elemento en el primer arreglo apunta a otro elemento en el segundo arreglo). Sin los arreglos esta tarea se haría muy tediosa.
   6.    APRECIACION DEL EQUIPO:
Como grupo podemos apreciar algo importante la computadora guarda los distintos tipos de datos de una forma lógica de tal manera que pueda encontrar los valores de forma rápida y eficiente. La forma como son guardados los datos se llama estructura de los datos, de aquí el término de datos estructurados. La variable, usada en las unidades anteriores, es una manera de estructurar datos al igual que el archivo.
   7.    GLOSARIO DE TERMINOS:
ARCHIVO
Unidad significativa de información la cual puede ser manipulada por el sistema operativo de un ordenador debido a que tiene una identificación única formada por un "nombre" y un "apellido".
BPS
Bits por Segundo. Velocidad a la que se transmiten los bits en un medio de comunicación.
Bus
En una computadora, el bus es la ruta de data en el motherboard o tarjeta madre, que interconecta al microprocesador con extensiones adjuntas conectadas en espacios o slots de expansión, por ejemplo, disco duro, CD-ROM drive y tarjetas de video.
Byte
Conjunto de 8 bit, el cual suele representar un valor asignado a un carácter.
Megabyte
El Megabyte (MB) equivale a un millón de bytes, o mil kilobytes.
Petabyte
Un Petabyte (PB) corresponde a 1.024 billones (1,125,899,906,842,624) de bytes, que equivalen a 1024 Terabytes. Todavía no se han desarrollado memorias ni dispositivos de almacenamiento de esta capacidad.
Píxel
Es la información guardada en un solo punto de una imagen. La imagen completa es la unión de píxeles. Mientras más píxeles tenga la imagen mejor la calidad de la misma.



Diapositiva: 

http://www.slideshare.net/JorgeParedesToledo/arreglos-assembler


    8.    BIBLIOGRAFIA O LINKOGRAFIA:












Comentarios

Entradas populares de este blog

FASES PARA CREACIÓN DE UNA BASE DE DATOS

MODELO RELACIONAL