Título: programar en lenguaje maquina
Publicado por: inga en 2 Febrero 2009, 21:41 pm
Hola amigos.
Normalmente escribo en la sección de lenguaje c, porque es el que me interesa aprender , pero tengo una pregunta que me parece que es mas de esta sección que de aquella.
Porque siempre que busco en la internet un manual que enseñe a programar en lenguaje maquina, siempre salen son manuales de essambler.
Por lo que he leido una cosa es codigo maquina y otra muy diferente es el essambler, o es que de lenguaje maquina no existen manuales.
agradeciendoles.
atte inga
Título: Re: programar en lenguaje maquina
Publicado por: Amerikano|Cls en 2 Febrero 2009, 22:03 pm
Pues si, el assembler es lo mas cercano al lenguaje maquina, es decir que cada instruccion de asm posee su propio opcode el cual es uno o mas bytes que encierran la instruccion y si pasas este opcode a binario pues logicamente seria el correspondiente a codigo maquina (1-0) :xD, pero seria una jartera tener que armar un .exe a punta de binario ¿no crees?, a demas no conozco forma de hacerlo ;D
salu2
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 2 Febrero 2009, 22:13 pm
El assembler es el lenguaje de programacion mas bajo , es imposible que programes en lenguaje maquina :rolleyes: , o entiendes si quiera esto : 01001110 01101111 0001 01101100 01101111 0001 01100101 01101110 01110100 01100101 01101110 01100100 01100101 01110010 01100001 01110011 0001 01111000 01000100 01000100 01000100 01000100
Título: Re: programar en lenguaje maquina
Publicado por: inga en 2 Febrero 2009, 23:42 pm
Si amigos ustedes piensan razonablemente.
La pregunta es pura curiosidad, lo que sucede es que estaba leyendo algo sobre historia de la informatica y lei algo asi como: " los primeros programadores construian los codigos con puro unos y ceros, y luego se cansaron he inventaron el essambler. "
Me dio curiosidad y quise informarme como era que construian los codigos a punto de ceros y unos.
Disculpen el pecadillo.
atte inga
Título: Re: programar en lenguaje maquina
Publicado por: ~~ en 3 Febrero 2009, 00:18 am
Aquí la aclaración: ;) http://es.wikipedia.org/wiki/Lenguaje_de_m%C3%A1quina http://es.wikipedia.org/wiki/ASM
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 3 Febrero 2009, 00:20 am
Nunca se a programado en 1 y 0 , los primeros programadores en ASM programaban (si estoy equivocado saquenme de el error) .
Título: Re: programar en lenguaje maquina
Publicado por: N1K0 en 3 Febrero 2009, 00:37 am
Nunca se a programado en 1 y 0 , los primeros programadores en ASM programaban (si estoy equivocado saquenme de el error) .
si el asm es el primer lenguaje de programacion en que codearon los ensambladores ? xddd pues para mi que antes de que se creara el ensamblador o mejor dicho para crear el esamblador todo tenia que ser escrito en lenguaje objeto(o codigo objeto) osea binario dependiendo del bit y su conformacion la funcion que ejecutaria...
Título: Re: programar en lenguaje maquina
Publicado por: D4RIO en 3 Febrero 2009, 01:00 am
Jeje... ;D ... bueno, leamos al Capitan Crunch nuestro pionero:
http://www.webcrunchers.com/crunch/stories/homebrew.html (http://www.webcrunchers.com/crunch/stories/homebrew.html)
Aja... aca habla de lo que varios sabian. Tambien se podía (y se puede) programar en hexa. Todavia hoy podemos programar algunos controladores con un pequeño pad hexadecimal.
Llendo a tiempos más remotos las tarjetas y cintas perforadas tenían cosas como ... un compilador de FORTRAN.
Tal vez mirar el documental sobre historia de los ordenadores (creo que era del "The History Channel") vendría bien... ;)
Título: Re: programar en lenguaje maquina
Publicado por: inga en 3 Febrero 2009, 02:07 am
Saludos D4RIO.
Existe algun link en el que pueda leer los articulos del capitan Crunh en idioma español.
Agradeciendoles.
atte inga
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 3 Febrero 2009, 02:14 am
Nunca se a programado en 1 y 0 , los primeros programadores en ASM programaban (si estoy equivocado saquenme de el error) .
si el asm es el primer lenguaje de programacion en que codearon los ensambladores ? xddd pues para mi que antes de que se creara el ensamblador o mejor dicho para crear el esamblador todo tenia que ser escrito en lenguaje objeto(o codigo objeto) osea binario dependiendo del bit y su conformacion la funcion que ejecutaria... hay ya viene el tema con el procesador :P , cclaro que se puede programar en binario pero seria un binario asm xDD
Título: Re: programar en lenguaje maquina
Publicado por: D4RIO en 3 Febrero 2009, 03:00 am
Agarren un editor hexa y editen un bootstrap que no trae formato. Eso es escribir binario. Si hacen q un programa en C escriba un unsigned char foo=0x04 tendran un 00000100 en el archivo (verifiquen con un editor hexa). Eso hace el ensamblador, reemplazar por code binario... el resto en un EXE o un ELF es formato y depende de la especificación de formato. Vamos, estudiar un poco y todo eso es teoría básica. Un buen ejercicio es programar un pequeño ensamblador que ensamble unas pocas instrucciónes. No es difícil... hacerlo en ASM es más desafiante ;D. (PD: no harian nada nuevo... FASM esta escrito en FASM)
Byebye!
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 3 Febrero 2009, 13:50 pm
Claro , FASM esta escrito ensamblado en FASM , para "programar" en binario bastaria con agarrar el FASM y escribir todo el ejecutable con db numerobinariob (la b al final espara saber que es binario)
Título: Re: programar en lenguaje maquina
Publicado por: D4RIO en 3 Febrero 2009, 14:05 pm
Sisi... en realidad no es nada guaau... Si miramos cualquier bootstrap, incluido el de Linux y el de Minix si mal no recuerdo (y el de VisOpSis y otros) suelen usar binario cuando aplican máscaras para probar ciertos bits... por ejemplo en la prueba de flags del registro de flags, para hacer el checkeo de microprocesador.
Un "compilador" de binario tampoco es un gran desafío... solo se agrupan los ceros y unos y se escribe un byte como unsigned char (en C) o bien como mapa de bits, o como quieran.
La verdad el hilo no tiene mucha lógica. Sería más provechoso preguntar ¿Como funciona un ensamblador?
S2
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 3 Febrero 2009, 14:18 pm
Un enesamblador funciona primero aplica las macros y remplasa las constantes , luego que todo esta en Lenguaje ensamblador , hace el paso de cada instruccion a byte , cada ves que se usa una variable ees sumplatada por su posicion .
PD: Todo esto lo saco por logica y por lo que se y e visto , pero si me equivoco en algo por favor decirmelo :P
Título: Re: programar en lenguaje maquina
Publicado por: >FedeX< en 3 Febrero 2009, 14:26 pm
Si te olvidaste de una variable al comienzo, ¡fuiste!... No se pueden manipular las direcciones de memoria como el asm las manipula. Quieres agregar algo en el medio del code, una mitad funciona y la otra no.
Entre asm y c, los programas en asm son los mas óptimos. Pero entre asm y lenguaje de máquina (yo creo que) es exactamente lo mismo.
Título: Re: programar en lenguaje maquina
Publicado por: D4RIO en 3 Febrero 2009, 15:47 pm
Si te olvidaste de una variable al comienzo, ¡fuiste!... No se pueden manipular las direcciones de memoria como el asm las manipula. Quieres agregar algo en el medio del code, una mitad funciona y la otra no. Porque debes arreglar los offsets. Si de un momento a otro agregas 15 bytes en medio y estabas programando en codigo de máquina, entonces todas las direcciónes posteriores se correrán 15 bytes, y sus referencias tambien. No obstante, si haces un programa en ASM para que funcione como en C usaras pilas locales a las funciónes. y accederás con la base de la pila más el offset de la variable en la función, por lo que esas variables no darán problemas. Entre asm y c, los programas en asm son los mas óptimos Pero un buen programador en C sabe que es posible tener todo el acceso de bajo nivel y la rentabilidad de ASM desde C... depende que tanto lo conozcas :rolleyes: @krackwar: estas muy cerca :xD Un enesamblador funciona primero aplica las macros y remplasa las constantes Aja...sisi, obviamente despues de hacer las inclusiones de archivos... hace el paso de cada instruccion a byte , cada ves que se usa una variable ees sumplatada por su posicion . Eso depende mucho del ensamblador y del modo... en binario puro sería algo muy similar a eso, pero en un ejecutable con formato se deben hacer muchas cosas más. Los símbolos, como los Labels, son correctamente ubicados como offsets dentro del ejecutable... luego todos los offsets calculados son reemplazados por constantes literales (que es lo que encuentras al desensamblar), y entonces son ensamblados por el componente más primitivo que simplemente ensambla instrucciónes que vienen con sus operadores literales.
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 3 Febrero 2009, 16:44 pm
Claro , por ejemplo en el formato PE tiene que hacerlo para que windows entienda el archivo por que si no le aplicara este formato no andarian en windows , se ma abia olvidado los include :P lo que hace es leer el archivo e incluirlo tal cual y luego va aplicando las macros y constantes y luegpo lo traduce a bytes.
Título: Re: programar en lenguaje maquina
Publicado por: Meta en 4 Febrero 2009, 07:39 am
Hola amigos.
Normalmente escribo en la sección de lenguaje c, porque es el que me interesa aprender , pero tengo una pregunta que me parece que es mas de esta sección que de aquella.
Porque siempre que busco en la internet un manual que enseñe a programar en lenguaje maquina, siempre salen son manuales de essambler.
Por lo que he leido una cosa es codigo maquina y otra muy diferente es el essambler, o es que de lenguaje maquina no existen manuales.
agradeciendoles.
atte inga
Puedes aprender ASM de los PIC primero que son más fáciles y más útiles que los ASM modernos si es para aplicaciones caseras. En empresas me callo. ;****************************************************************************** ;* VIDEO PIC 16F877 * ;* (C)2007 ESTEBAN P.A. * ;* * ;* PROGRAMA PARA REPRESENTAR CARÁCTERES B/N EN UNA PANTALLA DE TELEVISIÓN PAL * ;* UTILIZANDO UN PIC 16F877 A 20 MHZ * ;* * ;****************************************************************************** ;MODO 0 --> MUESTRA UNA PANTALLA DE (X,Y) 20 x 8 CARÁCTERES ;MODO 1 --> MUESTRA UNA PANTALLA DE (X,Y) 7 x 11 CARÁCTERES ;TANTO EL MODO O COMO EL MODO 1 DISPONEN DE 31 CARÁCTERES ;DE 8x8 PIXELS INDEPENDIENTES PARA CADA MODO DE VIDEO. ;PARA CAMBIAR EL MODO DE VIDEO SE DEBE CAMBIAR EL VALOR DE ;LA ETIQUETA MODO_PANT, LOS VALORES QUE ACEPTA SON 0 Y 1 ;0=MODO DE VIDEO 0(20x8 CARÁCTERES) Y MODO DE VIDEO=1(7x11 CARÁCTERES) ;EL MODO 0 UTILIZA PARTE DE LOS REGISTROS DE MEMORIA DE LOS BANCOS 0 Y 1 DEL PIC, ;LA PANTALLA EN MODO 0 ESTÁ DIVIDIDA EN DOS PARTES, LA PARTE 0(PARTE SUPERIOR DE LA PANTALLA) ;QUE CONTIENE 80 REGISTROS DE MEMORIA DEL BANCO 0 Y LA PARTE 1(PARTE INFERIOR DE LA PANTALLA), ;QUE CONTIENE OTROS 80 REGISTROS DE MEMORIA, PERO DEL BANCO1 ;EL MODO 1 UTILIZA 77 REGISTROS DE MEMORIA DEL BANCO 0 ;LA MAYORIA DE LOS CARÁCTERES GRÁFICOS QUE REPRESENTA EL PROGRAMA ;EN LA TV HAN SIDO COPIADOS DEL MICROORDENADOR SINCLAIR ZX81 ;------------------------------------------------------------------------------ ;CONFIGURACIÓN, REGISTROS Y ETIQUETAS DEL PIC __CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_HS_OSC&_BODEN_OFF&_LVP_OFF list p=16f877A #include p16f877A.inc LONG_X EQU .20; NUM. MAX. DE CARÁCTERES DE FILA EN MODO 0 LONG_Y EQU .8; NUM. MAX. DE LÍNEAS DE UN CARÁCTER EN MODO 0 CHARMAXXY EQU .4; NUM. MAX DE CARÁCTERES DE COLUMNA EN MODO 0 LONGX_MODE1 EQU .7; NUM. MAX. DE CARÁCTERES DE FILA EN MODO 1 LONGY_MODE1 EQU .8; NUM. MAX DE LÍNEAS DE UN CARÁCTER EN MODO 1 CHARMAXY_MODE1 EQU .11; NUM. MAX. DE CARÁCTERES DE COLUMNA EN MODO 1 ;REGISTROS DE USO PARA EL PROGRAMA CBLOCK 20H CONT,LINE,BYTECHAR,NUMCHAR,NUMCOL CONTCHAR,LINECHAR,BUFFER,CONTLINEA,FLAGSTV INICPANT; DIRECCIÓN DE MEMORIA DONDE COMIENZA LA PARTE 0 DE LA PANTALLA EN MODO 0 Y 1 ENDC PANT2 EQU 0A0H;DIRECCIÓN DE MEMORIA DONDE COMIENZA LA PARTE 1 DE LA PANTALLA EN MODO 0 MODO_PANT EQU .0; 0=PANTALLA EN MODO 0, 1=PANTALLA EN MODO 1 ;------------------------------------------------------------------------------ ORG 00H GOTO START ORG 05H ;---------------------------JUEGO DE CARÁCTERES-------------------------------- ;-------------------------SET 0 DE CARÁCTERES MODO 0--------------------------- BYTEPANT ADDWF BYTECHAR,W ADDWF PCL,F RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00000000'; SPACE 0 RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000010' RETLW B'01111110';A 1 RETLW B'01000010' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'01111100' RETLW B'01000010' RETLW B'01111100' RETLW B'01000010';B 2 RETLW B'01000010' RETLW B'01111100' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000000' RETLW B'01000000';C 3 RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01111000' RETLW B'01000100' RETLW B'01000010' RETLW B'01000010';D 4 RETLW B'01000100' RETLW B'01111000' RETLW B'00000000' RETLW B'00000000' RETLW B'01111110' RETLW B'01000000' RETLW B'01111100' RETLW B'01000000';E 5 RETLW B'01000000' RETLW B'01111110' RETLW B'00000000' RETLW B'00000000' RETLW B'01111110' RETLW B'01000000' RETLW B'01111100' RETLW B'01000000' RETLW B'01000000';F 6 RETLW B'01000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000000' RETLW B'01001110' RETLW B'01000010';G 7 RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01111110' RETLW B'01000010' RETLW B'01000010';H 8 RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'00111110' RETLW B'00001000' RETLW B'00001000' RETLW B'00001000';I 9 RETLW B'00001000' RETLW B'00111110' RETLW B'00000000' RETLW B'00000000' RETLW B'00000010' RETLW B'00000010' RETLW B'00000010' RETLW B'01000010' RETLW B'01000010';J 10 RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000100' RETLW B'01001000' RETLW B'01110000' RETLW B'01001000';K 11 RETLW B'01000100' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'01000000' RETLW B'01000000' RETLW B'01000000' RETLW B'01000000';L 12 RETLW B'01000000' RETLW B'01111110' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01100110' RETLW B'01011010' RETLW B'01000010';M 13 RETLW B'01000010' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01100010' RETLW B'01010010';N 14 RETLW B'01001010' RETLW B'01000110' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';O 15 RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01111100' RETLW B'01000010' RETLW B'01000010';P 16 RETLW B'01111100' RETLW B'01000000' RETLW B'01000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000010' RETLW B'01010010';Q 17 RETLW B'01001010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01111100' RETLW B'01000010';R 18 RETLW B'01000010' RETLW B'01111100' RETLW B'01000100' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000000' RETLW B'00111100';S 19 RETLW B'00000010' RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'11111110' RETLW B'00010000' RETLW B'00010000' RETLW B'00010000';T 20 RETLW B'00010000' RETLW B'00010000' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';U 21 RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';V 22 RETLW B'00100100' RETLW B'00011000' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';W 23 RETLW B'01011010' RETLW B'00100100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'00100100' RETLW B'00011000' RETLW B'00011000';X 24 RETLW B'00100100' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'10000010' RETLW B'01000100' RETLW B'00101000' RETLW B'00010000';Y 25 RETLW B'00010000' RETLW B'00010000' RETLW B'00000000' RETLW B'00000000' RETLW B'01111110' RETLW B'00000100' RETLW B'00001000' RETLW B'00010000';Z 26 RETLW B'00100000' RETLW B'01111110' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'00000010' RETLW B'00111100';27 NÚMERO "2" RETLW B'01000000' RETLW B'01111110' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000110' RETLW B'01001010' RETLW B'01010010';28 NÚMERO "0" RETLW B'01100010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01111110' RETLW B'00000010' RETLW B'00000100' RETLW B'00001000';29 NÚMERO "7" RETLW B'00010000' RETLW B'00010000' RETLW B'00000000' RETLW B'01111100' RETLW B'10000010' RETLW B'10011010' RETLW B'10100010' RETLW B'10100010';30 COPYRIGHT RETLW B'10011010' RETLW B'10000010' RETLW B'01111100' ;------------------------------------------------------------------------------ NOP NOP NOP ;--------------------------SET 1 DE CARÁCTERES MODO1--------------------------- BYTEPANT1 CLRF PCLATH BSF PCLATH,0 ADDWF BYTECHAR,W ADDWF PCL,F RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00000000'; SPACE 0 RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000010' RETLW B'01111110';A 1 RETLW B'01000010' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'01111100' RETLW B'01000010' RETLW B'01111100' RETLW B'01000010';B 2 RETLW B'01000010' RETLW B'01111100' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000000' RETLW B'01000000';C 3 RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01111000' RETLW B'01000100' RETLW B'01000010' RETLW B'01000010';D 4 RETLW B'01000100' RETLW B'01111000' RETLW B'00000000' RETLW B'00000000' RETLW B'01111110' RETLW B'01000000' RETLW B'01111100' RETLW B'01000000';E 5 RETLW B'01000000' RETLW B'01111110' RETLW B'00000000' RETLW B'00000000' RETLW B'01111110' RETLW B'01000000' RETLW B'01111100' RETLW B'01000000' RETLW B'01000000';F 6 RETLW B'01000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000000' RETLW B'01001110' RETLW B'01000010';G 7 RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01111110' RETLW B'01000010' RETLW B'01000010';H 8 RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'00111110' RETLW B'00001000' RETLW B'00001000' RETLW B'00001000';I 9 RETLW B'00001000' RETLW B'00111110' RETLW B'00000000' RETLW B'00000000' RETLW B'00000010' RETLW B'00000010' RETLW B'00000010' RETLW B'01000010' RETLW B'01000010';J 10 RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000100' RETLW B'01001000' RETLW B'01110000' RETLW B'01001000';K 11 RETLW B'01000100' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'01000000' RETLW B'01000000' RETLW B'01000000' RETLW B'01000000';L 12 RETLW B'01000000' RETLW B'01111110' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01100110' RETLW B'01011010' RETLW B'01000010';M 13 RETLW B'01000010' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01100010' RETLW B'01010010';N 14 RETLW B'01001010' RETLW B'01000110' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';O 15 RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01111100' RETLW B'01000010' RETLW B'01000010';P 16 RETLW B'01111100' RETLW B'01000000' RETLW B'01000000' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000010' RETLW B'01000010' RETLW B'01010010';Q 17 RETLW B'01001010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01111100' RETLW B'01000010';R 18 RETLW B'01000010' RETLW B'01111100' RETLW B'01000100' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'00111100' RETLW B'01000000' RETLW B'00111100';S 19 RETLW B'00000010' RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'11111110' RETLW B'00010000' RETLW B'00010000' RETLW B'00010000';T 20 RETLW B'00010000' RETLW B'00010000' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';U 21 RETLW B'01000010' RETLW B'00111100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';V 22 RETLW B'00100100' RETLW B'00011000' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010' RETLW B'01000010';W 23 RETLW B'01011010' RETLW B'00100100' RETLW B'00000000' RETLW B'00000000' RETLW B'01000010' RETLW B'00100100' RETLW B'00011000' RETLW B'00011000';X 24 RETLW B'00100100' RETLW B'01000010' RETLW B'00000000' RETLW B'00000000' RETLW B'10000010' RETLW B'01000100' RETLW B'00101000' RETLW B'00010000';Y 25 RETLW B'00010000' RETLW B'00010000' RETLW B'00000000' RETLW B'00000000' RETLW B'01111110' RETLW B'00000100' RETLW B'00001000' RETLW B'00010000';Z 26 RETLW B'00100000' RETLW B'01111110' RETLW B'00000000' RETLW B'00000000' RETLW B'00011000' RETLW B'00101000' RETLW B'00001000' RETLW B'00001000';27 NÚMERO "1" RETLW B'00001000' RETLW B'00111110' RETLW B'00000000' RETLW B'00011110' RETLW B'00111111' RETLW B'00011010' RETLW B'00011111' RETLW B'00011110';28 JET SET WILLY(1) RETLW B'00001100' RETLW B'00011110' RETLW B'00111111' RETLW B'01111111' RETLW B'11111111' RETLW B'11111111' RETLW B'11011110' RETLW B'00011111';29 JET SET WILLY(2) RETLW B'00111011' RETLW B'01100011' RETLW B'01110011' RETLW B'10000000' RETLW B'11000000' RETLW B'11000000' RETLW B'11000000' RETLW B'00000000';30 JET SET WILLY(3) RETLW B'01000000' RETLW B'11000000' RETLW B'10000000' ;------------------------------------------------------------------------------ NOP NOP NOP ;------------------------------------------------------------------------------ TEXTO; EL SIGUIENTE TEXTO SE UBICARÁ EN LOS REGISTROS DE MEMORIA DEL BANCO 0 CLRF PCLATH BSF PCLATH,1 MOVF BYTECHAR,W ADDWF PCL,F DT " videopic " DT " " DT " este programa " DT " muestra caracteres " TEXTO2; EL SIGUIENTE TEXTO SE UBICARÁ EN LOS REGISTROS DE MEMORIA DEL BANCO 1 CLRF PCLATH BSF PCLATH,1 MOVF BYTECHAR,W ADDWF PCL,F DT " en una pantalla de " DT " tv mediante un pic " DT " " DT " ".126,.123,.124,.124,.125," esteban pa " ;------------------------INICIALIZACIÓN DE LOS PUERTOS------------------------- START BSF STATUS,RP0 BCF STATUS,RP1 MOVLW B'11111110' MOVWF TRISB MOVLW B'00000110' MOVWF ADCON1 MOVLW B'00000110' MOVWF TRISA MOVLW B'11010111' MOVWF TRISC MOVLW B'00000000' MOVWF SSPSTAT BCF STATUS,RP0 CLRF PORTB ;---------RUTINA DE INICIALIZACIÓN Y ENLACE A LOS MODOS DE VIDEO--------------- MOVLW MODO_PANT MOVWF FLAGSTV MOVLW B'00100000' MOVWF SSPCON CALL BORRAPANT; INSERTA EN LOS REGISTROS DE MEMORIA EL VALOR "0" CALL CONV_CHAR; CONVIERTE LOS VALORES ASCII DE LOS TEXTOS A VALORES CALL CONV_CHAR2;PARA QUE PUEDAN SER UTILIZADOS POR EL PROGRAMA BTFSS FLAGSTV,0 GOTO START_MODE0; PONE LA PANTALLA EN MODO 0 GOTO START_MODE1; PONE LA PANTALLA EN MODO 1 ;----------------------------------MODO DE VIDEO 0----------------------------- PAUSA2US NOP NOP NOP NOP NOP NOP RETURN STARTMODE0 NOP; ESTOS DOS NOP SON PARA SINCRONIZAR LOS 20 PRIMEROS NOP; CARACTERES CON EL RESTO DE LINEAS MODE0 CLRF SSPCON CLRF PORTC BCF PORTA,0; INICIO DEL PULSO DE SINCRONISMO HORIZONTAL NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF PORTA,0; FIN DEL PULSO DE SINCRONISMO HORIZONTAL CALL PAUSA4US CALL PAUSA4US CALL PAUSA2US BSF SSPCON,5 NOP MOVF INDF,W; COMIENZO DE LOS 20 CARÁCTERES CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F NOP NOP NOP NOP NOP NOP NOP BCF SSPBUF,5 CALL PAUSA4US CALL PAUSA2US NOP NOP NOP NOP NOP NOP INCF BYTECHAR,F DECFSZ NUMCHAR,F; CARACTERES 8*8 COMPLETOS? GOTO NOCOMPLETOS CLRF BYTECHAR MOVLW LONG_Y MOVWF NUMCHAR DECFSZ NUMCOL,F;COLUMNA COMPLETA DE CARACTERES? GOTO MODE0 NOP; COMIENZO DE LA SEGUNDA PARTE DE LA PANTALLA NOP MODE0_ZONA2 CLRF SSPCON CLRF PORTC BCF PORTA,0; INICIO SYNC BTFSS FLAGSTV,0 GOTO REG_ZONA2 NOP NOP NOP NOP NOP NOP NOP NOP NOP SIGUE_ZONA2 NOP NOP NOP NOP NOP NOP NOP BSF PORTA,0; FIN SYNC CALL PAUSA4US CALL PAUSA4US CALL PAUSA2US BSF SSPCON,5 NOP MOVF INDF,W; COMIENZO DE LOS 20 CARACTERES CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F MOVF INDF,W CALL BYTEPANT MOVWF SSPBUF INCF FSR,F NOP NOP NOP NOP NOP NOP NOP BCF SSPBUF,5 CALL PAUSA4US CALL PAUSA2US NOP NOP NOP NOP NOP NOP INCF BYTECHAR,F DECFSZ NUMCHAR,F; CARACTERES 8*8 COMPLETOS? GOTO NOCOMPLETOS_ZONA2 CLRF BYTECHAR MOVLW LONG_Y MOVWF NUMCHAR DECFSZ NUMCOL,F;COLUMNA COMPLETA DE CARACTERES? GOTO MODE0_ZONA2 RETURN NOCOMPLETOS_ZONA2 NOP MOVLW LONG_X SUBWF FSR,F GOTO MODE0_ZONA2 REG_ZONA2 MOVLW CHARMAXXY MOVWF NUMCOL MOVLW PANT2 MOVWF FSR BSF FLAGSTV,0 GOTO SIGUE_ZONA2 NOCOMPLETOS NOP MOVLW LONG_X SUBWF FSR,F GOTO MODE0 ;---------------------------SINCRONISMO VERTICAL------------------------------- PAUSA4P5 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RETURN PAUSA27P4 CALL PAUSA4P5 CALL PAUSA4P5 CALL PAUSA4P5 CALL PAUSA4P5 CALL PAUSA4P5 CALL PAUSA4P5 RETURN PIGUALADORES BCF PORTA,0 CALL PAUSA27P4 BSF PORTA,0 CALL PAUSA4P5 BCF PORTA,0 CALL PAUSA27P4 BSF PORTA,0 CALL PAUSA4P5 BCF PORTA,0 CALL PAUSA27P4 BSF PORTA,0 CALL PAUSA4P5 BCF PORTA,0 CALL PAUSA27P4 BSF PORTA,0 CALL PAUSA4P5 BCF PORTA,0 CALL PAUSA27P4 BSF PORTA,0 CALL PAUSA4P5 BCF PORTA,0 CALL PAUSA27P4 BSF PORTA,0 CALL PAUSA4P5 RETURN PVERTICALESALM BSF PORTA,0 CALL PAUSA27P4 BCF PORTA,0 CALL PAUSA4P5 BSF PORTA,0 CALL PAUSA27P4 BCF PORTA,0 CALL PAUSA4P5 BSF PORTA,0 CALL PAUSA27P4 BCF PORTA,0 CALL PAUSA4P5 BSF PORTA,0 CALL PAUSA27P4 BCF PORTA,0 CALL PAUSA4P5 BSF PORTA,0 CALL PAUSA27P4 BCF PORTA,0 CALL PAUSA4P5 BSF PORTA,0 CALL PAUSA27P4 BCF PORTA,0 CALL PAUSA4P5 RETURN SYNCVERT CLRF SSPCON CLRF PORTC CALL PIGUALADORES CALL PVERTICALESALM CALL PIGUALADORES RETURN PAUSA4US NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RETURN ;----------------------------------LINEA NEGRA--------------------------------- LINEA64US CLRF SSPCON CLRF PORTC BCF PORTA,0 CALL PAUSA4US BSF PORTA,0 CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RETURN ;---------------------GENERACION DE UN CUADRO DE TV EN MODO 0------------------ START_MODE0 PANTALLA CLRF FLAGSTV CLRF BYTECHAR MOVLW CHARMAXXY MOVWF NUMCOL MOVLW LONG_Y MOVWF NUMCHAR MOVLW INICPANT MOVWF FSR MOVLW .124 MOVWF LINE NL1 CALL LINEA64US DECFSZ LINE,F GOTO NL1 CALL STARTMODE0 MOVLW .124 MOVWF LINE NL3 CALL LINEA64US DECFSZ LINE,F GOTO NL3 BCF PORTA,0 CALL PAUSA4US BSF PORTA,0 CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL SYNCVERT GOTO PANTALLA ;-----------------GENERACION DE UN CUADRO DE TV EN MODO 1---------------------- START_MODE1 MOVLW B'00100001' MOVWF SSPCON PANTALLA_MODE1 CLRF BYTECHAR MOVLW CHARMAXY_MODE1 MOVWF NUMCOL MOVLW LONGY_MODE1 MOVWF NUMCHAR MOVLW INICPANT MOVWF FSR MOVLW .30 MOVWF LINE NM1 CALL LINEA64US DECFSZ LINE,F GOTO NM1 CALL MODE1 MOVLW .18 MOVWF LINE NM3 CALL LINEA64US DECFSZ LINE,F GOTO NM3 BCF PORTA,0 CALL PAUSA4US BSF PORTA,0 CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL PAUSA4US CALL SYNCVERT GOTO PANTALLA_MODE1 ;------------------------------MODO DE VIDEO 1--------------------------------- MODE1 CLRF SSPCON CLRF PORTC BCF PORTA,0; INICIO DEL PULSO DE SINCRONISMO HORIZONTAL NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF PORTA,0; FIN DEL PULSO DE SINCRONISMO HORIZONTAL CALL PAUSA4US NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP MOVLW B'00100001' MOVWF SSPCON MOVF INDF,W; COMIENZO DE LOS 7 CARACTERES CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F; FIN DE LOS 7 CARACTERES NOP NOP NOP NOP NOP NOP NOP CLRF SSPBUF NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP INCF BYTECHAR,F NOP NOP NOP MOVLW LONGX_MODE1 SUBWF FSR,F DECF BYTECHAR,F NOP NOP ;REPITE LA LINEA CLRF SSPCON CLRF PORTC BCF PORTA,0; INICIO DEL SINCRONISMO HORIZONTAL NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF PORTA,0; FIN DEL SINCRONISMO HORIZONTAL CALL PAUSA4US NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP MOVLW B'00100001' MOVWF SSPCON MOVF INDF,W; COMIENZO DE LOS 7 CARACTERES CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F; FIN DE LOS 7 CARACTERES NOP NOP NOP NOP NOP NOP NOP CLRF SSPBUF NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP INCF BYTECHAR,F NOP NOP NOP MOVLW LONGX_MODE1 SUBWF FSR,F DECF BYTECHAR,F NOP NOP ;REPITE LA LINEA CLRF SSPCON CLRF PORTC BCF PORTA,0; INICIO DEL SINCRONISMO HORIZONTAL NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF PORTA,0; FIN DEL SINCRONISMO HORIZONTAL CALL PAUSA4US NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP MOVLW B'00100001' MOVWF SSPCON MOVF INDF,W; COMIENZO DE LOS 7 CARACTERES CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F MOVF INDF,W CALL BYTEPANT1 MOVWF SSPBUF CALL DELAY_MODE1 INCF FSR,F; FIN DE LOS 7 CARACTERES NOP NOP NOP NOP NOP NOP NOP CLRF SSPBUF NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP INCF BYTECHAR,F DECFSZ NUMCHAR,F; CARACTERES 8*8 COMPLETOS? GOTO NOCOMPLETOS_MODE1 CLRF BYTECHAR MOVLW LONGY_MODE1 MOVWF NUMCHAR DECFSZ NUMCOL,F;COLUMNA COMPLETA DE CARACTERES? GOTO MODE1 RETURN NOCOMPLETOS_MODE1 NOP MOVLW LONGX_MODE1 SUBWF FSR,F GOTO MODE1 DELAY_MODE1 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RETURN ;------------------------------------------------------------------------------ ;PONE A "0" LOS REGISTROS DE MEMORIA DEL BANCO 0 Y 1 ,QUE UTILIZA ;EL PROGRAMA PARA REPRESENTAR LOS CARACTERES EN PANTALLA. BORRAPANT BCF STATUS,RP0 BCF STATUS,RP1 MOVLW .80 MOVWF CONT MOVLW INICPANT MOVWF FSR BORRA MOVLW B'00000000' MOVWF INDF INCF FSR,F DECFSZ CONT,F GOTO BORRA BORRAPANT2 BCF STATUS,RP0 BCF STATUS,RP1 MOVLW .80 MOVWF CONT MOVLW PANT2 MOVWF FSR BORRA2 MOVLW B'00000000' MOVWF INDF INCF FSR,F DECFSZ CONT,F GOTO BORRA2 RETURN ;------------------------------------------------------------------------------ ;CONVIERTE LOS CARACTERES ASCII DE LOS TEXTOS A CARÁCTERES PARA QUE PUEDAN SER UTILIZADOS POR EL PROGRAMA CONV_CHAR MOVLW .80; NUMERO DE CARACTERES A MOSTRAR EN EL BANCO0 MOVWF CONT MOVLW INICPANT MOVWF FSR CLRF BYTECHAR; CONTIENE EL PUNTERO DE LA POSICION DE TEXTO OTRAVEZ CALL TEXTO MOVWF INDF MOVLW .96 MOVWF LINE MOVF LINE,W SUBWF INDF,F BCF STATUS,C RLF INDF BCF STATUS,C RLF INDF BCF STATUS,C RLF INDF INCF BYTECHAR,F INCF FSR,F DECFSZ CONT,F GOTO OTRAVEZ CLRF PCLATH RETURN CONV_CHAR2 MOVLW .80; NUMERO DE CARACTERES A MOSTRAR EN EL BANCO1 MOVWF CONT MOVLW PANT2 MOVWF FSR CLRF BYTECHAR; CONTIENE EL PUNTERO DE LA POSICION DE TEXTO OTRAVEZ2 CALL TEXTO2 MOVWF INDF MOVLW .96 MOVWF LINE MOVF LINE,W SUBWF INDF,F BCF STATUS,C RLF INDF BCF STATUS,C RLF INDF BCF STATUS,C RLF INDF INCF BYTECHAR,F INCF FSR,F DECFSZ CONT,F GOTO OTRAVEZ2 CLRF PCLATH RETURN END
En esta web veo interesante este tipo de ASM. http://usuarios.lycos.es/zootronica/modules.php?name=News&file=article&sid=32 Cuadno ya sepas algo, ya puedes hacer el de PC. También puedes hacer cosas con PIC y Puerto serie RS232 y interfaz Visual C#. http://www.abcdatos.com/tutoriales/tutorial/z9521.html Saludos.
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 4 Febrero 2009, 15:51 pm
Siempre me a interesado la programacion de los PIC pero nunca lo e aprendido :-\ , no se si alguien me pudiera facilitar algunos manuales ,cuales son las herramientas necesarias , etc.. . aprovechando que se toco el tema.
Título: Re: programar en lenguaje maquina
Publicado por: Meta en 4 Febrero 2009, 15:54 pm
Donde aprendes seguro es con este libro www.pic16f84a.org y en ese libro te enseña las bases necesarias y grbadores. Puedes leer el contenido en dicha Web, te viene con ejemplos incluidos.
IC-Prog. http://www.abcdatos.com/tutoriales/tutorial/z9316.html
WinPic800 http://www.abcdatos.com/tutoriales/tutorial/z9157.html
Saludos.
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 4 Febrero 2009, 15:59 pm
Gracias ;D , ppor cierto el ASM debe ser parecido o es mas complicado que el ASM que se ocupa "normalmente".
Título: Re: programar en lenguaje maquina
Publicado por: Meta en 4 Febrero 2009, 16:03 pm
Las instrucciones no se llaman igual aunque hagan lo mismo. Para el PIC es como un microprocesador pero en miniatura y es más fácil. El ASM es más potente pero está hecho para lo que está, si quieres hacer circuitos como he hecho aquí, no hay problemas.
Pon en www.youtube.com metaconta.
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 4 Febrero 2009, 16:10 pm
Ok , pero creo que ya hacer circuito y esas cosas es un poco mas avanzado primero empezare por lo basico.
Edit: Por lo visto tambien existen emuladores que deben ser para probar el codigo , alguno que me recomiendes ¿?
Título: Re: programar en lenguaje maquina
Publicado por: Meta en 4 Febrero 2009, 17:19 pm
Si existen emuladores y enn ella lo puedes conseguir aquí (http://foro.elhacker.net/electronica/introduccion_a_la_programacion_de_pics_en_lenguaje_c_ccs-t174021.0.html;msg1136801#msg1136801) y se llama Proteus.
El simulador y compilador oficial la puedes descargar en la web www.microchip.com , se llama MPLAB 8.20 en este caso que puedes descatgar aquí (http://ww1.microchip.com/downloads/en/DeviceDoc/mplab__v820.zip) y es gratuito.
Título: Re: programar en lenguaje maquina
Publicado por: krackwar en 4 Febrero 2009, 18:16 pm
ok , muchas gracias ;D
Título: Re: programar en lenguaje maquina
Publicado por: mr.blood en 9 Febrero 2013, 10:12 am
@Meta: no pongas esos codigo tan largos por favor, para eso esta pastebin.
@krackwar: mas que complejo es mas laborioso que programar para PC. Deberias conocer el PIC que programas a fondo y tener conocimientos basicos de electricidad, es tambien interesante.
Sa1uDoS
|