Вы находитесь на странице: 1из 23

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA

Sistemas Embebidos
Cdigo 208006
2014_II

FASE 1. ASSEMBLER

ENSAMBLADORES Y MACROENSAMBLADORES
Existen varios ensambladores disponibles para ambiente MS-DOS: el IBM Macro
Assembler, el Turbo Assembler de Borland, el Turbo Editassm de Speedware.
Macro Ensamblador IBM: Est integrado por un ensamblador y un
macroensamblador. En gran medida su funcionamiento y forma de invocarlo es
sumamente similar al de Microsoft. Su forma de uso consiste en generar un
archivo fuente en cdigo ASCII, se procede a generar un programa objeto que es
ligado y se genera un programa .EXE. Opcionalmente puede recurrirse a la utilera
EXE2BIN de MS-DOS para transformarlo a .COM. Es capaz de generar un listado
con informacin del proceso de ensamble y referencias cruzadas.
Macro Ensamblador de Microsoft: Dependiendo de la versin, este ensamblador
es capaz de soportar el juego de instrucciones de distintos tipos de
microprocesadores Intel de la serie 80xx/80x86. En su versin 4.0 este soporta
desde el 8086 al 80286 y los coprocesadores 8087 y 80287. Requiere 128KB de
memoria y sistema operativo MS-DOS v2.0 o superior. Trabaja con un archivo de
cdigo fuente creado a partir de un editor y grabado en formato ASCII. Este
archivo es usado para el proceso de ensamble y generacin de cdigo objeto.
Posteriormente, y con un ligador, es creado el cdigo ejecutable en formato .EXE.
Turbo Editassm: Este es desarrollado por Speddware, Inc., y consiste de un
ambiente integrado que incluye un editor y utileras para el proceso de ensamble y
depuracin. Es capaz de realizar el ensamble lnea a lnea, conforme se
introducen los mnemnicos, y permite revisar listas de referencias cruzadas y
contenido de los registros. Este ensamblador trabaja con tablas en memoria, por lo
que la generacin del cdigo ejecutable no implica la invocacin explcita del
ligador por parte del programador. Adicionalmente permite la generacin de
listados de mensajes e informacin de cada etapa del proceso y la capacidad de
creacin de archivos de cdigo objeto.
Turbo Assembler: De Borland Intl., es muy superior al Turbo Editassm. Trabaja
de la misma forma, pero proporciona una interfaz mucho ms fcil de usar y un
mayor conjunto de utileras y servicios.

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
Realmente la diferencia entre los ensambladores radica en la forma de generar el
cdigo y en las directivas con que cuente, aunque estas diferencias son mnimas.
El cdigo ensamblador no cambia puesto que los microprocesadores con los que
se va a trabajar son comunes. As, todos los programas que se creen con un
ensamblador en particular podrn ser ensamblados en otro, cambiando las
pseudo-operaciones no reconocidas por el equivalente indicado en el manual de
referencia del paquete empleado.
Los programas que componen el Macro Ensamblador Microsoft v4.0 son los
siguientes:
Programa Descripcin
MASM.EXE Microsoft Macro Assembler
LINK.EXE Microsoft 8086 object linker
SYMDEB.EXE Microsoft Symbolic Debuger Utility
MAPSYM.EXE Microsoft Symbol File Generator
CREF.EXE Microsoft Cross-Reference Utility
LIB.EXE Microsoft Library Manager
MAKE.EXE Microsoft Program Maintenance Utility
EXEPACK.EXE Microsoft EXE File Compression Utility
EXEMOD.EXE Microsoft EXE File Header Utility
COUNT.ASM Sample source file for SYMDEB session
README.DOC Updated information obtained after the manual was printed.
El Microsoft Macro Assembler v4.0 crea cdigo ejecutable para procesadores
8086, 8088, 80186, 80188, 80286, 8087 y 80287. Adems es capaz de aprovechar
las instrucciones del 80286 en la creacin de cdigo protegido y no protegido.
El trmino macroensamblador es usado para indicar que el ensamblador en
cuestin tiene la capacidad de poder ensamblar programas con facilidad de
macro. Una macro es una pseudo-instruccin que define un conjunto de
2

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
instrucciones asociadas a un nombre simblico. Por cada ocurrencia en el cdigo
de esta macro, el ensamblador se encarga de substituir esa llamada por todas las
instrucciones asociadas y, en caso de existir, se dejan los parmetros con los que
se estaba llamando la macro y no con los que haba sido definida. Es importante
sealar que no se deja una llamada, como a una subrutina o procedimiento, sino
que se incorporan todas las instrucciones que definen a la macro.

