DESCRIPCIĆN Avanzado y simple Saca el mĆ”ximo partido a tu PC con Windows y programas gratuitos de Microsoft para fotos, pelĆculas, mensajerĆa instantĆ”nea, correo electrónico, redes sociales y muchas cosas mĆ”s. Tenlo todo con una simple descarga. REQUISITOS DEL SISTEMA Sistema operativo: Ediciones de 32 y 64 bits de Windows Vista Service Pack 2 con la actualización de plataforma de Windows Vista, Windows 7, Windows Server 2008 con Service Pack 2 y la actualización de plataforma de Windows Server 2008, Windows Server 2008 R2. Procesador: 1,6 GHz o mĆ”s Memoria: 1 GB de RAM o mĆ”s Resolución: 1024 x 576 como mĆnimo Conexión a Internet: La funcionalidad de Internet necesita acceso telefónico o de banda ancha (se proporciona por separado). Pueden aplicarse tarifas locales o de larga distancia. Tarjeta grĆ”fica o de vĆdeo: Windows Live Movie Maker requiere una tarjeta de vĆdeo compatible con DirectX 9 o superior, y Shader Model 2 o superior. LINK DE DESCARGA: http://depositfiles.com/files/50han1rgo password archivo: darkmagician2010
sƔbado, noviembre 20, 2010
A continuacion os voy a contar como superar la crisis y ganar dinero desde casa. Ya se que creéis que puede ser trampa. A mi también me lo pareció cuando me lo contó una de mis amigas pero al final decidà probar lo y resulta que funciona bien por ahora.
Bueno aquĆ os cuento:
¿Como se gana dinero con una pĆ”gina web?
Lo primero que tienes que hacer es tener tu propia pƔgina web o blog y escribir en el sobre algun tema que te gusta o que controlas bien. Una vez que esta hecho esto puedes ganar dinero de varias formas pero yo os voy a poner como ejemplo el Google Adsense.
El Google Adsense es un servicio de Google en el cual te puedes inscribir gratuitamente para que envĆen publicidad en tu web. Una vez que te has registrado google te va a proporcionar un código que tienes que insertar en tu web para que aparezca la publicidad.
AsĆ que cuando alguno de los visitante de tu web hace click en alguna de los enlaces de publicidad google de paga algunos centavos o eurillos segĆŗn el enlace que ha visitado el usuario.
¿Que hacer si no se nada de programación?
Pues si no sabes nada de programación no te tienes que preocupar por que también hay varias maneras de hacer dinero por Internet. Yo solo os voy a contar la manera mas eficaz.
Existe una pĆ”gina web se llama beruby.com y paga para que hagas unos clicks al dĆa en los enlaces que tienen en su pĆ”gina. De esta manera ellos ganan unos centavos o eurillos segĆŗn el anunciante pero te dan un porcentaje de esta ganancia.
De primera vista parece muy poco pero no te preocupes beruby.com te permiten hacer referidos y te dan como bono la mitad de lo que ganan ellos y la mitad de lo que ganan los referidos de tus referidos sin quitar les a ellos nada por su puesto. TambiĆ©n te dan como bono de bienvenida 1€. No es mucho pero sirve mas que nada para animarte.
De esta manera si consigues muchos referidos tu dinero se va incrementando segĆŗn van aumentando tus referidos.
¿Que hacer para registrar me en beruby.com?
Para registrar solo tienes que poner tu e-mail y alguna contraseƱa para la cuenta que vas a crear y ya esta. Inmediatamente te envĆan un correo para que confirmes el registro y puedes empezar a ganar dinero.
Aquà os dejo el enlace a partir del cual podéis registrar os: Registro de beruby.com
viernes, octubre 22, 2010
¿Tienes un blog o pĆ”gina web? ¿Quieres ganar algo de dinerillo extra por Internet? Hay muchas formas de ganar dinero con web/blog pero la principal manera es mediante publicidad. Hay muchas empresas que dedican a ofrecer anuncios publicitarios a los Webmasters. Aqui os voy a contar solo un par de esta empresas:
1. Google: google tiene un servicio que se llama Adsense mediante cual puedes insertar publicidad a tu pÔgina web o blog. Adsense te paga unos céntimos por cada clic que hagan tus visitantes sobre la publicidad insertada. Esta cantidad varia según los que cobre Google de sus anunciantes.
2. Binlayer: binlayer te ofrece publicidad por impresión, es decir, te pagan unos euros por la impresión de los anuncios. A continuación os voy a hablar un poco mÔs a fondo sobre este sistema ya que a mi me resulta un poco mÔs rentable que Google Adsense.
PƔgina principal de binlayer :
Una vez que has entrado, la pĆ”gina nos sale en AlemĆ”n pero tambiĆ©n es posible cambiar la web en espaƱol desde la bandera que nos sale enfrente del MenĆŗ START. Una vez que te has registrado y accedido a tu cuenta veras la pĆ”gina que esta en la foto de arriba. Como puedes observar te describen los pasos que tienes que seguir para insertar la publicidad (solo tienes que insertar la dirección de tu pĆ”gina web y elegir el tipo de publicidad) . TambiĆ©n puedes consultar las estadĆsticas sobre el numero de impresiones, clic en los anuncios etc.
Formatos publicitarios y pagos:
Existe 3 tipos de formatos publicitarios:
1. LayerAds: son ventanas HTML volantes que se desplazan por encima del contenido de tu web/blog. Te pagan 1,50€ por cada mil impresiones.El usuario puede elegir si accede a la publicidad o cerrar la ventana volante.
2. PopAds: son ventanas que se abren solo cuando el visitante interactua con el sitio web. Te pagan 1,50€ por cada mil impresiones.
3. HybridAds: es una combinación de las dos anteriores con una remuneración de 2,25€ por cada mil impresiones.
viernes, octubre 22, 2010
Tal y como indica el titulo ahora os voy a hablar sobre el lenguaje ensamblador.
¿Que es el lenguaje ensamblador?
Pues el lenguaje ensamblador es un lenguaje de nivel medio, es decir, es algo intermedio entre el lenguaje humano y el lenguaje del procesador. Normalmente esta compuesto por instrucciones cortas de 3 o 4 caracteres seguidas de unos parƔmetros denominados parƔmetro fuente y parƔmetro destino.
Normalmente la sintaxis de las instrucciones dependen del tipo de procesador y ademas los programas escritos en ensamblador solo se pueden ejecutar correctamente en el procesador para el que han sido programados. O sea un programa en ensamblador escrito para procesador Intel solo funcionara correctamente para los procesadores Intel y va a provocar efectos diferentes en un procesador Athlon de AMD.
A continuación veremos mÔs a fondo que es el lenguaje ensamblador de la arquitectura Intel 8086.
Introducción en la arquitectura Intel 8086
Antes de poner nos a programar en ensamblador tenemos que conocer cual es la arquitectura de los procesadores Intel, o sea, conocer como estÔn organizados los componentes internos del procesador. Esto es necesario por que el lenguaje ensamblador se encarga de gestionar los componentes internos del procesador mediante instrucciones cortas. Como por ejemplo para sumar dos números primero tenemos que ordenar en dirección de memoria dichos números y a continuación realizar la suma mediante la instrucción: add destino, fuente . En dichas instrucción vamos a indicar cuales son las direcciones de memoria en las que estÔn almacenados los dos datos. Una vez que la suma ha sido realizada el resultado se almacena en el dirección de memoria indicada por destino .
¿Como estĆ” organizada la memoria en Intel 8086?: pues para la organización del I-8086 se ha utilizado el modelo Litle Endian que quiere decir que las primeras instrucción estĆ”n en las dirección de memoria mas baja y las ultimas instrucciones estĆ”n almacenadas en las ultimas direcciones de memoria (cada dirección de memoria tiene asignado un nĆŗmero presentado normalmente en codificación hexadecimal) .
¿Que partes tiene el procesador?: pues el procesador o CPU del I-8086 tienes las siguientes partes:
- Registro: son memorias internas de la CPU. Son las mÔs rapidas del ordenador. Normalmente la información que vamos a procesar se almacena en estos registro para aumentar las velocidades de procesamiento. MÔs adelante veremos cuales son estos registros y como se utlizan
- Unidad de Control : se encarga de distribuir las tareas que tienen que realizar todas las partes del ordenador y cuando las tiene que realiza.
- Unidad Aritmético-Lógica: se encarga de realizar cÔlculos, realizar comparaciones etc.
Ademas del procesador el ordenador tiene dispositivos de entrada/salida como la pantalla, teclado, ratón, impresoras etc. Asà que los buses que se encargan de distribuir la información por todas partes. El esquema es el que estÔ a continuación:
Registros del procesador
El I-8086 tiene 14 registro de 16 bits cada uno. A continuación se describe cada uno de ello:
- 4 registros de propósito general: esto 4 registro son AX, BX, CX, DX. Cada uno de ellos esto formado por otros 2 registros de 8 bits cada uno. El registro AX estÔ formado por AH (byt de mas peso) y AL (byt de menos peso). El registro BX estÔ formado por BH (byt de mas peso) y BL (byt de menos peso). El registro CX estÔ formado por CH(byt de mas peso) y CL (Byt de menos peso). El registro DX estÔ formado por DH (byt de mas peso) y DL (byt de menos peso). Cada uno de ellos se puede utilizar para lo que queramos aunque para algunas instrucciones utilices preferentemente algunos de ellos.
4 registros de direcciones : Almacenan direcciones efectivas
utilizadas por distintas instrucciones. SI (source index), DI (destination index), BP
(base pointer), SP (stack pointer).
4 registros de segmento: Almacenan identificadores de segmento, que
combinados con los registros de dirección (o los de propósito general) identifican
direcciones fĆsicas. CS (code segment), DS (Data segment), SS (Stack
segment), ES (Extra data segment).
2 registros de propósito especĆfico:
IP – Dirección de la instrucción a ejecutar (combinado con CS)
PSW – Palabra de estado del procesador, o registro de flags.
¿Que es la palabra de estado del procesador?
La palabra de estado o registro de flags es un registro de la CPU de 16 bits y cada uno de estos bits tiene una significado especifico. A continuacion veremos cuales son:
- CF : acarreo / desbordamiento natural +, -, >>, <<
- PF : Paridad = 1 si nĆŗmero par de bits 1 en el byte de menos peso del resultado
- AF : Acarreo auxiliar (del bit 3 al 4)
- ZF : = 1 si el resultado = 0
- SF : = 1 si el resultado < 0
- TF : Bit de traza. Manipulado por programa
- IF : MÔscara de interrupción. Si 0, la UC no acepta interrupciones externas
- DF : sentido de incremento de punteros en instrucciones de cadena. Si 0, los punteros se incrementan. Si 1, se decrementan bit 11 OF Desbordamiento entero: el resultado no puede representarse en complemento a 2.
Una vez que hemos visto que son los registro del procesador Intel 8086 el esquema conceptual se queda asĆ:
Instrucciones del lenguaje Ensamblador del I-8086
- Suma: para suma dos números se utiliza la instrucción add
Formato: add destino, fuente
Descripción: Suma destino con fuente y almacena el resultado en destino. Destino y fuente puedes ser direcciones de memoria, registros o datos directos.
- Restar: para restar dos números se utliza la instrucción sub
Formato: sub destino, fuente
Descripción: resta destino y fuente y almacena el resultado en destino. Igual que la suma destino y fuente pueden ser direcciones de memoria, registros o datos directos.
- Mover: mover un dato desde fuente a destino se utliza la instrucción mov
Formato: mov destino, fuente
Descripción: mueve el valor del operando fuente en la dirección que apunta el operando destino
Para mÔs información podeis consultar el manual del ensamblador . No os voy a contar todas las instrucciones por que la lista es muy larga. También podéis realizar búsquedas en google poniendo manual de ensamblador seguido del procesador con el cual vais a programar.
Los vĆdeos que estĆ” a continuación es solamente educativo. NO enseƱa a hachear!!! Solamente da a conocer que habilidades hay que tener.
viernes, octubre 22, 2010
una pequeƱa base de los que es el lenguaje ensamblador. Ahora veremos que son las interrupciones en el Intel 8086 y para que se utilizan.
¿Que son las interrupciones del Intel 8086?
Pues las interrupciones son seƱales enviadas por alguno de los perifericos que advierten al procesador que ha habido actividad en dicho perifĆ©rico. Por ejemplo cuando pulsamos alguna tecla, el teclado envĆa una seƱal de que ha sido pulsada una tecla y envĆa el código binario de la tecla pulsada. A continuación veremos mĆ”s a fondo cual es el proceso de las interrupciones y que tipos hay.
¿Como se gestionan las interrupciones del Intel 8086?
Las interrupciones del Intel 8086 se gestionan por el Controlador de interrupciones. Dicho controlador tiene cuatro registro (memorias) de 16 bits cada uno. Cada uno de estos registros tiene una función especifica y gracias a ellos se van a gestionar funciones como las prioridades de los perifericos, peticiones de servicio etc. Estos registro son:
- Registro IRR: marca las peticiones de los perifericos
- Registro IMR : esta en el puerto 21h y da permisos a las peticiones de las interrupciones. Pasa si es 0 y no pasa si es 1.
- Registro IPR: lógica que selecciona la prioridad
- Registro ISR: marca que peticiones se estan activando
- Registro de Control: estÔ en el puerto 20h y es el encargado de avisar al procesador que ha acurrido una interrupción.
El controlador de interrupciones tiene 8 entrada para los distintos perifericos y la habilitación es por flanco (es decir, es controlado por la señal del reloj) y es programable. Es decir cambiando los valores del registro de control y del registro IMR podemos controlar las interrupciones.
Ya he mencionado que el controlador de interrupciones tienen 8 entradas. Estas 8 entradas podeis verlas en la imagen de abajo (hay que tener en cuenta que el mƔs prioritario es el reloj y el menos prioritario es la impresora) :
En la imagen podemos observar que se nos muestra la dirección de memoria (en décima) en la que estÔ ubicado cada uno de los periféricos. En dicha dirección de memoria se almacena el Driver del Sistema Operativo que se encarga de controlar dicho periférico. Ahora teniendo en cuenta que el controlador de interrupciones es programable podemos programar nuestros propios Drivers y sustituir los en las direcciones de memoria indicadas por el vector de interrupciones. Esta sustitución de Driver se hace en el caso de que tenemos que programar una aplicación que tenga funciones especificas de los periféricos. Por ejemplo en los juegos las distintas teclas tienen funciones especificas por tanto al iniciar el juego tenemos que poner nuestro propio Driver y al acabar el juego tenemos que restablecer el Driver del Sistema Operativa para que el teclado funcione con normalidad.
Por ultimo os tengo que comentar que las interrupciones forman parte del proceso de Entrada/Salida (E/S) del ordenador. Este proceso estÔ descrito a continuación:
En la imagen podemos observar que la E/S de datos se realiza mediante una sincronización (que puede ser por encuesta o por interrupción) y a continuación se hace una trasferencia (que puede ser programada o por DMA).
La diferencia entre la sincronización por encuesta y la sincronización por interrupciones es que en la encuesta el ordenador nos piden obligatoria mente la activación de alguno de los periféricos (por ejemplo pulsar una tecla) mientras que en la interrupción la CPU hace su trabajo y si se activa alguno de los periféricos realiza una transferencia, es decir, tratar la interrupción mediante programación (si la transferencia es programada) . A continuación os dejo un ejemplo muy sencillo de sincronización por interrupción con transferencia programada:
TITLE nombre_del_programa
MODEL small
.STACK 100h ; asignamos a la pila tamaƱo 100h
.DATA ; empiza el segmento de declaracion de variables
;--------------------------------------------------------------------
;BLOQUE DE VARIABLES
;--------------------------------------------------------------------
tecla db ? ; almacena el valor de una tecla que se ha pulsado
crono db 0 ; variable de cronometro. almacena la cantidad de veces que el reloj de la CPU envia una seƱal
;---------------------------------------------------------------
; DATOS: VECTOR DE INTERRUPCIONES
;---------------------------------------------------------------
ip_reloj DW 0 ; ip rut. serv. reloj del sistema
cs_reloj DW 0 ; cs rut. serv. reloj del sistema
ip_tecla DW 0 ; ip rut. serv. teclado del sistema
cs_tecla DW 0 ; cs rut. serv. teclado del sistema
IRQ0 EQU 8*4 ; d.e. de la interrupción de reloj
IRQ1 EQU 9*4 ; d.e. de la interrupción de teclado
.CODE ; A PARTIR DE AQUI EMPIEZA EL PROGRAMA
;Esto hay que hacer lo siempre cuando empiza un programa
principio: mov ax,@DATA ; almacenamos en reg. ax la dir. de memoria en la que empieza nuestro programa
mov ds,ax ; movemos el valor de reg. ax en reg. ds.
;--------------------------------------------------------------------
;CAMBIA LOS DRIVERS DEL SISTEMA OPERATIVO POR LOS NUESTROS
;--------------------------------------------------------------------
;CAMBIO DE RUTINA DE SERVICIO DEL S.O.
xor ax,ax ; ponemos ax=0
mov es,ax ; moves el valor de ax en es
;Rutina del reloj. Desactivamos el Driver del Sistema Operativo
;y almacenamos en las variables ip_reloj y cs_reloj las dirección
;de memoria en la que esta almacendo el Driver del reloj
mov si,IRQ0
mov ax,es:[si]
mov ip_reloj,ax
mov ax,es:[si+2]
mov cs_reloj,ax
;Activamos nuestro propio Driver de teclado
cli
mov ax,OFFSET reloj ;reloj_int: empieza rutina de servicio del reloj
mov es:[si],ax
mov ax,cs
mov es:[si+2],ax
sti
;Rutina del teclado.Desactivamos el Driver del Sistema Operativo
;y almacenamos en las variables ip_tecla y cs_tecla las dirección
;de memoria en la que esta almacendo el Driver del teclado
mov si,IRQ1
mov ax,es:[si]
mov ip_tecla,ax
mov ax,es:[si+2]
mov cs_tecla,ax
;Activamos nuestro propio Driver de teclado
cli
mov ax,OFFSET teclado
mov es:[si],ax
mov ax,cs
mov es:[si+2],ax
sti
;---------------------------------------------------------------
;CĆDIGO DEL PROGRAMA PRINCIPAL
;---------------------------------------------------------------
; AQUI TIENE QUE PONER EL CĆDIGO DEL PROGRAMA PRINCIPAL
; AQUI TIENE QUE PONER EL CĆDIGO DEL PROGRAMA PRINCIPAL
; AQUI TIENE QUE PONER EL CĆDIGO DEL PROGRAMA PRINCIPAL
; AQUI TIENE QUE PONER EL CĆDIGO DEL PROGRAMA PRINCIPAL
;---------------------------------------------------------------
;RECUPERAMOS LOS DRIVERS DEL S.O.
;---------------------------------------------------------------
xor ax,ax ; ponemos ax=0
mov es,ax ; movemos el valor de ax en es
;Recuperacion rutina de servicio reloj del S.O.
cli ; desactivamos las interrupciones para que no interrumpan el programa
mov si,IRQ0
mov ax,ip_reloj
mov es:[si],ax
mov ax,cs_reloj
mov es:[si+2],ax
sti ; activamos las interrupciones
;Recuperacion rutina de servicio teclado del S.O.
xor ax,ax
mov es,ax
cli ; deactivamos las interrupciones durante el proceso de camibio de driver del teclado
mov si,IRQ1
mov ax,ip_tecla
mov es:[si],ax
mov ax,cs_tecla
mov es:[si+2],ax
sti ; activamos las interrupciones
mov ah,4Ch ;SIEMPRE: devolver el control
int 21h ;al sistema operativo
;---------------------------------------------------------------
;RUTINAS DE SERVICIO
;Rutina de servicio del reloj
;---------------------------------------------------------------
reloj:
push ax
inc crono ; incrementamos la variable crono con una unidad
;EOI: proceso en el cual indicamos al registro de control de interrupciones que se ha acabado la interrupción
mov al,20h ; almacenamos en el registro al el dato 21h
out 20h,al ; escribimos el datos 21h (del reg. al) en el puerto 21h (registro de control del controlador de interrupciones)
pop ax
iret ; volvemos en la dir. de memoria en la que ha sido interrumpido el programa principal
;-----------------------------------------------------------------
;RUTINA DE SERVICIO DEL TECLADO
; Es nuetro propio DRIVER DE TECLADO
;----------------------------------------------------------------
teclado:
sti
push ax ; almacenamos en la pila el valor de ax para no interrumpir el correcto fucionamiento del programa principal
pushf ; almacenamos en la pila la palabra de estado o los flags de la CPU
in al,60h ; leemos del puerto 60h la tecla que se pulsado
PUSH AX ; almacenamos en el registro ax la tecla pulsada y lo guardamos en la pila
; es un proceso en el cual vamos a indicar al procesador que se ha liedo una tecla y que podemos leer una nueva
IN AL, 61H ;al = Registro de control (61h)
OR AL, 10000000B ;al = 1XXXXXXX
OUT 61H, AL ;Bit de strobe = 1 .Es decir se autoriza la lectura de otro dato del teclado
AND AL, 011111111B
OUT 61H, AL
;FIN
;Gestion de tecla de pausa en partida
POP AX ;Recuperamos la tecla que se ha pulsado
mov tecla,a ; almacenamos en la variable tecla el código de la tecla que se ha pulsado
;EOI: proceso en el cual indicamos al registro de control de interrupciones que se ha acabado la interrupción
mov al,20h ; almacenamos en el registro al el dato 21h
out 20h,al ; escribimos el datos 21h (del reg. al) en el puerto 21h (registro de control del controlador de interrupciones)
popf ; recuperamos la palabra de estado de la CPU
pop ax ; recuperamos el valor antiguo del registro ax
iret ; volvemos en la dirección de memoria en la que ha sido interrupmido el programa principal
END principio
En proceso es el siguiente: al empezar el programa el Sistema Operativo asigna una dirección de memoria en la que empieza nuestro programa. Asà que se recupera nuestro programa del disco duro y se almacena en la RAM a partir de la dirección asignada en la linea 1 de nuestro programa. A continuación nosotros hemos decidido cambiar los Drivers de teclado y de reloj del Sistema Operativo por nuestros Propios Drivers que hemos llamado reloj y teclado . A continuación debe ir el código del programa principal de la aplicación que vamos a programar y antes de finalizar el programa debemos recuperar los Drivers del teclado y reloj del Sistema Operativo para que pueda funcionar con normalidad el ordenador. Para finalizar devolvemos el control al Sistema Operativo y el programa acaba.
Las instrucciones del lenguaje ensamblador las podéis consultar en la dirección web de Intel: Manual de ensamblador Intel
http://www.intel.com/products/processor/manuals/index.htm
viernes, octubre 22, 2010
Follow Us