En términos de conjunto de instrucciones y simplicidad de la emulación. Me gustaría implementar una CPU virtual y pensé por qué no emular una existente, para poder compilar código C en ella.¿Cuál es la CPU más pequeña y simple para la que GCC puede compilar?
Respuesta
Moxie es un gran objetivo, ya que fue diseñado específicamente para ser un objetivo ideal para GCC. Soy el autor y me complacerá responder cualquier pregunta. verde en moxielogic punto com
¿Hay documentación de referencia sobre la arquitectura y el conjunto de instrucciones? –
Lo que existe en http://moxielogic.org/wiki ... aunque me llevará un poco deshacer el daño de los vándalos wiki. Vuelve a consultar pronto. –
Gracias, se ve exactamente como algo que tenía en mente. –
Posiblemente el AVR ATTiny45 o chip AVR similar.
Tal vez algo de la serie Ti MSP430.
ZPU (un procesador de 32 bits dirigido FPGA) es muy pequeño.
Esto probablemente no es una pregunta infrecuente; Espero que la mayoría de los kits de herramientas de simulación de CPU/máquina incluyan una simple implementación de ejemplo, pero otros no.
No he trabajado con él, pero Knuth's MMIX architecture (wikipedia) parece interesante. Al igual que Moxie, fue creado para "ilustrar aspectos de la programación a nivel de máquina" y es más simple que las máquinas reales. Es compatible con GCC y parece haber múltiples simuladores existentes que podrían usarse como referencia en sus esfuerzos.
- 1. puede gcc cross compilar para diferentes CPU?
- 2. ¿Cuál es la diferencia entre -ggdb gcc gcc -g y
- 3. ¿Cuál es la unidad de trabajo más pequeña que es sensata para paralelizar con los actores?
- 4. ¿Cuál es la implementación más simple de RTTI para C++?
- 5. ¿Cuál es la diferencia entre make y gcc?
- 6. fuente en 'GraphicsPath.AddString' es más pequeña que la fuente habitual
- 7. ¿Cuál es la mejor fuente pequeña para eclipse?
- 8. ¿Cómo compilar javadoc de fuentes de la manera más simple?
- 9. ¿La forma más rápida de compilar una aplicación Symbian simple?
- 10. ¿Receta para compilar binutils y gcc juntos?
- 11. Encontrar la ventana más pequeña
- 12. Cuál es la solicitud de datos http y https más pequeña posible
- 13. La diferencia más pequeña entre 2 ángulos
- 14. No se puede compilar C++ con gcc
- 15. ¿Cómo puedo comparar dos cadenas en Java y definir cuál de ellas es más pequeña que la otra alfabéticamente?
- 16. ¿Cuál es la secuencia de caracteres de ataque de inyección SQL más pequeña posible?
- 17. ¿Cómo CMake elige gcc yg ++ para compilar?
- 18. ICC vs GCC - Optimización y arquitectura de la CPU
- 19. ¿Cuál es la forma más simple de usar SSH Python?
- 20. ¿Cuál es la diferencia entre arm-eabi-gcc y arm-elf-gcc?
- 21. ¿Cuál es el algoritmo de análisis más simple que puede analizar el código C?
- 22. ¿Cuál es la consulta SQL más simple para encontrar el segundo valor más grande?
- 23. Azure: 2 veces más pequeña o una pequeña instancia pequeña
- 24. QSplitter: ¿Cómo hacer que la segunda columna sea más pequeña?
- 25. ¿La diferencia más pequeña entre dos ángulos?
- 26. ¿Cuál es la diferencia entre --host y --target en gcc?
- 27. ¿Cuál es la diferencia entre g ++ y gcc?
- 28. ¿Cuál es la expresión regular más simple para validar correos electrónicos para no aceptarlos a ciegas?
- 29. GCC -g vs -g3 Bandera GDB: ¿Cuál es la diferencia?
- 30. arm-linux-androideabi-gcc no puede crear un archivo ejecutable - compilar ffmpeg para dispositivos android armeabi
Otra ruta es buscar backends en arquitecturas de conjunto de instrucciones individuales: https://stackoverflow.com/questions/3711443/minimal-instruction-set-to-solve-any-problem-with-a-computer-program parece haber hecho un backend clang para subleq: https://stackoverflow.com/questions/3711443/minimal-instruction-set-to-solve-any-problem-with-a-computer-program/38523869#38523869 –