42 Ejercicios Resueltos en Ensamblador 8086 – Programación

40
( h tt p : // www . p r o g r a m a c i o n . c o m . p y ) Inicio ( h tt p : // www . p r o g r a m a c i o n . c o m . p y ) » Escritorio ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / c a t e g o r i a / e s c r i t o r i o ) » Ensam blador ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / c a t e g o r i a / e s c r i t o r i o / e n s a m b l a do r ) » Ejercicios resueltos en Ensam blador 8086 Ejercicios resueltos en Ensamblador 8086 Rodrigo Paszniuk ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / a u t h o r / r a p s ) | 2013- 05- 20 | No hay com entarios » ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / e s c r i t o r i o / e n s a m b l a d o r / e j e r c i c i o s - r e s u e l t o s - e n - e n s a m b l a d o r -

Transcript of 42 Ejercicios Resueltos en Ensamblador 8086 – Programación

( htt p://www.program ac ion.c om .py )

Inicio ( h tt p : // www . p r o g r a m a c i o n . c o m . p y ) » Escritorio ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / c a t e g o r i a / e s c r i t o r i o ) » Ensam blador

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / c a t e g o r i a / e s c r i t o r i o / e n s a m b l a do r ) » Ejercicios resueltos en Ensam blador 8086

Ejercicios resueltos en Ensamblador 8086Rodrigo Paszniuk ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / a u t h o r / r a p s ) | 2013-05-20 | No hay com entarios »

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / e s c r i t o r i o / e n s a m b l a d o r / e j e r c i c i o s - r e s u e l t o s - e n - e n s a m b l a d o r -

8086 # r e s p o n d )

0

En este artículo les voy a dejar los program as m ás im portantes que he hecho en Ensam blador. La m ayoría de los program as eran

tareas que m e dio m i profesor en la universidad.

E j e r c i c i o 1 : Escribir un código que verifique si dos cadenas son iguales

org 100h comienzo: mov si, xmov al, msg2[si]cmp msg[si], al ;comparar letra por letra las cadenas, si uno no coincide manda directamente a fin y termina el programa jne fin:cmp msg[si], "$" ;si es el final y el programa llega aca, quiere decir que son iguales jz final:inc xloop comienzo final:mov dx, offset msg3 mov ah, 9int 21h fin:retmsg db "hello world $" msg2 db "hello world $" msg3 db "Son iguales $" x dw 0

E j e r c i c i o 2 : Escribir un código que verifique si una cadena es subcadena de

otra. Por ejem plo: “la Mu” es subcadena de “Hola Mundo”.

La cadena: “233″ es subcadena de la cadena “2122432234″

org 100hmov si, 0 ;ponemos si en 0

comienzo:mov al, msg2[0] ;copiar la primera letra de la palabra a al cmp msg[si],"$" ;si es el fin de la cadena mandar a finaljz finalcmp msg[si], al ;comparar si encuentra la primera letra de la cadena jne seguir

mov di, 1 ;poner en 1 di comprobar:mov al, msg2[di]mov bx, dicmp msg[si+bx], al ;posicion de la letra coincidente + di, comparar con la cadena jne seguir ;si no coincide mandar a seguir

inc di ;incrementar di para seguir recorriendo cadena

cmp msg2[di],"$" ;si es el fin de la cadena y el programa llego aca quiere decir que la cadena es parte de la palabra jz resultado

loop comprobar ;bucle para recorrer

cadena seguir:inc si ;para seguir recorriendo la palabraloop comienzo ;bucle principal para recorrer palabra resultado:mov dx, offset msg3 ;copiar msg3 a dxmov ah, 9 ;preparar ah con 9 para la interrupcion 21h int 21h ;mostrar contenido en dxfinal:retmsg db "Hola Mundo$" msg2 db "ola$"msg3 db "Si es subcadena$"

E j e r c i c i o 3 : Escribir un código que verifique que todas los caracteres de una cadena se encuentran en otra.

Por ejem plo: todas las letras de la cadena “casa” se encuentran en “escaso”. Pero no todas las letras de “cerro” se en cuentran en “recanate”

org 100hmov si, 0 ;ponemos si en 0 comienzo:cmp msg[si],"$" ;si es el fin de la cadena mandar a final jz resultado

mov di, 0 ;poner en 0 di comprobar:mov al, msg2[di] ;copiar msg2 con su posicion a al cmp msg[si], al ;comparar msg con su posicion con al jz seguir ;si se encuentra entonces continua

inc di ;incrementar di para seguir recorriendo cadenacmp msg2[di], "$" ;si es que llega al final y no encontro coincidencia, entonces ya termina el programa jz final

loop comprobar ;bucle para

recorrer seguir:inc si ;para seguir recorriendo la palabraloop comienzo ;bucle principal para recorrer palabra resultado:mov dx, offset msg3 ;copiar msg3 a dxmov ah, 9 ;preparar ah con 9 para la interrupcion 21h int 21h ;mostrar contenido en dxfinal:retmsg db "cerro$"msg2 db "recanate$"msg3 db "Si se encuentran todos los caracteres$"

E j e r c i c i o 4 : Escribir una program a que reciba una cadena ingresada por teclado, term inada en ENTER. Luego que elim ine todos los

caracteres que no son dígitos, sin utilizar una variable auxiliar.

ORG 100H mov si,

0 lectura: mov ah,1 int 21h

cmp al,13jz resultado:

cmp al, 57 ;si tecla es mayor a 57 entonces ir a fin3 (tecla > 57)ja fin3cmp al,47 ;si tecla no es mayor a 47 ir a fin3 (tecla <= 47)jng fin3mov bx[si], al ;si es un digito entonces guardo

en bx inc si ;incrementa si

fin3:

jmp

lectura

resultado:mov ah,00h ;limpia la pantalla mov al,03hint 10hmov bx[si], "$" mov dx, offset bxmov ah, 9 ;preparar ah con 9 para la interrupcion 21h int 21h ;mostrar contenido en dx

ret

E j e r c i c i o 5 : Escribir un program a que tom e una cadena que representa un núm ero decim al y escriba su equivalente octal

org 100h ; inicio de programa mov si, 0mov al, 0

cadAnum:cmp cad[si], "$" jz seguir

mov bl, 10 mul blsub cad[si], '0' add al, cad[si]

inc siloop cadAnum

seguir:mov cx, si mov si, 0 mov bl, 8 pasar:div bl ;dividir al con blmov oct[si], ah ;copiar a la cadena oct el resultado sobrante de la division inc si ;incrementar siloop pasar fina:cmp ah, 0 jnz finalmov oct[si], al final:;mov dx, offset res

;mov ah, 9 ;preparar ah con 9 para la interrupcion 21h

;int 21h ;mostrar contenido en dx retcad db "64$" oct db 0

E j e r c i c i o 6 : Escribir un program a que tom e tres cadenas, la prim era y la tercera representan un núm ero y la segunda una operación, por ejem plo: “329″, “-”, “21″ e im prim a el resultado “308″

org 100h ; inicio de programainclude 'emu8086.inc' ;Incluye funciones de libreria emu8086; DEFINE_SCAN_NUM; DEFINE_PRINT_STRING DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS mov si, 0mov al, 0;Convertir primera cadena a numero cadAnum:cmp cad1[si], "$" jz seguir

mov bl, 10 mul blsub cad1[si], '0' add al, cad1[si]

inc siloop cadAnum

seguir:mov aux1, al;Convertir segunda cadena a numero mov si, 0mov al, 0

cadAnum2:cmp cad3[si], "$" jz seguir2

mov bl, 10 mul blsub cad3[si], '0' add al, cad3[si]

inc siloop cadAnum2

seguir2: mov bl, al mov al, aux1;realizar operaciones normalmente teniendo ya los dos numeros decimales cmp cad2, "-"jz restacmp cad2, "+" jz sumacmp cad2, "*" jz multicmp cad2, "/" jz diviresta:sub al, bl jmp fin suma:add al, bl jmp fin multi:mul bl jmp fin

divi:

div bl jmp fin

fin:mov bx, ax mov ah,09 lea dx,msg int 21hmov ax, bxcall PRINT_NUMretcad1 db "10$" cad2 db "-" cad3 db "2$" aux1 db ?aux2 dw ?msg dw "El resultado es: $"

E je rc ic io 7 : Escribir un program a que im prim a X en la pantalla hasta que se presiones ESC .

name "keybrd" org 100h; print a welcome message:mov dx, offset msg mov ah, 9int 21h;============================; eternal loop to get; and print keys:wait_for_key:; check for keystroke in; keyboard buffer:mov dh, pos

mov dl, pos

mov bh, 0 mov ah, 2int 10h ;Movemos el cursor mov al,'X'mov bh,0 mov bl,1 mov cx,1 mov ah,09hinc pos ;Imprimimos una x int 10hmov ah, 1 int 16hjz wait_for_key; get keystroke from keyboard:; (remove from the buffer)mov ah, 0 int 16h; print the key:mov ah, 0eh int 10h; press 'esc' to exit:cmp al, 1bh jz exitjmp wait_for_key;============================exit:retmsg db "Type anything...", 0Dh,0Ahdb "[Enter] - carriage return.", 0Dh,0Ah db "[Ctrl]+[Enter] - line feed.", 0Dh,0Ah db "You may hear a

beep", 0Dh,0Ahdb " when buffer is overflown.", 0Dh,0Ah db "Press Esc to exit.", 0Dh,0Ah, "$"pos db 1

end

E je rc ic io 8 : Escribir un program a que ordene un vector de m ayor a m enor.

name "arreglo-mayor" org 100hmov cx, 8 bucle1: mov c, cx

mov bx, cx mov cx, 9

bucle2:mov si, cxmov ah, v[si-1]cmp ah,v[bx-1]jnge seguir ;Si v[8] < v[7] no hacer nada, sino:mov dh, v[bx-1] ;Copiar v[7] en dh mov dl, v[si-1] ;Copiar v[8] en dl mov v[bx-1], dl ;Copiar dl en v[7] mov v[si-1], dh ;Copiar dh en v[8] seguir:loop bucle2

mov cx, c loop bucle1 retv db

2,32,64,32,98,12,5,21,91 c dw 0

E je rc ic io 9 : Escribir un program a que halle el MC M Y MC D

; Programa que calcula el MCD y MCM de dos numeros decimales (soporta numeros de 8 bits o 1 byte)mov cont,1 ;inicializar variable cont en 1 bucle:mov ah,0mov al,cont mov bl,nro1 div blcmp ah,0 ;si el resto de la division del contador con el nro1 es igual 0 je parte1bc:inc cont ;incrementar el contadorjmp bucle ;bucle hasta que encuentre el MCM

parte1: ;si nro1 es multiplo del contador mov ah,0mov al,cont mov bl,nro2 div blcmp ah,0 ;compara si el resto de la division del contador con el nro2 es 0 je parte2jmp bc ;si el nro2 no es multiplo del contador regresa a bucle1 parte2: ;si el nro1 y el nro2 son multiplos del contadormov al,contmov MCM,al ;guarda el MCMjmp parte3 ;ir a final

parte3: ;una vez que tengamos el MCM primero multiplicar nro1 * nro 2mov al, nro1 ;con ese resultado, dividir por el MCM de nro1 y nro2 y tenemos el MCDmov bl, nro2 mul blmov bl, MCMdiv blmov MCD, alret ;fin del programa

cont db 0 ;cont = contadorMCM db 0 ;en esta variable se guarda el MCM MCD db 0 ;en esta variable se guarda el MCD nro1 db 48 ;numero1 decimalnro2 db 60 ;numero2 decimal

E je rc ic io 1 0 : Escribir un program a que dibuje una diagonal en la pantalla.

mov cx,1mov al, 13h mov ah, 0

int 10h ; set graphics video mode.

bucle1:mov dx, cxmov al, color ;AL = pixel colormov ah, 0ch ;Change color for a single pixel int 10h ;set pixel

cmp cx, 101 ;llegar hasta 100 x 100 (va en diagonal)jz fin

inc cx ;DX = row.add color, 2 ;para cambiar colores jmp bucle1 ;CX = columnfin:retcolor db 1

E je rc ic io 1 1 : Escribir un program a que lea un archivo y cuente cuantas palabras term inan con la letra a.

name "archivo3"

org 100hmov al, 0 ;modo de acceso para abrir arhivo, modo lectura/escrituramov dx, offset archivo ;offset lugar de memoria donde esta la variable mov ah, 3dh ;se intenta abrir el archivoint 21h ;llamada a la interrupcion DOSjc error ; si se prendio la bandera c ir a error

mov handle, ax ;si no paso mover a lo que le dio el SOjmp leer

error:; ....

;leer archivo leer:mov bx, handle mov cx, 1mov dx, offset leido mov ah, 3fhint 21h

cmp ax, 0 ;ax queda en 0 cuando llega a EOFjz FIN ;si es 0 entonces va a fin para cerrar archivo

;Detectar palabras que terminan con a mov dl, leido[0]

cmp dl, " " ;comparar si es espaciojz mostrar ;si es espacio entonces ir a

mostrar jmp abajo ;si no es espacio

entonces ir a abajo

mostrar:cmp aux, "a" ;compara si el anterior es a

jnz abajo

inc cont ;si es a entonces incrementar

contador abajo:mov aux, dl ;guardar en aux lo que hay en dl para comparar en la proxima vuelta jmp leer

FIN:

;cerramos archivo mov bx, handlemov ah, 3eh int 21h

ret

archivo db "C:\prueba.txt", 0 ;ascii del nombre del archivo leido db "$"handle dw ? ;identificador del arhivo aux db "$"cont db 0

0

En: Ensamblador ( h t t p : // www . p r o g r a m a c ion.c om.py/c at egoria/esc rit orio/ensamblador) 8086 ( h t t p : // www . p r o g r a m a c ion.c om.py/t ag/8086) asm

( h t t p : // www . p r o g r a m a c ion.c om.py/t ag/asm) ensamblador ( h t t p : // www . p r o g r a m a c ion.c om.py/t ag/ensamblador- 2)

Acerca del autor: Rodrigo Paszniuk ( h tt p : // r od r i g op a s z n i u k . s t i l o g a m e s . c o m . p y )

Técnico Superior en Inform ática. Estudiante de Ing. Inform ática, am ante de la tecnología, la m úsica y aprender cosas

nuevas. En m is tiem pos libres m e gusta jugar vídeojuegos, program ar o practicar ciclism o.

Posts Relacionados

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / e s c r i t o r i o / e n s a m b l a d o r / e j e m p l o s - d e - p r o g r a m a s - e n - e n s a m b l a d o r - 8086 ) Ejem plos

de program as en Ensam blador 8086

( htt p://www.program ac ion.c om .py /e sc rit orio/e nsam bl ador/int roducc ion- al - l e nguaje - e nsam bl ador) Introducción al

lenguaje Ensam blador

Siguiente Post → ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / w e b / p h p / a pp - m u l t i l e n g u a j e - e n - y ii )

← Anterior Post ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / w e b / p h p / t e m a s - e n - y ii )

Anunc ios Google MSG Convertir mov Ejercicios Assembler

Deja un comentarioTu debes loguearte ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / w p - l o g i n . p h p ? redirect_to=http%3A%2F%2¡Error! Referencia de hipervínculo no

válida.) para hacer com entarios.

( htt p://www.fac e book.c om /page s/P rogram ac ionc om py /170660109749450 ) (https://twitter.com /ProgC om Py) () ()

( htt p://www.program ac ion.c om .py /c ont ac t e nos) ( htt p://www.program ac ion.c om .py /fee d)

GITHUB

(https://github.com /Program acionC om Py)

ENTRADAS RECIENTES

Google lanza Dart 1.0, su alternativa a Javascript ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / n o t i c i a s / g oo g l e - l a n z a - d a r t - 1 - 0 - s u -

a l t e r n a t i v a - a - javascript)

Django 1.6 final disponible ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / n o t i c i a s / d j a n g o - 1 - 6 - f i n a l - d i s p o n i b l e )

Instalar Zabbix 2 en Ubuntu 13 utilizando MySql com o m otor de base de datos ( h tt p : // www . p r o g r a m a c i o n . c o m

. p y / v a r i o s / l i nu x - all/instalar-zabbix-2-en-ubuntu-13-utilizando-m ysql-com o-m otor-de-base-de-datos)

Open Site Explorer: Herram ienta para m ejorar SEO ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / n o t i c i a s / o p e n - s i t e - e x p l o r e r - h e rr a m i e n t a -

p a r a - m ejorar-seo)

Offline.js, avisa de una desconexión a Internet a los usuarios de tu site ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / n o t i c i a s / o ff l i n e - j s -

a v i s a - d e - una-desconexion-a-internet-a-los-usuarios-de-tu-site)

