Simulation d'un processeur

Soyez le premier à donner votre avis sur cette source.

Vue 9 143 fois - Téléchargée 940 fois

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

Ajouter un commentaire Commentaires
Messages postés
483
Date d'inscription
mardi 10 juillet 2001
Statut
Membre
Dernière intervention
12 juillet 2006

Alors la Sibio je te dit un grand BRAVO !
C'est excellent ce que ta fait alors la vraiment bravo ! Bon tu aurai pu faire un autre langage... inventé un langage ça aurait été peut être plus intéressant....
Allez sur ce petit bon développement
a+
Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003

Enfin... et j'ai bien cru que j'allais pas pouvoir uploader le zip : Un message d'erreur d'execution s'affichait de manière récurrente lorsque je voulais accéder à VBFrance... mais c'est résolu apparemment...

(: Sibo ;)
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Ta source me rappel une des miennes, je ne sait pas si tu t'en es inspiré ?
Si oui c'est bien, sinon vas faire un tour sur la source 6540 et 6555 !
(au programme emulateur,assembleur,desassembleur,debugger,doc...)

J'attend le zip pour voir ton travail

@+
Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003

Yep !! J'avais oublié... Et il va falloir encore attendre 24 heures. Aujourd'hui, ça été la course, et c'est pas fini... Demain, c'est à dire le 12-12-2002, c'est promis, je la met enfin (si seulement j'avais internet chez moi, ça faciliterait grandement les choses lol)...

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.