Web Assembly Simulator
Un IDE d'assembleur dans le navigateur
Un IDE assembleur accessible dans le navigateur pour écrire, éxécuter et déboguer du code bas niveau sans installation locale.
Technologies
Points clés
- Exécution pas a pas des instructions avec suivi visuel.
- Visualisation en temps reel des registres et de la memoire.
- Approche basée sur l'achitecture BATPU-2 de Mattbatwings.
Implémentation
- Interface React/TypeScript pour la partie éditeur et controls.
- Simulation optimisée pour des performances fluides en navigateur.
- Architecture modulaire pour séparer parsing, exécution et affichage.
Résultats
- Comprendre concrètement le fonctionnement d'un programme assembleur.
- Facilite les démonstrations techniques en formation ou auto-apprentissage.
Détails
Qu'est-ce qu'Assembly IDE ?
Un simulateur d'assembleur interactif qui s'exécute entièrement dans le navigateur. Il permet d'écrire, d'exécuter et de déboguer du code assembleur avec une interface visuelle intuitive, sans aucune installation.
Fonctionnalités principales
- Éditeur de code intégré avec coloration syntaxique et autocomplétion.
- Exécution pas à pas ou continue, avec visualisation en temps réel des registres et de la mémoire.
- Interfaces périphériques : écran pixel 32x32, affichage texte, affichage numérique (signé/non signé), gamepad et générateur aléatoire.
- Système de labels et d'alias (directive DEFINE) pour structurer et simplifier le code.
- Gestion d'erreurs détaillée et exemples de code fournis pour démarrer rapidement.
Syntaxe assembleur supportée
Le simulateur supporte un jeu d'instructions complet : LDI (chargement immédiat), STR (stockage), CMP (comparaison), INC/DEC (incrémentation), JMP (saut), BRH (branchement conditionnel) et HLT (arrêt). Les sauts conditionnels s'appuient sur un système de labels, et les adresses mémoire spéciales (240-255) pilotent les périphériques.
Stack technique
Le projet est construit avec React 19 et TypeScript, bundlé via Vite, stylisé avec Tailwind CSS et maintenu avec ESLint.