Programación en ensamblador

Page 56

56

CC-BY-SA • PID_00178132

Programación en ensamblador (x86-64)

4.2.6. Apuntadores

Un aspecto muy importante del lenguaje C es que permite acceder directamente a direcciones de memoria. Esto se consigue utilizando un tipo de variable que se conoce como apuntador a memoria. Un apuntador es una variable que contiene una dirección de memoria. Un apuntador se define indicando el tipo de dato al cual apunta y añadiendo el símbolo * ante el nombre del apuntador.

Cabe tener presente que al definir un apuntador solo se reserva espacio para

Símbolo * en C

almacenar una dirección de memoria; no se reserva espacio para poder almacenar un valor de un tipo determinado.

El formato general para definir un apuntador en C es el siguiente: tipo *nombre_apuntador;

Utilizamos el operador & para obtener la dirección de memoria donde se encuentra almacenada una variable, no su contenido. Esta dirección la podemos asignar a un apuntador. Ejemplo int *p1; char *p2;

// Se define un apuntador de tipo int // Se define un apuntador de tipo char

int x=1, y; char c='a';

// se definen dos variables de tipo int // se define una variables de tipo char

p1=&x; p2=&c; y=*p1;

// se asigna a p1 la dirección de la variable x // se asigna a p2 la dirección de la variable c // como p1 apunta a x, es equivalente a y = x.

Cuando trabajamos con vectores, el nombre del vector en realidad es un apuntador, una constante que contiene la dirección del primer elemento del vector.

int vector[3]={1, 2, 3}; //lo que es equivalente a hacer lo siguiente: int vector[3]; int *v; int i; v = vector; //vector i *v son apuntadores a entero. for (i=0; i<3; i++) *(v+i)=i+1; // *(v+i): indica que estamos accediendo al contenido // de la dirección 'v+i'

El símbolo * tiene múltiples funciones: definir un apuntador, acceder al contenido de una posición de memoria y también se corresponde con el operador aritmético de multiplicación.


Turn static files into dynamic content formats.

Create a flipbook

Articles inside

6.8. IDIV: división entera con signo

2min
pages 98-99

5.7.3. Retorno al sistema operativo (exit

0
page 90

6. Anexo: manual básico del juego de instrucciones

1min
page 91

5.6. Controlar la consola

1min
page 85

5.7. Funciones del sistema operativo (system calls

1min
page 86

5.7.1. Lectura de una cadena de caracteres desde el teclado

1min
page 87

5.4.4. Llamadas a subrutinas y paso de parámetros desde C

6min
pages 78-82

4.2.6. Apuntadores

1min
page 56

4.2.4. Control de flujo

3min
pages 51-53

4.2.5. Vectores

2min
pages 54-55

4.2.3. Operadores

1min
page 50

4.1.1. Generación de un programa ejecutable

1min
page 47

4.2.2. Variables

1min
page 49

3.4.2. Modos de direccionamiento

7min
pages 39-42

3.4.3. Tipos de instrucciones

3min
pages 43-45

3.4.1. Tipos de operandos de las instrucciones x86-64

5min
pages 36-38

3.2.3. Definición de otros elementos

2min
pages 31-32

2. Lenguajes de programación

1min
page 22

1.1.2. Modo heredado de 16 y 32 bits

1min
page 14

1.2.1. Organización de la memoria

1min
pages 16-17

2.1. Entorno de trabajo

2min
pages 23-24

1.2.2. Registros

5min
pages 18-21

Objetivos

0
pages 9-10

3.2.2. Definición de variables

5min
pages 27-30

Introducción

2min
pages 7-8
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.