No había visto este otro post...Popopo escribió: ↑23 Feb 2020, 14:31
Hola, Ensamblador... que rico... ¿no puedes usar algún microcontrolador tipo arduino para poder programar en C?
Respecto a las colas FIFO, tener el procesador en estado de latencia activa es un error, debería tener un modo de latencia pasiva, en el cual la llamada de una interrupción (como buffer con datos) pudiera cederle el control a la función de lectura. Hay diversas formas de implementar tal cosa, depende de la arquitectura del microcontrolador o procesador que estés usando. (desconozco si hay alguno que no tenga manejo de interrupciones).
Importante es el tamaño del buffer de entrada y el tamaño de la memoria donde almacenar la información. Si usas programación paralela hay funciones como el IProbe que te permite de manera asincrona comprobar si en la cola de datos hay algún mensaje en espera del buffer de la cola. (Librerías MPI), bueno... igual nada de esto que te indico te vale porque no sé que procesador o uprocesador vas a usar.
Pero si te ha valido para obtener una idea... me alegro de ello.
Un saludo
Lo de las FIFO... no sé en qué estaba pensando (un monstruo de Frankenstein grapando una ALF con un Disney Sound Source). Fue un error grave intentando distanciarme del diseño original e intentar hacer el mío propio sin siquiera considerar los costes del cambio. Error de novato. Desaparecerán de la siguiente versión por algo más ortodoxo. He aprendido mucho desde entonces y seguiré haciéndolo para mejorar mis proyectos.
En realidad no programo en ensamblador: el ensamblado es manual. Introduzco el código máquina usando el comando .S<dirección> y luego byte a byte. La matriz que sale en el monitor es el programa de prueba. Al nivel sobre el que programo no necesito lenguajes de alto nivel.
Saludos