EJEMPLO
Para comenzar veamos un pequeo ejemplo que ilustra el formato del programa
fuente. Este ejemplo est completamente desarrollado en lenguaje ensamblador
que usa servicios o funciones de MS-DOS (system calls) para imprimir el mensaje
Hola mundo en pantalla.
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
STACK SEGMENT STACK ; Segmento de pila
DW 64 DUP (?) ; Define espacio en la pila
STACK ENDS
DATA SEGMENT ; Segmento de datos
SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena
DATA ENDS
CODE SEGMENT ; Segmento de Cdigo
ASSUME CS:CODE, DS:DATA, SS:STACK
INICIO: ; Punto de entrada al programa
MOV AX,DATA ; Pone direccion en AX
MOV DS,AX ; Pone la direccion en los registros

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje
MOV AH,09H ; Funcion: Visualizar cadena
INT 21H ; Servicio: Funciones alto nivel DOS
MOV AH,4CH ; Funcion: Terminar
INT 21H
CODE ENDS
END INICIO ; Marca fin y define INICIO
La descripcin del programa es como sigue:
1. Las declaraciones SEGMENT y ENDS definen los segmentos a usar.
2. La variable SALUDO en el segmento DATA, define la cadena a ser desplegada.
El signo del dlar al final de la cadena (denominado centinela) es requerido por la
funcin de visualizacin de la cadena de MS-DOS. La cadena incluye los cdigos
para carriage-return y line-feed.
3. La etiqueta START en el segmento de cdigo marca el inicio de las
instrucciones del programa.
4. La declaracin DW en el segmento de pila define el espacio para ser usado por
el stack del programa.
5. La declaracin ASSUME indica que registros de segmento se asociarn con las
etiquetas declaradas en las definiciones de segmentos.
6. Las primeras dos instrucciones cargan la direccin del segmento de datos en el
registro DS. Estas instrucciones no son necesarias para los segmentos de cdigo
y stack puesto que la direccin del segmento de cdigo siempre es cargado en el
registro CS y la direccin de la declaracin del stack segment es automticamente
cargada en el registro SS.
7. Las ltimas dos instrucciones del segmento CODE usa la funcin 4CH de MSDOS para regresar el control al sistema operativo. Existen muchas otras formas de
hacer esto, pero sta es la ms recomendada.

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
8. La directiva END indica el final del cdigo fuente y especfica a START como
punto de arranque.

4. Compilar el programa
Al terminar el cdigo en C se debe hacer clic en el botn MAKE, con lo cual se
Inicializar el proceso de compilacin en cual tomo el cdigo en C y verificar que
no haya errores de escritura en el cdigo, o nos advertir sobre ciertas funciones
que verific el compilador, si el cdigo no tiene errores de sintaxis este ser
traducido a un lenguaje para que pueda ser programado y entendido por el micro
controlador

5. Programar el micro controlador


Antes de proceder con esto verifica que la tarjeta DEMO9S08QG8 est conectada
a la computadora con el cable USB. Los LED de USB PWR y PWR_OUT deben
estar encendidos, as como el LED verde VDD. Sino no est encendido el LED
5

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
verde VDD verifica que los jumper PWR_SEL este colocado en la posicin VB. La
programacin se realiza mediante la herramienta Debug y lo hace en forma
Automtica cuando damos clic en el botn DEBUG. Durante este proceso se
Indican el estado de programacin de la memoria del micro controlador (memoria
Flash).
Las operaciones que realiza el Debugger son:
Borra la memoria.
Se baja el cdigo a la memoria FLASH (se programa el micro controlador)
Se verifica el programa
Se ejecuta el programa y para automticamente en la funcin main ().
Al terminar el proceso de programacin del micro controlador tenemos la
siguiente pantalla:

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II