COMENTARIOS RECIENTES

ETIQUETAS

8086 ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / 8086 ) android ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / a n d r o i d - 2) asm

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / a s m ) Bootstrap 3 ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / b oo t s t r a p - 3) c

( h tt p : // www . p r o g r a m acion.com.py/tag/c-3) c++

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / c - 2 ) c adenas ( h tt p : // w w w .programac ion.c om.py/tag/c

adenas) CentOS ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / c e n t o s ) css ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / c ss - 2)

delphi ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / d e l p h i - 2 ) ensamblador

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / e n s a m b l a do r - 2 ) exportar ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / e x p o r t a r ) fechas

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / f e c h a s ) fedora ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / f e do r a ) FICHEROS ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / f i c h e r o s )

func iones ( h tt p : // w w w .programac ion.c om.py/tag/func iones) gii ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / g ii ) google

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / g oo g l e ) gridview ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / g r i d v i e w ) HTML5

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / h t m l 5 ) HTML parser ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / h t m l - parser) Java

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / j a v a - e s c r i t o r i o ) jquery ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / j q u e r y ) JSOUP

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / j s o u p ) lamp ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / l a m p ) linux

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / l i nu x ) Menu ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / m e nu ) mint

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / m i n t ) mysql ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / m y s q l ) PageSpeed ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / p a g e s p ee d )

