Foro de Assembler

listo men!! ya lo tengo!...muchisimas gracias de verdad!!:)...como ya te dije cuentas conmigo para cualquier cosa que pueda ayudar !;).....


Saludos!!!
Gracias nuevamente!!!
 
baya esto ha estado agitao utimamente...jeje me alegro mcho...pues bueno sigo sin contarles nada nuevo solo que ya pud usar las istrucciones de assebler desde el gcc...pero solo para hacer interupciones de kernel..an no logro sacar las de bios...en fin paz y grcias a todos los que colaboran...he aproposito viejo kzk se apresia mucho tu ayuda...hay tengo una duda..seguro qe la conoces...como genero una semilla aleatoria en asm de 16 bits...nunca he podido hacer un random...lo mas que se me ocurrio fue leer una direcion de memoria usar el dato almacenada como semilla, lo que no es para nada confiable....bueno paz y suerte.
 
Hola sairus

Si, igual he investigado sobre el tema y no he encontrado un concenso entorno a una solucion en comun, no existe como "la rutina" aleatoria, asi que yo por lo general aplico el mismo principio que pensante, osea tomar un valor de una direccion con bastante movimiento, lo ideal es tomar diferentes y combinarlas en operaciones matematicas, esto es lo que aplican todas estas rutinas pero de diferentes formas.

Lo tipico es tomar valor de contadores o relojes, igual de algunos registros de hardware.

Voy recopilar algunos datos y podriamos desarrollar nuestra propia rutina random para asm, a ver si aportamos con datos y pruebas de funsionamiento y encontrar una solucion.

Eso, proximo codigo, proc random

...
 
HOla sairus black, me interesa pero en gran forma este foro de Assembly, y pues me gustaria saber que tanto sabes ahora de emulacion?? yo vengo del foro de C#, pero puedo aprender assembly o C++ si es necesario, mi idea es hacer un emulador de NES, el primero Latinoamericano, ya que he investigado y no hay gente por estos lares de sur america que halla hecho uno, ¿te le medirias? seria en los ratos libres.

El otro caso es que yo de OOP bien, pero no tengo ni idea por donde empezar a programar para Emular el chip de la nintendo, el 6502.

El otro topico a tener en cuenta es que yo no se nada de electronica, yo se que un procesador es un cuadrito con varias paticas, jajaja, mejor dicho yo se la electronica muy pero muy basica, ¿debo saber electronica? ¿que debo saber? No me quiero rendir, quiero hacer ese emulador, de codigo abierto, hacer un emulador marca LANeros.

Estoy leyendo el tutorial de "assem2.txt" y pues veo que empiezan hablando de Memoria, Instrucciones, etc.. como si uno ya supiera que son, seria buenisimo si alguien nos ayuda con un glosario para las personas que estamos nulas en electronica.

Este foro es importantisimo!!!, lo que pasa es que con la tecnologia que hay ya nadie piensa en rendimiento, o si piensan piensan muy poco, pero me parece importantisimo, gracias sairus black por esto. Veo que como tu tambien hay mas gente que quiere colaborar, si hay gente que me colabora con el glosario, les aseguro que aqui tienen a otro colaborador para este foro, por ahora no puedo ayudar mucho porque no se, aichsss :(
 
Saludos

... el 6502.

El otro topico a tener en cuenta es que yo no se nada de electronica, yo se que un procesador es un cuadrito con varias paticas, jajaja, mejor dicho yo se la electronica muy pero muy basica, ¿debo saber electronica? ¿que debo saber? No me quiero rendir, quiero hacer ese emulador, de codigo abierto, hacer un emulador marca LANeros.

Estoy leyendo el tutorial de "assem2.txt" y pues veo que empiezan hablando de Memoria, Instrucciones, etc.. como si uno ya supiera que son, seria buenisimo si alguien nos ayuda con un glosario para las personas que estamos nulas en electronica.
...

Disculpa, hola.
Por mi parte, de emulacion ni idea, pero si necesitas info del 6502 y elecronica, cuenta con mi ayuda, la curiosidad por ese micro fue mi comienzo en esto del assambler, de momento te recomiendo estas herramientas:

http://home.pacbell.net/michal_k/6502.html
http://6502asm.com/

esto para comenzar a entender el 6502.
Ahora una acotacion, hasta donde entiendo la NES utiliza una version mejorada del original 6502 algo como 65C02, de todos modos creo que no es una tremenda diferencia, unas instrucciones extras, mas o menos.

Eso, me intereza un proyecto que me permita al menos hablar de estos temas, poder aportar me mantiene en forma, si si :).

