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

UNIVERSIDAD MAYOR DE SAN ANDRES

FACULTAD DE INGENIERIA
INGENIERIA ELECTRONICA

SISTEMA DE COMPUTACION

INTEGRANTES:

De La Cruz Mamani Roly Renato

Huanto Machicado Yessica

Uzquiano Soliz Adriana Manueli

DOCENTE:

Ing. JAVIER SANABRIA

2016
OBJETIVO.-

Disear un sistema de computacin, que lea la hora del sistema y la despliegue en


pantalla utilizando la librera VGA en forma de un reloj analgico que muestre las
horas, los minutos y los segundos.

ANALISIS.-

Para el diseo de este sistema de computacin sera necesario leer la hora del
sistema (el TIC) y el estado del teclado.

Para obtener la hora del sistema se uso la interrupcin int 0x80 eax=0x0d(13)

Nos permite almacenar la hora del sistema en el registro eax, es necesario


recordar que el dato porporcionado en este registro es igual al numero de
segundos que pasaron desde 1 enero de 1970, es decir que es necesario realizar
una conversin que nos permita obtener la hora actual, asi que se utilizo el
siguiente procedimiento.

El sistema nos proporciona un nmero que representa la hora del sistema

1482091046

A este nmero se le debe dividir entre el nmero de segundos que tiene un dia es
decir 86400

1482091046/86400= 17153
El residuo de esta divisin es el nmero de segundos que sobra en el da, este
nmero debe ser dividido entre 3600 de manera que el cociente de dicha divisin
es el nmero de horas actualmente.

Divisin cuyo resto es:

Residuo :71846

seg1 min
1 hora
60 seg
71846 =19 horas
60 min

El residuo de la anterior divisin es ahora dividida entre 60:

Residuo :3446

seg1 min
3446 =57 minutos
60 seg

El cociente de la divisin nos proporciona los minutos y finalmente el residuo de la


divisin nos proporciona los segundos:

Resto :26 el que finalmenteindica los segundos

De esta manera obtenemos la hora del sistema

Para efectuar las operaciones correspondientes se vieron propuestas las


siguientes operaciones:

div (division de enteros sin signo)


Para dibujar el circulo utilizamos las coordenadas polares.

x=a+ rcos(x)

y=b +rcos( x )

Donde a y b son las coordenadas del centro de nuestra circunferencia.

Para dar el movimiento a las manecillas del reloj, a partir de esa idea se ejecuta la
operacin dibujando una lnea y borrndola, y se la borra dibujando la misma lnea
pero de color negro.

Librera VGA

Para algunos de los graficos, se utilizaron las siguientes funciones de la librera


vga:

Vga_drawpixel
Vga_drawline

Vga_drawpixel - dibuja un pxel en la pantalla

#include <vga.h>

Int vga_drawpixel (int x, int y);

Descripcin:

Lea un valor de pxeles de la pantalla. Esta funcin es muy ineficiente, debera


considerar hacer acceso directo a la pantalla o usar vga_drawscansegment para
manejar ms de un pxel.

El color dibujado se ajusta con vga_setcolor o vga_setrgbcolor. La funcin siempre


devuelve 0 (de la que probablemente no depender realmente).

Alguna de las funciones que posee la librera VGA.

Svgalib , vgagl, vga_drawscanline , vga_drawscansegment , vga_setup ,


vga_setrgbcolor, vga_getpixel, vga_drawscanline , vga_clearscanline ,
Vga_getscansegment.
COPROCESADOR MATEMATICO

Para graficar en el programa haremos uso del coprocesador matemtico.

Estructura interna del coprocesador matemtico.- El coprocesador trabaja


internamente slo en formato real, por lo que cualquier carga en los registros de
coprocesador provocar que dicho valor sea convertido a punto flotante. Sus
registros estn estructurados en forma de pila y se accede a ellos por el nmero
de entrada que ocupan en la pila. Los registros son R(0) hasta R(7), en total ocho
registros de 80bits, como han de ser manejados en formato de pila, el
coprocesador tiene un puntero de control de pila llamado St, Toda interaccin que
tengamos que hacer con los registros del coprocesador se realiza a travs del
puntero de pila St, donde el ltimo valor introducido es St o St(0) y si hubiramos
rellenado todos los registros el ultimo seria St(7)
UNIDAD DEL PUNTO FLOTANTE

El coprocesador puede obtener y escribir datos de memoria de los siguientes tipos

Siempre trabaja internamente con 80 bits


Enteros se representan en complemento a dos
Decimal empaquetado:
10 bytes 9 bytes ms 1 de signo

Entero Words(16bits), Dword(32 bits), Qwords(64 bits)

Real Words(16 bits),Dword(32 bits),Qwords(64 bits ),Twords(80 bits)

La plataforma en la que se trabajo fue Linux, de la cual se platicara brevemente.


Ya que en el trasncurso de la materia fueron conceptos que se vieron
progresivamente.

CONCLUSIONES.-

Fue de gran ayuda poder ver el estado de los registros ya que al momento de
extraer la hora del sistema y elaborar las operaciones matemticas necesarias se
pudo comprobar que nuestro cdigo fuente estaba extrayendo la hora del sistema
correctamente. Elemento que no se ejecuta como en DOS, empleando el
comando turbo debugger, si no con el comando ddd con el que se pudo
conseguir acceder a los estados de los registros.

En cuanto a la sintaxis de Linux, ya que no es Intel a la que estbamos


acostumbrados nos generamos una pregunta, de cual sintaxis era la mejor si Intel
o AT&T . En cualquier caso, y como opinin personal, preferimos la sintaxis AT&T.
Es la sintaxis tradicional de Unix, es ms portable (en el sentido de que para
programar para otra arquitectura slo implica saber los nuevos cdigos de
operacin y los nuevos operandos con nombre -registros, etc...-, pero no nueva
sintaxis.) y, una vez que se acostumbra uno, es ms fcil detectar errores por el
propio ensamblador.

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