Figura 1. Microcontrolador programado

2. El Compilador.
Su misin consiste en traducir a lenguaje de mquina el programa escrito en
lenguaje C, contenido en uno o ms archivos fuente entregados por el preprocesador, generando lo que se conoce como un archivo objeto, algunos
compiladores pasan por una fase intermedia en lenguaje ensamblador. Tambin
puede detectar errores durante la compilacin presentando un mensaje
dependiendo del error.
3. El enlazador
Un archivo objeto est escrito en cdigo mquina, pero no puede ser ejecutado
por si solo, puesto que le falta cdigo que se encuentra en otros archivos que lo

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
complementan. El enlazador se encarga de generar un ejecutable binario, a partir
del contenido de los archivos objetos y de diferentes

Libreras. Ms

especficamente el enlazador toma los archivos de cdigo objeto, generados en


los primeros pasos del proceso de compilacin y la informacin de los dems
recursos necesarios (Libreras), remueve recursos que no son necesarios y enlaza
el cdigo objeto con las libreras utilizadas produciendo finalmente un archivo
ejecutable.
4. Libreras.
Las Libreras no son ms que funciones pre compiladas, que contienen el cdigo
necesario para realizar funciones especficas, a las que el archivo fuente llama.
Estas libreras son realizadas para mantener el lenguaje lo ms sencillo posible
pero brindando las herramientas y funciones estndar que cualquier programador
pueda necesitar.
Estas funciones estn agrupadas en un conjunto de libreras de cdigo objeto, que
constituyen la llamada librera Estndar. La llamada de estas libreras se realiza de
la misma manera que a cualquier funcin por lo tanto deben ser declaradas antes
de ser llamadas por el programa, para tal efecto se emplea la sentencia #include.
Un ejemplo de librera es la llamada stdio (Standar Imput/Output) que posee
diferentes funciones tanto para leer como para escribir datos de diferentes
dispositivos perifricos como teclados, unidades de almacenamiento, pantallas,
impresoras, etc.
Lo que se busca al programar.
La principal razn para aprender a programar y conocer los lenguajes de
8

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
programacin es utilizar la computadora como herramienta para solucionar
problemas.
Este proceso puede dividirse en varias etapas, las cuales se nombran a
continuacin:
1. Anlisis del problema
El propsito de esta fase es ayudar al programador a comprender el problema. El
problema debe estar bien definido si se desea llegar a una solucin satisfactoria,
para lo cual se requiere que las especificaciones de entrada y salida sean
descritas con detalle.
2. Diseo del algoritmo
Una computadora solo puede solucionar problemas cuando se le proporcionan los
pasos sucesivos a realizar, a estos pasos sucesivos que indican las instrucciones
a realizar se les llama "algoritmos", procesos en los cuales se debe llevar una
serie de pasos en su respectivo orden as:

Diseo descendente

Refinamiento de pasos

Uso de herramientas de programacin: diagrama de flujo o pseudocdigo

Cmo llegar a dar la resolucin esperada a un problema?


Una vez que el algoritmo est diseado y representado mediante una herramienta
de programacin (pseudocdigo o diagrama de flujo) se lleva a cabo la fase de la
resolucin del problema mediante la computadora, la cual al igual que los

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
procesos anteriores tienen unos pasos a seguir:
1. La codificacin del algoritmo, la cual consiste en utilizar un lenguaje de
programacin siguiendo las reglas gramaticales del mismo (sintaxis) para
convertir el algoritmo en un programa
2. Ejecucin del programa utilizando un compilador del lenguaje
3. Comprobacin del programa

Para saber de qu estamos hablando al momento de realizar un programa


debemos conocer los elementos que lo componen y su descripcin
a) Diagrama de flujo
Tcnica especializada para representar algoritmos mediante el uso de figuras, las
cuales se unen mediante flechas denominadas lneas de flujo que indican el orden
en que se deben ejecutar.
Elementos que intervienen en un Programa
El proceso de elaboracin del programa requiere de diversos tipos de elementos
para su desarrollo conocidos como: Datos, constantes, variables, acumuladores,
banderas y contadores definidos a continuacin.