Saludos
Atte.
Kzk

P.D.: pronto desarrollare cosas especificas para random.asm, que sirvan para abrir mas desarrollo.
 
Este proyecto es de pasciencia y es lento, es como para ayudar a la comunidad a tener fuertes conocimientos en hardware, y va muy enserio, llevo 2 semanas leyendo y aun no he hecho mi primer "Hola mundo" porque ni idea, es que en emu8086 y en las demás paginas empiezan explicando como funciona el chip, pero dan por hecho que uno sabe que es una memoria RAM, y que es una Interrupcion, etc, y son cosas que yo realmente no se, la idea es tanto hacer un tutorial, como incitar a la comunidad a colaborar en el proyecto de el desarrollo del emulador, espero que hallan mas adeptos.

Ojalá que hallan muchos adeptos al proyecto.
 
  • Me gusta
Reacciones: 2 personas
Bueno ...primero que todo me disculpo por mi inactividad en estos meses desde que perdi mi pc me toco recomenzar todo y ahora sin conexion la cosa es mas dura.. a penas y tengo un par de horas a la semana para conectarme y casi siempre se me van en las labores docentes que ahora me ocupan jeje quien lo dijera....bueno pero basta de excusas.

Ahora si viejo Ivanzinho bienvenido al foro....un honor contar con un lanero de tu calibre por aca... y mas con un proyectazo como el que propones....

Veamos las respuestas a tus dudas....primero hay que saber electronica para disear un emulador? si, al menos la referente a lo que cas a emular; esto debido a que un emulador es esencialmente una virtualizacion de un componente eletronico.

Segundo las referencias de assembler dependen del componete electronico que vas a programar, por ejemplo el emu8086 maneja las instrucciones de los procesadores i386, i586 y en general los x86 mas comunes....es decir los de las pcs actuales...por ese motivo al crear el foro lo sujeri como herramienta de trabajo pues la idea era que este foro fuese de asm para pc's lo del asm para pics se los dejamos al foro de electronica.

Pero en el caso de un emulador...lo que se necesita es un doble ataque...es algo como que el pc hable en el idoma de la nes y viseversa....para eso un asm clasico no vasta...el mejor enfoque posible es usar un lenguaje de alto nivel que soport instruciones de maquina...el unico confiable es (ya sebemos) C, no C++ sino unicamente C....por que , sencillo para el lado del pc contamos con el ensablendor propio del compilador que usemos ( yo recomiendo el de gcc) y para la nes bastaia con enviar una secuencia de bits lo que va muy bien en C.

A demas C provee soporte para openGL la mejor alternativa grafica para emuladores y ademas libre (si no cheaquen el DSmume)....

En resumidas cuentas la osa seria modelar el emulador como unprograma en C, solo qe dentro de ls funciones no usariamos sintaxis C, sino mandos de assembler.

Ahora bien contad con migo para lo que se os ofresca, es un proyecto de primera y como dices de tiempo y paciencia....lo primero es conseguir una descripcion detallada del chip de la nes...y en general de la nes completa, lo segundo que te documentes respecto al funcionamiento (no a la sintaxis de asm...que varia segun el aparato) de asm para que puedas abstraer lo que deseas hacer en funcion de rutinas tipo maquina....para eso sugiero que leas el manual de virus que esta por hay....finalmente habra que doumentarse sobre como usar asm desde C y como combinarlo con openGL para producir la salida grafica....y ya con esos fundamentos si comenzar a programar.
 
