Sunteți pe pagina 1din 8

ENSAMBLADOR

ACUMULADOR: permite retroalimentar informacin.

MICROPROCESADOR: Bus (conjunto de alambres), ALU, registros (registros de banderas), control


(decodificar la informacin).

DOS: sistema operativo que se comunica por texto.

Hay 2 sobreflujos, el de la mitad de la palabra que sirve para comparaciones y la palabra completa.

Registros de datos: se pueden direccionar con una palabra o como parte de un byte.

AX: acumulador principal, entrada y salida, aritmtica. Retroalimentar informacin.


BX: registro base, seala diferentes elementos como en los arreglos manejndolos como un
todo (INDICE).
CX: contador, cuando llega a 0 se prende una bandera para decir que termino.
DX: cifras grandes, usa al registro AX.

Registros de segmento: la memoria se divide en segmentos y facilita el rea de la memoria.

CS: direccin del cdigo de un programa.


DS: direccin de los datos de un programa.
SS: almacenamiento temporal de direcciones y datos (pila).
ES: ms particular (cadenas de caracteres).

Registros de banderas:

CF: acarreo.
PF: paridad (hace que el n# de 1s sea par para ver errores si la palabra es correcta).
AF: acarreo auxiliar.
ZF: cero (0).
SF: signo.
DF: direccin.
OF: overflow.

Registro (punteros) ndice:

SI y DI: sumas y restas, direccionamiento indexado.


SP: asociado con el reg. SS, da un valor de desplazamiento, se refiere a la palabra que esta
siendo procesada en la pila.
BP: facilita la referencia de parmetros.
IP: apunta a instrucciones (a la sig. que se ejecuta).

Interrupciones: le da servicio a quien lo llama y luego regresa.

INT: comando en ensamblador para llamar al BIOS (INT 10 = E/S). Pueden ser causadas por el
BIOS o el DOS.
Para escribir se pueden usar la INT 21h con DOS y la INT 10h con BIOS.
Etiquetas: posicin dentro de un programa.

ENTORNOS DE DESARROLLO
Es una aplicacin que ofrece servicios integrales que facilitan el desarrollo de software.

Eclipse
NetBeans
Visual C++
Code Blocks
Clarion

Una IDE contiene:

Editor de texto (sin formato)


Compilador
Ligador o enlazador

o Interprete (JAVA no arroja .exe)

Proceso de edicin, compilacin y enlazado:

1. Editor: el cdigo se escribe (.cpp).


2. Preprocesador: lee las instrucciones del preprocesador(.cpp).
3. Compilador: el cdigo fuente resultado se compila (.obj), aun no es ejecutable ya que necesita
incluir el cdigo maquina relativo a las funciones y mdulos (libreras). Guarda el cdigo.
4. Enlazador: el cdigo objeto (.obj) se une a las libreras (.lib) y modulos invocados por nuestro
cdigo objeto para arrojar un archivo ejecutable (.exe). Tablas de referencia a variables y
funciones + cdigo mquina.
5. Cargador: el ejecutable (.exe) es lanzado por el sistema operativo.
6. CPU: el procesador accede al cdigo mquina del programa ya convertido y ejecuta las acciones
(1010).

COMPILADOR INTERPRETE
Optimiza el cdigo Fcil depuracin
Ejecucin del programa mas rpida Lentitud al ejecutar (traduce al instante)
Pesado Ligero
Guarda el cdigo y arroja un ejecutable (.exe) No genera o guarda cdigo objeto

REPRESENTACION DE DATOS EN MEMORIA Y OPERADORES


Comentarios:

/* */ seccin comentada

// lnea comentada

Identificadores:
Nombre de una variable
Estructura, unin o miembro
Nombre tipo enumerado
Funcin, nombre de typedef
o valor
o raton
o _ultimo
o _ltimo
o casa 31
o 1alto

No se permite el uso de la ni de las tildes en los identificadores.

Palabras clave (keywords), no se pueden utilizar palabras reservadas por el lenguaje.

Palabras reservadas del lenguaje:

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Existe diferencia entre minsculas y maysculas.

La declaracin de variables es: tipo_dato nombre;

char letra; char guion = -;


int edad; int num = 0;
float costo; float longitud = 6.25;

Constantes en C:

123 Decimal 0123 Octal 0x123 Hex 0b010010 Binario x Carcter

\010 Carcter octal \x Carcter especial (n,t,b,r,f,,\d,v) abcdef Cadena (carcter nulo al final)

La definicin de constantes es: #define NOMBRE valor

#define PI 3.14159
#define TAMANIO 100
#define CARACTER u
#define Cadena hola

# --> directivas del preprocesador (se prepara para compilar).

#define --> define o declara constantes o incluso macros. Genera una serie de tokens.

NULL --> constante para indicar que est vaco = 0.

Tipos de datos primitivos:

char int float double long double

Duracin de las variables:

Estticas: se crean en tiempo de compilacin.

Dinmicas: se crean en tiempo de ejecucin para n variables.

mbito o alcance de las variables (scope): lugares donde podemos utilizar una determinada variable.

Globales: se crea en la funcin principal y la ve todo el programa.

Locales: se crea en cierta funcin y solo es visible en esa funcin.

Modificadores de alcance y duracin:

static --> cuando una variable local pasa de dinmica a esttica. Si se agrega en variable global la variable
solo es accesible por las funciones del archivo en el que se crea.

extern --> una variable se cre en otro modulo y se quiere usar en el actual.

auto --> indica que una variable local es dinmica.

register --> le pide al compilador que almacene la variable en un registro de la mquina.

volatile --> se usa para decirle que el contenido de la variable puede ser modificado en cualquier
momento desde el exterior, lee de nuevo el valor de la variable para cuando tengamos que usarlo.

const --> modificador, hace que una variable se maneje como constante.

unsigned/signed --> modificador de signo.

short/long --> hace corto o largo a un tipo de dato.

FUNCION PRINTF

Muestra mensajes por pantalla en C. Esta definida en <stdio.h>.

printf(<cadena_de_control> [, <lista_de_argumentos> ] );

Los argumentos (tambin llamados parmetros). En la lista de argumentos importa el orden. Son el
conjunto de variables que se desean imprimir junto con la cadena de formato.

La cadena de control hace referencia a una cadena de caracteres que contiene informacin sobre el
formato de salida. La lista de argumentos son argumentos que representan los datos de salida.
En la cadena de control se incluyen grupos individuales de caracteres de formato, cada uno de los cuales
deben comenzar por %.

%d o %i entero con signo %u entero sin signo %o entero octal sin signo

%x entero hex min %X entero hex may %f coma flotante simple

%lf coma flotante doble %e notacin cientfica min %E notacin cientfica may

%c caracter (char) %s cadena de caracteres (string)

Caracteres no imprimibles: cdigo de escape, mejor visualizacin.

\a pitido \t tabulacin \n nueva lnea \ comillas dobles \ apostrofe

\? Interrogacin \b borrar \r retorno de carro

Longitud mnima de campo: un entero situado entre el signo % y el cdigo de formato. Si el entero
empieza por cero, los espacios libres se rellenan con 0.

printf(|%11f|\n,98.12345);

printf(|%11f|\n,98.12345);

Longitud mxima de campo: para los valores con punto decimal es posible determinar la longitud
mxima de decimales, y para cadenas el valor mximo de caracteres. La alineacin es otro parmetro
especificable.

printf(|%-11.4f|\n,98.12345);

Sentencias

Sentencia simple: una sola operacin que termina en ;


Sentencia compuesta: varias sentencias simples encerradas en una llave.
Sentencia vaca: ; no hace nada.

Cambios de tipos forzados:

int val1 = 6, val2 = 9, val3 = 7;

float prom;

prom=(val1+val2+val3)/3;

El resultado de en la variable prom sera 7.0 POR LO TANTO --> se hace un casting para transformar
la suma de enteros en flotantes. Se coloca entre parntesis al tipo de dato que quieres.

int val1 = 6, val2 = 9, val3 = 7;

float prom;

prom =(float)(val1+val2+val3)/3;

AL DECLARAR VARIABLES ESTAS CONTIENEN BASURA.


Operadores aritmticos:

+ suma - resta * multiplicacin

/divisin % modulo

Operadores relacionales: toma de decisiones


y relacin entre 2 o ms valores. Regresan un
Falso (0) o un Verdadero (1).

< menor que > mayor que


<= menor o igual >= mayor o igual

== igual igual (idntico a) != diferente de

APUNTADORES

Cuando declaras una variable el preprocesador la asigna a una parte de la memoria. Es una variable que
guarda una direccin. Facilita la administracin.

int a = 5; modifica(a)

modifica(a); {

a = a * 2;

Son diferentes variables con el mismo nombre, se modifican diferentes variables. A veces es necesario
modificar las variables desde otra parte del programa.

Declaracin de apuntadores: un puntero es una variable que guarda direcciones de una posicin de la
memoria, as que, si tenemos la direccin de memoria de una variable, independientemente de donde
nos encontremos en el programa, podremos modificar su valor.

tipo * identificador;

char * ptr1, *ptr2;

int * ptrInt; // contiene una direccin basura

NULL --> se emplea cuando un puntero no tiene asignada una direccin, incluido en <stdlib.h>.

#define NULL 0 // un valor que nunca vas a poder a usar

int * ptrInt = NULL; // mejor estilo

int * ptrInt = 0; // estilo feo

Operacin de incremento:

var ++; // posincremento en 1 int a, b =7;

var --; // posdecremento en 1 a = b++;


++ var; // preincremento en 1 a =++b;

-- var; //predecremento en 1 a = a+++b;

Operador direccin/direccionando:

&var --> devuelve la direccin de memoria donde comienza la variable.

*var --> devuelve el contenido del objeto referenciado por el puntero.

Declaracin de apuntadores:

#include <stdio.h>

#include <stdlib.h>

int main()

char letra1 = 97,letra2 = 98,letra3 = 99, * ptr1, * ptr2;

ptr2 = &letra1;

ptr1 = &letra2;

printf("%c - %c - %c\n",letra1,letra2,letra3);

(*ptr1)++;

printf("%c - %c - %c\n",letra1,letra2,letra3);

(ptr1)++;

(*ptr2)++;

printf("%c - %c - %c\n",letra1,letra2,letra3);

return 0;

Depuracin: verificar que el programa no tenga errores.

MANEJO DE MEMORIA

Memoria dinmica: memoria que se reserva en tiempo de ejecucin. Su tamao puede variar durante la
ejecucin del programa. NECESARIO liberar la memoria. Cuando no conocemos el nmero de datos a
tratar.

void free (void *ptr); //sirve para liberar memoria, si el puntero es nulo, free no hace nada.

MALLOC: reserva memoria y devuelve un puntero void al inicio de la misma, alojamiento.

void * malloc (size_t size); //recomendado utilizar sizeof() en size (numero de bytes a reservar).
CALLOC: reserva memoria, inicializa en 0, arreglos y matrices.

void * calloc (size_t nmemb, size_t size); // nmemb numero de elementos a reservar y size el
tamao de cada elemento.

REALLOC: redimensiona el espacio asignado anteriormente. Si el puntero tiene informacin la conserva.

void * realloc (void *ptr, size_t size);

S-ar putea să vă placă și