Tipos de datos

Las computadoras pueden trabajar con varios tipos de datos, los algoritmos y
programas operan sobre estos. Existen dos clases de datos: datos simples y datos
compuestos.
Los distintos tipos de datos se representan como un conjunto o secuencia de
dgitos binarios (bits). Los lenguajes de programacin de alto nivel nos permiten
10

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
basarnos en abstracciones para no manejar los detalles de representacin interna.
Los tipos de datos simples son: numricos (enteros y reales), lgicos y caracteres.

Datos numricos

Este tipo de datos se divide en enteros y reales.


Los enteros son aquellos nmeros que no tienen componente fraccionario o
decimal y dentro de la computadora son un subconjunto finito de los nmeros
enteros. Estos nmeros pueden ser negativos o positivos y el rango es de 32,768
a 32,767.
El tipo de datos "real" son aquellos nmeros que tienen una parte fraccionaria y
pueden ser positivos y negativos dentro de la computadora forman un subconjunto
de los nmeros reales. Para representar nmeros muy pequeos o muy grandes
se emplea la notacin de punto flotante, que es una generalizacin de la notacin
cientfica. En esta notacin se considera al nmero real como mantisa y al
exponente la potencia de 10 a la que se eleva este nmero.

Datos lgicos

Este tipo de dato es aquel que solo puede tomar uno de 2 valores: verdadero
(true) o falso (false). En lenguaje C no existe el tipo lgico pero se puede
implementar con un nmero entero conociendo que 0 es falso y cualquier nmero
diferente de cero verdadero.

Caracteres

El dato tipo carcter puede tomar un valor de un conjunto finito y ordenado de


caracteres o smbolos que la computadora reconoce (cdigo ASCII). Este tipo de
11

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
dato ocupa un byte y almacena un solo carcter.
Existe tambin el dato tipo cadena (compuesto) que es una sucesin de
caracteres que se encuentran delimitados por comillas, la longitud de una cadena
es el nmero de caracteres comprendidos entre los delimitadores.

Tipos de datos

Descripcin

Memoria

Int

Entero

2 bytes

Char

Carcter

1 byte

Float

Flotante

4 bytes

Double

Flotante de doble precisin

8 bytes

Banderas

Una bandera, tambin denominada interruptor o conmutador es una variable que


puede tomar uno de dos valores (verdadero o falso) a lo largo de la ejecucin del
programa y permite comunicar informacin de una parte a otra del mismo.

Expresiones

Las expresiones son combinaciones de constantes, variables, smbolos de


operacin (operadores), parntesis y nombres de funciones especiales. Por
ejemplo:
sqrt ((p-a)*(p-b)*(p-c));
(a+b+c) / p;

12

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
Una expresin toma un valor que se determina por el resultado de la ejecucin de
las operaciones indicadas, tomando los valores de las variables y constantes y
aplicando las prioridades de las operaciones.Segn el tipo de operadores que se
emplee en la expresin. Estas se clasifican en aritmticas, lgicas, de caracteres o
mixtas.
Estructura general de un programa en C
Todo programa en C consta de una o ms funciones, una de las cuales se llama
main. El programa siempre comenzar por la ejecucin de la funcin main. Las
definiciones de las funciones adicionales pueden preceder o seguir a main.
Cada funcin debe contener:
1. Una cabecera de la funcin, que consta del nombre de la funcin, seguido
de una lista opcional de argumentos encerrados con parntesis.
2. Una lista de declaracin de argumentos, si se incluyen stos en la
cabecera.
3. Una sentencia compuesta, que contiene el resto de la funcin.
Los comentarios pueden aparecer en cualquier parte del programa, mientras estn
situados entre los delimitadores /* */ o comenzar con // si solo es una lnea.
/*Estructura de un programa en C*/
#include <nombre_de_la_biblioteca>
#define nombre_de_la_constante valor
//Funcin principal
13

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II