pdf

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / pd f ) php ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / p h p - 2 ) Postfix

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / p o s t f i x ) PostgreSQL ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / p o s t g r e s q l ) red hat ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / r e d -

hat) reportes ( h tt p : // www . p r o g r a m a c i o n . c o m. p y / t a g /r e po r te s ) SBDOO ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / s bd oo ) shell script

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / s h e ll - script) soc kets ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / s o c k e t s ) sql server

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / s q l - server) ubuntu ( h tt p : // w w w .programac ion.c om.py/tag/ubuntu) validaciones

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / v a l i d a c i o n e s ) windows ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / w i n d o w s ) Wordpress

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / t a g / w o r dp r e ss ) Yii ( h tt p : // w w w

.programacion.com.py/tag/yii)

LICENCIA DEL CONTENIDO

Sitio web bajo licencia C reative C om m ons Attribution-NonC om m ercial-ShareAlike 3.0 License ( h tt p : // c r e a t i v e c o m m

o n s . o r g / l i c e n s e s / b y - n c - sa/3.0/deed.es)

META

Registrarse ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / w p - l o g i n . p h p ?

action=register) Acceder ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / w p - l o g i n . p h p )

RSS (Really Sim ple Syndication) de las entradas ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / f ee d )

