0% encontró este documento útil (0 votos)
23 vistas7 páginas

Almacenamiento y Direccionamiento en Memoria

Cargado por

l23210482
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas7 páginas

Almacenamiento y Direccionamiento en Memoria

Cargado por

l23210482
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE TIJUANA

INGENIERÍA INDUSTRIAL

Algoritmos y lenguaje de programación

Unidad III

Ago-Dic

Tarea I

Docente:

Casas Frausto Alma Graciela

Alumno:

Rodríguez Quezada Alexa Valeria

07 de Octubre 2024
3.5 Almacenamiento, direccionamiento y representación en memoria.

Almacenamiento

Se denomina almacenamiento al proceso y la consecuencia de almacenar.


Esta acción se vincula a recoger, depositar, archivar o registrar a partir del desarrollo
de la informática, el almacenamiento no solo se relaciona con objetos físicos, sino
también con materiales virtuales (digitales).

En el terreno de la computación, la idea de almacenamiento se refiere a

archivar los documentos. El almacenamiento implica copiar la información en algún

tipo de soporte: un disco rígido (disco duro), un DVD, un sitio web, etc. Así, un

usuario puede almacenar documentos de oficina en el disco rígido de su

computadora (ordenador), guardar sus fotos familiares en una plataforma online y

copiar sus canciones preferidas en un DVD.

En la actualidad, uno de los dispositivos de almacenamiento, a nivel

informático, más utilizado es el pendrive. En el mismo podemos guardar una gran

variedad de documentos, fotografías o archivos y, además, llevarlos consigo. Sí,

porque ese artículo tiene un tamaño muy pequeño que facilita el llevarlo en el bolso,

el maletín e incluso el bolsillo.Hoy en día existe lo que se conoce como

almacenamiento en la nube, que consiste en guardar todo tipo de documentos en

espacios virtuales a los que se puede acceder en cualquier momento.

Direccionamiento

Los modos de direccionamiento son un aspecto de la arquitectura del

conjunto de instrucciones en la mayoría de los diseños de unidades centrales de

procesamiento (CPU). Los diversos modos de direccionamiento que se definen en

una arquitectura de conjunto de instrucciones determinada definen cómo las

instrucciones en lenguaje de máquina en esa arquitectura identifican los operandos

1
de cada instrucción. Un modo de direccionamiento especifica cómo calcular la

dirección de memoria efectiva de un operando utilizando información contenida en

registros y/o constantes contenidas dentro de una instrucción de máquina o en otro

lugar.

En programación de computadoras, los modos de direccionamiento son de

interés principalmente para quienes escriben en lenguajes ensambladores y para

escritores de compiladores. Para conocer un concepto relacionado, consulte el

conjunto de instrucciones ortogonales que trata de la capacidad de cualquier

instrucción para utilizar cualquier modo de direccionamiento.

El término "modo de direccionamiento" está sujeto a diferentes

interpretaciones: ya sea "modo de cálculo de dirección de memoria" o "modo de

acceso a operando". Según la primera interpretación, se considera que las

