Simulation d'un processeur

Description

Voici la description de la source, qui est enfin là !!
Et bien... ce programme simule les opérations effectuées par un processeur. Ici, c'est un processeur rudimentaire, n'opérant que sur des entiers. Pour pouvoir effectué cette simulation, il faut envoyer au processeur virtuel les instructions qu'il doit effectuer. C'est pour cela que le programme reconnaît un mini-langage assembleur, qui est 'assembler' pour pouvoir être exécuter. Les instructions gérées par le mini-langage sont détaillées dans un fichier 'lisez-moi.txt'. Il n'est pas bien sorcier à comprendre, même si vous n'avez pas de notions d'assembleur (la preuve, c'est que j'ai réussi à le comprendre, et à créer 4 des 5 exemples fournis avec le programme). Les deux premiers exemples sont commentés en détail (c'est à dire presque toutes les lignes), mais les autres... ils sont un peu plus compliquez (et long), et j'ai pas eu le courage.

Composition du programme :
- Une interface rudimentaire permettant l'édition, le chargement (pas l'enregistrement) et l'execution de code dans le mini-langage. (Il n'y a pas d'option d'enregistrement des fichiers, mais il ne tiendra qu'à vous de l'ajouter) ;
- un module 'assembleur', permettant d'assembler le code ;
- un module 'simulation' permettant d'executer le code.

Intérêt de la source (liste non exhaustive) :
- Création, génération et gestion d'erreurs, et comment utiliser une erreur comme exception d'interruption d'execution ;
- Interprétation d'un langage ou d'une expression, à travers le module 'Assembleur'
- Utilisation de tables de hâchage pour optimiser une recherche. La table que j'utilise est spécialisée pour un type de donnée, mais peut être étendue à d'autres types en modifiant les critères de recherche, et le format de stockage.

Source / Exemple :


'Voilà les mots que certains de vous attendent depuis deux jours maintenant :

'In The ZIP !!!

'Et encore désolé pour l'attente...

Conclusion :


Pour ceux qui connaissent un peu l'assembleur, vous pourrez remarquer que certaines instructions, comme 'mov' ne sont pas gérées par le mini-langage. J'aurais pu l'ajouter, c'est vrai, et je le ferais peut-être. Mais on peut très bien s'en passer, (les exemples en sont la preuve) en utilisant l'instruction décrite dans le fichier "Lisez-moi".

Ce programme est en grande partie (modules 'assembleur' et 'simulateur') une adaptation d'un programme en langage "CamL" (rien à voir avec la marque de cigarettes lol ;), et croyez moi, le programme est beaucoup plus facile à écrire dans ce langage qu'en VB (notamment grâce au polymorphisme aisément implémentable d'une grande partie des fonctions dans ce langage, ce qui facilite la gestion des données, et un typage on ne peut plus étendu (pour cause, tout, dans ce langage, est basé sur le typage ;)

(: Sibo ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.