void main(){
definicin de variables;
instrucciones del programa;
}
Entrada y salida de datos en C
Es necesario conocer las entradas y las salidas del problema para poder
resolverlo. Para que C reciba estos datos utilizamos las funciones de biblioteca
scanf para la entrada y printf para la salida. Su sintaxis es la siguiente:
//Lee el valor y lo guarda en una variable
scanf ("%d", &variable);
//Imprime en pantalla el texto y el valor
printf ("El valor es %d", variable);
Tipos de estructuras aplicadas en C

Estructuras de decisin If-Else

Cuando el programador desea especificar en un algoritmo o programa 2 o ms


caminos alternativos se deben utilizar una estructura de decisin, la cual evala
una condicin y en funcin del resultado, realiza una parte de la estructura u otra.
Las condiciones se especifican mediante expresiones lgicas.

14

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II

Estructura de decisin mltiple (switch)

La estructura switch evala una expresin que puede tomar n valores distintos,
segn con cul de estos valores coincida, se ejecutaran ciertas acciones, es decir,
el programa o algoritmo seguir un determinado camino entre los n posibles.

Estructuras de repeticin

Las computadoras estn diseadas especialmente para aquellas aplicaciones en


las cuales una operacin o conjunto de ellas deben de repetirse varias veces. A las
estructuras que repiten una secuencia de instrucciones un nmero determinado de
veces se les denomina bucles y se llama iteracin al acto de repetir la ejecucin
de una secuencia de acciones.

Estructuras de control de repeticin while y do/ while

En estas estructuras el conjunto de instrucciones que forman parte del bucle se


repite mientras se cumple una determinada condicin.
La diferencia entre ellas es que la estructura while checa la condicin de
continuacin del ciclo al principio de este, antes de ejecutar las condiciones del
bucle.
La estructura do/ while prueba la condicin despus de ejecutar las instrucciones
del bucle y por lo tanto esta se ejecutar por lo menos una vez.
La sintaxis de la estructura while es:
while (condicin) {
Instrucciones que se repetirn mientras la condicin sea
verdadera;
15

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
Instrucciones adicionales;
}
La sintaxis de la estructura do/ while es:
do {
Instrucciones que se repetirn al menos una vez mientras la
condicin
sea verdadera;
Instrucciones adicionales:
}
while (condicin);

Estructura de control de repeticin for

La estructura for maneja de manera automtica todos los detalles de repeticin


controlada por un contador. La sintaxis de la estructura for es:
for (contador; condicin; variacin)
Secuencia de instrucciones que se desean repetir;

Arreglos unidimensionales

Un arreglo es un conjunto de celdas de memoria relacionadas entre si ya que


todos tienen el mismo nombre y almacenan el mismo tipo de datos para referirse a
una celda en particular algn elemento dentro del arreglo y entre corchetes [] el
nmero de posicin del elemento dentro del arreglo.

16

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
El primer elemento se almacena en la posicin 0 del arreglo, es decir el primer
elemento del arreglo se conoce como a[0], el segundo como a[1], el sptimo como
a[6] y en general el elemento de orden i del arreglo a se conoce como a[i-1].
El nmero de posicin que aparece dentro de los corchetes se conoce como
ndice y debe ser un nmero entero o una expresin entera, por ejemplo:
printf ("%i", a[0]+a[5]+a[10]);
x=a[7]/2;
x=a[4]=12;
operadores:

17

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II

Operadores de bit:

El operador AND (&)


:
El operador AND compara dos bits; si los dos son 1 el resultado es 1,
en otro caso el resultado ser 0
El operador OR (
|
)
:
El operador OR compara do
s bits; si cualquiera de los dos bits es 1,
entonces el resultado es 1; en otro caso ser 0
El operador XOR (
^
)
:
El operador OR exclusivo o XOR, dar como resultad
o un 1 si
cualquiera de los dos operandos es 1, pero no los dos a la vez
operador de complemento (
~operadores de desplazamiento a nivel de bit (
<<
y
>>
)
:
Desplazan a la
izquierda o a la
18

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
derecha un nmero especificado de bits. En un desplazamiento a la izquierda los
bits que
sobran por el lado izquierdo se descartan y se rellenan los nuevos espacios con
ceros. De
manera anloga pasa con los desplazamientos a la derecha.
Operadores lgicos:
)
:
Este operador devuelve como resultado el
complemento a uno del operando