RSS (Really Sim ple Syndication) de los com entarios ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / c o m m

e n t s / f ee d ) WordPress.org ( h tt p : // e s . w o r dp r e ss . o r g / )

LO MÁS LEÍDO

Funciones y procedim ientos + Operaciones con fechas + Funciones de cadenas en Delphi ( h tt p : // www . p r o g r a m a c i o n . c o m

. p y / e s c r i t o r i o / d e l p h i / f un c i o n e s - y - p r o c e d i m i e n t o s - o p e r a c i o n e s - c o n - f e c h a s - f un c i o n e s - d e - c a d e n a s ) DEFINES Y MAC ROS en C

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / e s c r i t o r i o / c / d e f i n e s - y - m a c r o s - e n - c )

Manual básico de Yii fram ework (PHP) ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / w e b / p h p / m a nu a l - b a s i c o - d e - y ii )

Ejercicios resueltos en Ensam blador 8086 ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / e s c r i t o r i o / e n s a m b l a d o r / e j e r c i c i o s - r e s u e l t o s - e n - e n s a m b l a d o r -

8086)

Bases de datos (DAO) en Yii ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / w e b / p h p / b a s e s - d e - d a t o s - d a o - e n - y ii )

ACERCA DE

Program acion.com .py es un sitio web donde podrás encontrar recursos y docum entación de distintos lenguajes de program ación.

StiloGam es ( htt p://www.st il ogam e s.c om .py )

Tecnologia ( htt p://www.t e c nol ogia.c om .py )

Network ( htt p://www.ne t work.c om .py )

© 2013 PROGRAMAC ION.C OM.PY - Design By Rodrigo Paszniuk ( h tt p : // r o d r i g o p a s z n i u k . s t i l o g a m e s . c o m . p y )

( h tt p : // www . f a c e b oo k . c o m / p a g e s / P r o g r a m

a c i o n c o m p y / 170660109749450 ) (https://twitter.com /ProgC om Py) () ()

( h tt p : // www . p r o g r a m a c i o n . c o m . p y / c o n t a c t e n o s ) ( h tt p : // www . p r o g r a m a c i o n . c o m . p y / f ee d )