Hola sairus

Si, igual he investigado sobre el tema y no he encontrado un concenso entorno a una solucion en comun, no existe como "la rutina" aleatoria, asi que yo por lo general aplico el mismo principio que pensante, osea tomar un valor de una direccion con bastante movimiento, lo ideal es tomar diferentes y combinarlas en operaciones matematicas, esto es lo que aplican todas estas rutinas pero de diferentes formas...


Perdon por el doble post pero es que no queria mezclar cosas....

Si seria bueno hacernos una macro de random...lo malo es que hay que tener cuidado con de donde se lee...porque ya sabemos que en SO como windows eso puede ser peligroso....me parece que el enfoque seria crear un espacion en memoria y asignarle un valor instantaneo como el segundo que reporta el reloj del SO (que es un dato estandar y seguro) y luego aplicarle algun algoritmo para reducirlo de exadecimal a decimal y darle algo mas de azar...bueno habra que trabajar por lo pronto yo lo probare con el as de linux...Paz y suerte.
 
bueno sairus black, gracias por tu apoyo, ya estoy estudiando lo concerniente, este proyecto va para LAAAAAAAAAAaaaaaaaaargooooooo, entonces por ahora no esperen nada, de colaboracion puesto que estoy estudiando, y a penas tenga algo de nivel, voy a subir tutoriales en pdf hechos por mi para dummies.

Con respecto a lo de trabajar en C, y no en C++, ¿no es como bajar mucho?, uno de los mejores emuladores que he visto para NES es el Nesticle, hecho en C++, del grupo bloodlust software, lo que pasa es que por ahi leí que le hackearon la maquina al hombre y soltaron el codigo fuente en internet del emulador (codigo que no he encontrado por ningun lado pero bueno) y pues aqui terminó el proyecto, cosa que iba super bien y no solo con el NES sino con la Sega Genesis, que es una consola de 16 Bit, pero el Genecyst estaba muy bueno tambien y consumia 0% recursos, entonces pues mas bien voy a investigar por el lado del C++ como fue que lo hicieron.

El foro sigue abierto, y si hay alguien que se me adelanta haciendo el tutorial para Dummies, ufff, pues excelente porque yo soy uno de ellos jejeje.
 
Si seria bueno hacernos una macro de random...lo malo es que hay que tener cuidado con de donde se lee...porque ya sabemos que en SO como windows eso puede ser peligroso....me parece que el enfoque seria crear un espacion en memoria y asignarle un valor instantaneo como el segundo que reporta el reloj del SO (que es un dato estandar y seguro) y luego aplicarle algun algoritmo para reducirlo de exadecimal a decimal y darle algo mas de azar...bueno habra que trabajar por lo pronto yo lo probare con el as de linux...Paz y suerte.

Hola
Una cosa, al leer una direccion de memoria, realmente no se provocaria peligro alguno, poque solo tomas un valor sin modificarlo.

He estado trabajando en el tema pero no encuentro aun nada satisfactorio, si bien tomar una muestra del reloj, que es del orden de los microsegundo (1/18.2....Seg), es una alternativa, pero seria demasiado lento en algunos casos, por ejemplo en desiciones al alzar multiples con limitacion de tiempo.
No es sencillo general random en bajo nivel, de hecho el leido que existe el pseudo random y tablas de random, que son limitadas.
Bueno, luego posteo algunos codigos que mirar y jugar un poco.

Atte.
Kzk
 
....Con respecto a lo de trabajar en C, y no en C++, ¿no es como bajar mucho?, uno de los mejores emuladores que he visto para NES es el Nesticle, hecho en C++, del grupo bloodlust software...


Beno si aconsejo usar C y no C++, es porque el modelo de programa de un emulador es imperativo, lo que quiere deecir que no se ajusta al paradigma de POO, asi que usar C++ es un desperdicio...en terminos globales...como sea al final es casi lo mismo...y tambien porque las librerias de openGl estan mejor portadas a C que a C++...bueno como sea proyecto en curso...suerte con tus estudios.