Operadores relacionales:

Comparacin de operadores:

19

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II

Tipos y tamao de datos:


Los compiladores C presentan iferentes tamaosen los datos comunes y lo suelen
hacer a considerando la eficiencia de cada procesador. Pero se deben tener unas
rigurosidades asi:
sizeof
(char) <=
sizeof
(short) <=
sizeof
(int) <=
sizeof
(long)
Donde:
1.char :con tamao suficiente para el conjunto de caracteres bsico.
2.short :al menos de 16 bits
3.long: de al menos de 32bits
Con el fin de evitar conflictos en los tamaos de las variables al traspasar cdigo
desde una plataforma a otra, el estndar C99 (Es la revisin de 1999 de C)
incluy los siguientes tipos de datos:
int8_t, int16_t, int32_t, int64_t -uint8_t, uint16_t, uint32_t, uint64_tDonde int8_t es
un entero de 8 bits incluyendo el signo,int16_t es uno de 16 bits, etc.
Las anteriores definiciones se encuentran en un header llamado stdint.h y
solucionan el inconveniente anterior siempre y cuando el compilador sea

20

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
compatible con C99 dentro de estos operadores se encuentran los modificadores y
son:
el static, el voltil,const.
El punto flotante:
los nmeros en coma flotante son usados, normalmente, para aproximar valores
analgicos y continuos, por que dan una mayor resolucin que los enteros. Las
variables tipo float tienen el valor mximo 3.4028235E+38, y mnimo pueden
alacanzar el -3.4028235E+38. Ocupan 4bytes (32bits).
Los punteros:
Se puede decir que el puntero es como una flecha apuntando a otra variable. Esa
variable no es ms que una direccin de memoria, el puntero indicara pues
donde estaa almacenado el valor de la variable a la que apunta.
Entonces al declarar un puntero lo que se hace es reservar espacio para
almacenar una direccin de memoria, no el contenido de la variable .
Declaracin de punteros:
el puntero es una variable. Asi pues los punteros podrian dar la impresin de que
son elementos separados de las variables. No es as. Son variables, y se le puede
asignar nuevos valores, e incluso realizar algunas operaciones aritmticas tiles
con ellos. Una variable de tipo puntero est ntimamente ligada con el tipo al que
apunta. Por ende, en la declaracin, se escribe el nombre del tipo al que apuntar
el puntero, seguido de asterisco, y por ltimo, el nombre del puntero.
Ejemplo:
int
*p_entero;
float
*p_real;
char
*c
aracter;
operadores de contenido y de indireccion:
El operador de indireccin &: se utiliza para referirse a la direccin de una
variable, as el cdigo siguiente :

21

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II
/* Reservamos 4 bytes para almacenar una direccin de memoria
*/int*p_entero;/* Reservamos 4 bytes para almacenar un entero */
int
entero;
/* Escribimos en la variable p_entero la direccin de entero */
p_entero = &entero;
El operador *:
se utilizar para manejar la direccin a la que apunta un puntero. Se Podra llamar
el operador de acceso. Tanto el operador de acceso, como el de indireccin,
funcionan en notacin prefija. Asi:
int
*p_entero;
int
entero1,
entero2;
entero1 = 2;
entero2 = 5;
p_entero = &entero1;
entero1 = *p_entero + entero2;
Funciones:
Declaracin y definicin
declaracin: prototipo (interfaz), funcin abstracta.
definicin: la funcin misma.
Ejemplos:
int optimo(int a, int b);
int optimo(int a, int b)
{
int aux = a;
/* cuerpo... */
return aux;
}
Del tipo prototipo , definicin y llamada:
int optimo(int a, int b);
main(){
/* codigo... */
c = optimo(a,b);
}
22

ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERA


Sistemas Embebidos
Cdigo 208006
2014_II

REFERENCIAS BIBLIOGRFICAS
1 http://comunidadmsx.com

23

Вам также может понравиться