viernes, 13 de marzo de 2015
APUNTADOR
OBJETIVO
Se
hizo un programa en el cual se puede observar el funcionamiento de un
apuntador, el cual nos permite entender cómo opera en un programa.
INTRODUCCIÓN
Cuando se declara una variable, el compilador reserva un
espacio de memoria para ella y asocia el nombre de esta a la dirección de
memoria desde donde comienzan los datos de esa variable.
Un apuntador es una variable cuyo valor es la dirección
de memoria de otra variable. Se dice que un apuntador “apunta” a la variable
cuyo valor se almacena a partir de la dirección de memoria que contiene el apuntador.
DESARROLLO
Para declarar el apuntador se especificó el tipo de dato
al que apunta, el operador ‘*’, y el nombre del apuntador. La sintaxis es la
siguiente:
Se asignaron al apuntador direcciones de variables a
través del operador de referenciación (‘&’) o direcciones almacenadas en
otros apuntadores.
La desreferenciación se almaceno en el espacio de memoria
donde apunta un apuntador. Esto se hace a través del operador ‘*’, aplicado al
apuntador que contiene la dirección del valor.
PROGRAMA
#include
#include
int main(int argc, char *argv[]) {
int y;
y=10;
int *py; //es un apuntador a un entero
py = &y; //toma la direccion de la variable y
printf("Direccion %p, Valor: %d\n",py, *py);
++*py;
printf("Direccion %p, Valor modificado:
%d\n",py, *py);
system("pause");
return
0;
}
CONCLUSIONES
Al igual que el resto de las variables, los apuntadores
se enlazan a tipos de datos específicos (apuntadores a variables de cierto tipo),
de manera que a un apuntador solo se le pueden asignar direcciones de variables
del tipo especificado en la declaración del apuntador.
Un apuntador puede contener una dirección inválida debido
a que este se declara al igual que cualquier otra variable, el mismo posee un
valor cualquiera que no se puede conocer con antelación, hasta que se
inicialice con algún valor (dirección).
Después de que un apuntador ha sido inicializado, la
dirección que posee puede dejar de ser válida si se libera la memoria reservada
en esa dirección, ya sea porque la variable asociada termina su ámbito o porque
ese espacio de memoria fue reservado dinámicamente y luego se liberó.
SUMADOR
Sumador
Completo.
Aunque
un medio sumador es suficiente para sumar los bits de orden bajo de dos
palabras de entrada de varios bits, no sirve para una posición de bit interior
de la palabra por que no maneja el acarreo que llega de la posición que está a
su derecha. Se necesita el sumador completo. Si examinamos el circuito se
construye con dos medios sumadores. La
línea de salida suma es 1 si el número de unos en A, B y el Acarreo de entrada
es impar. Acarreo de salida es 1 si A Y B son ambos 1 o uno y solo uno de ellos
1 y el bit de acarreo de entrada es también 1.
A, B, Acarreo Entrada
son las entradas del sumador y corresponden a los dos dígitos a sumar y el
posible acarreo de entrada respectivamente.
Las señales marcadas
con Suma y Acarreo de salida son las salidas del sumador y forman el resultado
de la suma y el acarreo de salida si es que lo hay respectivamente.
A
|
B
|
Acarreo Entrada
|
Suma
|
Acarreo de Salidas
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
Tabla de verdad del Sumador Completo
Circuito de Sumador completo elaborado en el simulador
Proteus.
Cto. Sumador Completo
Conclusiones.
Un
sumador completo como el que se muestra en la figura es un circuito digital
capaz de realizar la suma aritmética de dos dígitos binarios además de un
posible acarreo de entrada, este último es particularmente útil cuando se
diseña en forma modular un sumador de dos números de ´n´ bits.
Bibliografía.
Andrew S.
Tanenbaum - Organizaciones de Computadoras Un enfoque estructurado 4ta SCAN
2000.
ALU
RESUMEN
Se
simulo el funcionamiento de una unidad lógico-matemática (ALU) de un
procesador, a partir de la implementación de un circuito Multiplexor y
compuertas lógicas.
INTRODUCCIÓN
La
unidad aritmético lógica es un circuito digital que calcula operaciones
aritméticas (suma, resta, multiplicación, etc.) y operaciones lógicas.
Las
ALUs existen en todo circuito electrónico moderno, desde realizar incrementos
de 1 al tiempo actual, en contadores de circuitos sencillos y en calculadoras
básicas, hasta en los procesadores sofisticados.
Von
Neumann explicó que una ALU es un requisito fundamental para una computadora,
porque tendrá que efectuar operaciones
matemáticas básicas.
DESARROLLO
El
multiplexor utilizado es un 4051, el cual contiene 8 canales de entrada (x0-x7)
y 3 de control (A, B, C). Se utilizaran
4 entradas en el multiplexor, se
consideran las variables de control a y b que permitirán
controlar los canales de entrada y así obtener una salida en x. Las compuertas
lógicas utilizadas son AND, OR, XOR, y NOT. Las primeras 3 tienen dos variables
como datos de entrada, A y B, mientras que la cuarta solo será A. Se muestra el
diagrama lógico de la conexión de elementos del circuito digital.
Cada
operación están dadas por dos Push Bottons, que fungen como entradas digitales
de datos , los cuales entran a las compuertas lógicas. Cada compuerta realiza
su operación y da una salida respectivamente, las cuales son recibidas en las
entradas x0-x3 del multiplexor, que funge como receptor de datos.
La
Tabla muestra el comportamiento del circuito lógico. Las variables de control (a
y b ) determinaran que operación es la que debe mostrar x el cual esta
conectado a un led para ver su funcionamiento.
VARIABLES
DE CONTROL
|
CANAL DE ENTRADA
|
OPERACIÓN
|
VARIABLES
DE DATOS
|
SALIDA
|
||
a
|
b
|
A
|
B
|
X
|
||
0
|
0
|
X0
|
AND
|
0
|
0
|
0
|
0
|
1
|
0
|
||||
1
|
0
|
0
|
||||
1
|
1
|
1
|
||||
0
|
1
|
X1
|
OR
|
0
|
0
|
0
|
0
|
1
|
1
|
||||
1
|
0
|
1
|
||||
1
|
1
|
1
|
||||
1
|
0
|
X2
|
XOR
|
0
|
0
|
0
|
0
|
1
|
1
|
||||
1
|
0
|
1
|
||||
1
|
1
|
0
|
||||
1
|
1
|
X3
|
NOT
|
0
|
0
|
1
|
0
|
1
|
1
|
||||
1
|
0
|
0
|
||||
1
|
1
|
0
|
A
pesar de recibir los cuatro datos de cada operación, el multiplexor solo
permite que una entrada sea la que salga como resultado en X, esto dependiendo
lo que las variables de control estén indicando.
CONCLUSIONES
La unidad aritmética lógica es
una función multi-operación digital de lógica combinacional, esta puede
realizar un conjunto de operaciones aritméticas básicas y un conjunto de
operaciones lógicas. El ALU tiene un número de líneas de selección para
determinar una operación en particular.
Las compuertas AND, OR
y XOR tienen dos variables de entrada
(datos) mientras que la compuerta NOT solo tiene una variable de dato, cada una
de las compuertas lógicas realizara la operación respectiva mandando la salida
al multiplexor.
El multiplexor es un
seleccionador de canales que tiene n entradas y solo una salida, el 4051 recibe
las respuestas de cada una de las compuertas lógicas en la cual solo
seleccionara una entrada de acuerdo a las variables de control que se estén
indicando.
Suscribirse a:
Entradas (Atom)