Kzk dijo:
Hola
Una cosa, al leer una direccion de memoria, realmente no se provocaria peligro alguno, poque solo tomas un valor sin modificarlo.

He estado trabajando en el tema pero no encuentro aun nada satisfactorio, si bien tomar una muestra del reloj, que es del orden de los microsegundo (1/18.2....Seg), es una alternativa...

Bueno lo de leer el registro no es peligroo sino limitado...ya sabes por ejemplo en wids si lees un registro de memoria "sin autorizacion" como minimo te salta el antivirus jejej...bueno y lo del reloj seria algo como tomar una muestra tampronto arranque el sistema y luego generar los numeros a partir de un algoritmo...una secuencia pero con una sola lectura para optimizar recursos.
 
A lo bien, nos la estamos c@g@ndo con eso del random.... :p
Busquen el método de la congruencia lineal. Es muy conocido y fácil de implementar.
En la Wiki hay una tabla con las constantes usadas por algunos lenguajes de programación. No hay que reinventar nada.
El contador de ticks del sistema es muy discreto, a menos que se reprograme. Sin embargo, es una buena semilla para el método anterior. Y claro, sólo hay que leerlo una sola vez. ;)
 
Timer en assembler

Bueno bros me atrevi a crear este tema, por dos razones; la primera es que a diferencia de lo que muchos piensan el assembler no es un lenguaje muerto y la segunda que para muchas personas (Programadores o no) se constituye en un dolor de cabesa.

La idea fundamental es crear un espacio de colaboracion entre aqueellos que dominan en el lenguaje y aquellos que quieren aprenderlo.

Ojala no moleste a nadie y este tema le sirva a muchos.


Hola:

Como estás , por favor soy nuevo en ensamblador , quiero programar un evento através de un timer por código, es para un pic 16f628a, oseea cada vez que pulso esa entrada se dipara el evento y ahí quedaría en manos del TIMER, si me podés ayudar agradecido.
 
Hola:

Como estás , por favor soy nuevo en ensamblador , quiero programar un evento através de un timer por código, es para un pic 16f628a, oseea cada vez que pulso esa entrada se dipara el evento y ahí quedaría en manos del TIMER, si me podés ayudar agradecido.


Bro no te lo tomes a mal pero a lo largo del foro se ha aclarado que este es un espacio para asm de conputadoras...no de pics....la verdad no se el viejo kzk pero yo de eso muy poco a penas conosco la 16f84 y la 16c45 que usaba en la escuela para crear detonadores....lo que puedo recomendarte es que te pases por el foro de electronica y cheques el hilo de pics hay seguro te orientan en lo que necesitas...Paz y suerte.
 
Perdon por el doble post pero era necesario separar temas.

A lo bien, nos la estamos c@g@ndo con eso del random.... :p
Busquen el método de la congruencia lineal. Es muy conocido y fácil de implementar.
En la Wiki hay una tabla con las constantes usadas por algunos lenguajes de programación. No hay que reinventar nada.
El contador de ticks del sistema es muy discreto, a menos que se reprograme. Sin embargo, es una buena semilla para el método anterior. Y claro, sólo hay que leerlo una sola vez. ;)

Bueno lo dire de la forma mas amable que pueda...."si logras que ese algoritmo corra, en asm de 16 bits o al menos de 32....sin usar macros....eres el padre de la programación tio..."....si no informate de que es lo que hacemos y con que limitaciones.


offtopicPERDON POR LA RUDESA PERO ME EN******************A HASTA LA M.... QUE LA GENTE HABLE SIN LA MAS MINIMA IDEA DE A QUE SE REFIERE...SI ME EQUIVOCO....ME DISCULPARE PUBLICAMENTE LUEGO...AUNQUE LO DUDO MUCHO....FIN DEL offtopic
 

Los últimos temas