Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3638 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Les machines à registre ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Les machines à registre ...

n°390811
get@fix
Posté le 12-05-2003 à 19:04:54  profilanswer
 

Dans le cadre d'un projet, on m'a demandé de créer un interpréteur de commande selon le même principe que les machines à registre et on m'a aussi demandé une serie d'algorithmes simple executables sur cette machine ... J'ai été capable de creer l'interpreteur et les premiers algo mais là je commence à avoir mal à la tête pour les suivants ... si quelqu'un pouvait m'aider ...

  • mots clefs :


initi : Les lignes qui suivent sont des registres que  
        l'utilisateur doit renseigner
 
trava : Les lignes qui suivent sont des registres de travail
 
resul : Les lignes qui suivent sont des registres de résulat
 
codex : Les lignes qui suivent sont des lignes de code


  • Commandes :


k :nul registre => registre:=0;
                   k:=k+1;
 
k :dec registre,etiquette  => registre:=registre-1;
                              k:=etiquette;
 
k :inc registre => registre:=registre+1;
                   k:=k+1;
 
k :jump etiquette => k:=etiquette;
 
k :halt => k:=$+1;


 
Ce que j'ai réussi à programmer :

  • Addition (avec perte des opérandes)

initi
R1    
R2    
resul
R3    
codex
      nul  R3          
2    :dec  R1   ,5    
      inc  R3          
      jump       2    
5    :dec  R2   ,8    
      inc  R3          
      jump       5    
8    :halt            


 

  • Addition (sans perte des opérandes)

initi
A    
B    
trava
W    
resul
S    
codex
      nul  S          
      nul  W          
3    :dec  A    ,7    
      inc  S          
      inc  W    ,10    
      jump       3    
7    :dec  W    ,10    
      inc  A          
      jump       7    
10   :dec  B    ,14    
      inc  S          
      inc  W          
      jump       10    
14   :dec  W    ,17    
      inc  B          
      jump       14    
17   :halt            


 

  • Multiplication

initi
A    
B    
trava
W    
resul
S    
codex
      nul  S          
      nul  W          
3    :dec  A    ,6    
      inc  W          
      jump       3    
6    :dec  B    ,11    
7    :dec  W    ,3    
      inc  A          
      inc  S          
      jump       7    
11   :halt            


 

  • Division

initi
A    
B    
trava
C    
resul
Q    
R    
codex
      nul  C          
      nul  Q          
      nul  R          
      dec  B    ,17    
      inc  B          
      jump       8    
7    :inc  Q          
8    :dec  B    ,11    
      inc  C          
      jump       8    
11   :dec  C    ,7    
      dec  A    ,14    
      inc  B          
      jump       11    
14   :dec  B    ,17    
      inc  R          
      jump       14    
17   :halt            


 

  • Exponentiation


initi
X    
E    
trava
S    
W    
X1    
X2    
resul
Y    
codex
      nul  X1          
      nul  X2          
      nul  Y          
      inc  Y          
bcl  :dec  E    ,fin  
1    :dec  X    ,2    
      inc  X1          
      inc  X2          
      jump       1    
2    :nul  S          
      nul  W          
3    :dec  Y    ,6    
      inc  W          
      jump       3    
6    :dec  X1   ,11    
7    :dec  W    ,3    
      inc  Y          
      inc  S          
      jump       7    
11   :dec  S    ,14    
      inc  Y          
      jump       11    
14   :dec  X2   ,bcl  
      inc  X          
      jump       14    
fin  :halt            


 
Ce que je n'arrive pas à faire : calcul du PGCD et Suite de Fibonacci ... Donc si quelqu'un peu m'aider ...


Message édité par get@fix le 12-05-2003 à 19:05:46
mood
Publicité
Posté le 12-05-2003 à 19:04:54  profilanswer
 

n°392520
get@fix
Posté le 13-05-2003 à 18:40:04  profilanswer
 

[:atreyu]

n°392633
Ace17
Posté le 13-05-2003 à 21:06:49  profilanswer
 

pour le pgcd tu fais le bon vieil algo d'Euclide
pour fibonnacci... tu fais une boucle toute bete et tu conserves en mémoire la valeur des deux termes précédents

n°392643
Ace17
Posté le 13-05-2003 à 21:16:35  profilanswer
 

Bon allez, je détaille...  ;)  
 
Algo d'euclide : Tu as deux nombres a et b
 
a = b * q + r
Tout ce qui divise a et b divise a et b*q et par conséquent r. De meme, tout ce qui divise b et r divise b*q et r et par conséquent a. Donc pgcd(a, b) = pgcd(b, r)
 
b = r * q1 + r1
pgcd(b, r) = pgcd(r, r1)
et ainsi de suite...
 
Le dernier reste non nul est le pgcd.


Message édité par Ace17 le 13-05-2003 à 21:22:46
n°392645
ITM
Avatar peint à la main
Posté le 13-05-2003 à 21:23:06  profilanswer
 

Je me dis parfois que ce langage est une torture :/

n°392646
Ace17
Posté le 13-05-2003 à 21:25:16  profilanswer
 

C'est clair que ce n'est pas le plus agréable a utiliser...

n°392647
ITM
Avatar peint à la main
Posté le 13-05-2003 à 21:26:30  profilanswer
 

Mouais, mais c'est formateur... Bon, j'ai une kholle de maths demain moi  :sweat:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Les machines à registre ...

 

Sujets relatifs
[.NET][COM/CORBA]Interragir avec des machines Linuxlire dans la base de registre !
Lire et écrire des REG_MULTI_SZ dans le registre[REGISTRE] Imprimante par défaut ??
aarrrfff !! modif sur base de registre 98se[BASIC] Exporter une donnée de la base de registre
recuperer une clé ds la base de registre a l aide d un batch :/A lire...les bases des registre ?
Test de clé de registre sous vbprogrammation de demos sur anciennes machines
Plus de sujets relatifs à : Les machines à registre ...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)