Petite synth`ese Proc´edure, pile et pointeur de pile La couche d’assemblage Langages de haut niveau
Architecture `a Jeu d’instructions (ISA)
Code instruction Nom Mots Description
0x0c00 END 1 Fin du programme
0x1000 LDAi 2 Charge la valeur de l’op´erande dans le registre A. [A:=op´erande]
0x1400 LDAd 2 Charge la valeur dans la RAM point´ee par l’op´erande dans le registre A. [A:=Mem[op´erande]].
0x1c00 STA 2 Sauvegarde en m´emoire la valeur du registre A `a l’adresse donn´ee par l’op´erande. [Mem[op´erande]:= A]
0x2000 LDBi 2 Charge la valeur de l’op´erande dans le registre B. [B:=op´erande]
0x2400 LDBd 2 Charge la valeur dans la RAM point´ee par l’op´erande dans le registre B. [B:=Mem[op´erande]].
0x2c00 STB 2 Sauvegarde en m´emoire la valeur du registre B `a l’adresse donn´ee par l’op´erande. [Mem[op´erande]:= B]
0x3000 ADDA 1 Ajoute le contenu des registres A et B et m´emorise le r´esultat dans le registre A. [A:=A+B]
0x3400 ADDB 1 Ajoute le contenu des registres A et B et m´emorise le r´esultat dans le registre B. [B:=A+B]
0x3800 SUBA 1 Soutstrait le contenu des registres A et B et m´emorise le r´esultat dans le registre A. [A:=A-B]
0x3c00 SUBB 1 Soutstrait le contenu des registres A et B et m´emorise le r´esultat dans le registre B. [B:=A-B]
0x4000 MULA 1 Multiplie le contenu des registres A et B et m´emorise le r´esultat dans le registre A. [A:=AxB]
0x4400 MULB 1 Multiplie le contenu des registres A et B et m´emorise le r´esultat dans le registre B. [B:=AxB]
0x4800 DIVA 1 Divise le contenu du registre A par deux et m´emorise le r´esultat dans A. [A:=A/2]
0x5000 ANDA 1 Calcule un ET logique entre le contenu des registres A et B et m´emorise le r´esultat dans A. [A:=A&B]
0x5400 ANDB 1 Calcule un ET logique entre le contenu des registres A et B et m´emorise le r´esultat dans B. [B:=A&B]
0x5800 ORA 1 Calcule un OU logique entre le contenu des registres A et B et m´emorise le r´esultat dans A. [A:=A—B]
0x5c00 ORB 1 Calcule un OU logique entre le contenu des registres A et B et m´emorise le r´esultat dans B. [B:=A—B]
0x6000 NOTA 1 M´emorise dans A la n´egation de A. [A:=!A]
0x6400 NOTB 1 M´emorise dans B la n´egation de B. [B:=!B]
0x7000 JMP 2 Saute inconditionnellement `a l’adresse donn´ee par l’op´erande. [PC:=operande]
0x7400 JZA 2 Saute `a l’adresse donn´ee par l’op´erande si le contenu du registre A est nul. [PC:=operande si A=0]
0x7800 JZB 2 Saute `a l’adresse donn´ee par l’op´erande si le contenu du registre B est nul. [PC := operande si B=0]
Architecture J´er´emy Fix