instrucciones que no leen de la memoria ni escriben en la memoria (como "agregar

literal al registro") no tienen un "modo de direccionamiento". La segunda

interpretación permite máquinas como VAX que utilizan bits de modo operando para

permitir un registro o un operando literal. Sólo la primera interpretación se aplica a

instrucciones cómo "cargar dirección efectiva", que carga la dirección del operando,

no el operando en sí.

Como sabemos direccionamiento se refiere a cómo se accede a los datos

en la memoria u otras estructuras de datos. Existen varios tipos de

direccionamiento, cada uno con su forma particular de especificar la localización de

los datos. A continuación te explico los tipos más comunes:

1. Direccionamiento Inmediato

● El operando es un valor constante que se encuentra en la instrucción.

● Ejemplo: Si la instrucción es MOV AX, 5, aquí el valor 5 es el operando

inmediato que se asigna directamente al registro AX.

2. Direccionamiento Directo

2
● La instrucción contiene la dirección de memoria donde se encuentran los

datos.

● Ejemplo: Si la instrucción es MOV AX, [1000], significa que el dato está en la

dirección de memoria 1000, y ese valor se copia en el registro AX.

3. Direccionamiento Indirecto

● La instrucción hace referencia a un registro o una posición de memoria que

contiene la dirección real de los datos.

● Ejemplo: Si la instrucción es MOV AX, [BX], el registro BX contiene una

dirección de memoria, y el contenido de esa dirección se mueve a AX.

4. Direccionamiento por Registro

● El operando es un registro, y la instrucción actúa directamente sobre el

contenido de dicho registro.

● Ejemplo: MOV AX, BX copia el valor de BX en el registro AX.

5. Direccionamiento Indexado

● Se utiliza un registro base más un valor de desplazamiento para calcular la

dirección efectiva.

● Ejemplo: MOV AX, [BX + SI], donde BX es el registro base y SI es un registro

de índice. El contenido de la dirección resultante de sumar ambos se carga

en AX.

6. Direccionamiento Relativo

● Se utiliza un valor de desplazamiento respecto a la posición actual de la

instrucción.

● Ejemplo: Instrucciones como JMP o CALL usan direccionamiento relativo

para saltar a otra dirección añadiendo un valor de desplazamiento a la

posición actual.

3
7. Direccionamiento Implícito

● No se especifica el operando porque está implícito en la instrucción misma.

● Ejemplo: La instrucción INC (incrementar) puede implicar que se opere sobre

un registro específico sin necesidad de mencionarlo, como AX.

8. Direccionamiento por Segmento

● Se usan segmentos para particionar la memoria y acceder a direcciones

relativas dentro de estos segmentos.

● Ejemplo: MOV AX, [DS:SI], donde DS es el segmento de datos y SI es el

registro de desplazamiento dentro del segmento.

Cada uno de estos tipos de direccionamiento tiene diferentes aplicaciones

según el contexto de la programación o la arquitectura de la CPU, y son

fundamentales para la manipulación eficiente de datos y la ejecución de programas.

Representación en memoria

La representación en memoria en programación se refiere a cómo se

organizan y almacenan los datos en la memoria de la computadora (ya sea en RAM

u otro tipo de almacenamiento volátil). Todo tipo de dato que se utiliza en un

programa, como números, caracteres, objetos o estructuras de datos, debe ser

representado de alguna manera en memoria.

Aspectos Clave de la Representación en Memoria

1. Direcciones de Memoria

○ La memoria de un ordenador está dividida en celdas o bloques, cada

una con una dirección única (generalmente representada como un

número hexadecimal). Cada dirección de memoria puede almacenar

una cantidad fija de datos, como 1 byte.

○ Los pointers (o punteros) son un tipo de variable que almacena la

dirección de memoria donde se encuentra algún dato.

4
2. Representación Binaria

○ Los datos en la memoria están representados en formato binario (0s y

1s). Todo tipo de dato debe traducirse a este formato binario.

○ Un byte (unidad mínima en la mayoría de los sistemas modernos) está

compuesto de 8 bits (cada bit es un 0 o 1).

Tipos de Datos y su Representación en Memoria

1. Enteros

○ Un número entero (por ejemplo, int en lenguajes como C o Java) se

representa en memoria mediante una cantidad fija de bits

(comúnmente 32 o 64 bits).

○ Se usa la representación en complemento a dos para manejar enteros

con signo (positivos y negativos).

○ Por ejemplo, un entero de 32 bits puede almacenar valores desde

-2,147,483,648 hasta 2,147,483,647.

2. Punto Flotante (números decimales)

○ Los números en punto flotante (como float o double) siguen el

estándar IEEE 754, que divide la representación en tres partes: el

signo, el exponente y la mantisa. Esto permite representar una amplia

gama de números decimales en un formato de tamaño fijo (32 bits

para float, 64 bits para double).

3. Caracteres y Cadenas de Texto

○ Un carácter (por ejemplo, char en C) se almacena como un número

entero, usando una tabla de codificación como ASCII o Unicode para

mapear cada carácter a su representación numérica. En ASCII, por

ejemplo, el carácter 'A' está representado por el número 65.

○ Una cadena de texto (como "hola") es una secuencia de caracteres

almacenados consecutivamente en memoria. En muchos lenguajes,

5
las cadenas terminan con un carácter nulo (\0) para indicar el final de

la cadena.

4. Estructuras de Datos Compuestas

○ Los arreglos (o vectores) son colecciones de elementos del mismo tipo

almacenados en posiciones contiguas en memoria. Por ejemplo, un

arreglo de enteros se representaría como una secuencia de números

enteros almacenados uno tras otro.

○ Las estructuras (como struct en C) son colecciones de varios tipos de

datos agrupados en una sola entidad. Cada campo de la estructura

ocupa una posición de memoria específica, y el compilador se encarga

de alinear estos campos de acuerdo con reglas de alineación.

5. Objetos

○ Los objetos en lenguajes orientados a objetos (como Java, Python,

C++) son instancias de clases que contienen variables (atributos) y

métodos (funciones). En memoria, un objeto contiene los datos de sus

atributos, y la referencia (puntero) a sus métodos puede estar

almacenada en una tabla de métodos (vtable).

○ Los objetos suelen estar almacenados en el heap, mientras que las

referencias a ellos pueden almacenarse en el stack.

La representación en memoria en programación es fundamental para entender

cómo los datos se gestionan, acceden y manipulan en un programa. Diferentes tipos

de datos y estructuras tienen distintas formas de representarse en la memoria, y

esta representación afecta el rendimiento, la eficiencia y el comportamiento de los

programas.

También podría gustarte