summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--samples/rechcara.asm26
-rw-r--r--samples/recherche.asm24
-rw-r--r--samples/sommeentiers.asm28
3 files changed, 78 insertions, 0 deletions
diff --git a/samples/rechcara.asm b/samples/rechcara.asm
new file mode 100644
index 0000000..c4747c3
--- /dev/null
+++ b/samples/rechcara.asm
@@ -0,0 +1,26 @@
+;Recherche du caractere 0DH dans une chaine de caracteres
+
+.DATA
+CHAINE DS "ceci est un test de chaine de caractere de quatre vingt caracteres akdijhgffddss"
+MSGPASTROUVE DS "Le caractere 0DH n'a pas été trouvé dans la chaine"
+MSGTROUVE DS "Le caractere 0DH a été trouvé dans la chaine"
+ZERO DB 0
+
+.TEXT
+
+.START
+
+ MOV R1,ZERO;
+ MOV R3,80;
+ MOV R2,0x0D;
+ MOV R5,ZERO;
+BOUCLE: MOV R4,CHAINE[R1];
+ JE R4,R2,TROUVE;
+ ADD R1,R1,1;
+ SUB R3,R3,1;
+ JNE R3 R5 BOUCLE;
+ MOV, [0xffffff04],MSGPASTROUVE;
+ JMP FIN;
+TROUVE: MOV, [0xffffff04],MSGTROUVE;
+FIN: HALT
+ \ No newline at end of file
diff --git a/samples/recherche.asm b/samples/recherche.asm
new file mode 100644
index 0000000..a99e353
--- /dev/null
+++ b/samples/recherche.asm
@@ -0,0 +1,24 @@
+.DATA
+TAB1 DS "efghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxyw"
+TAB2 DS "aafghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxy"
+MSGTROUVE DS "TAB1 et TAB2 ont un élément en commun"
+MSGPASTROUVE DS "TAB1 et TAB2 n'ont pas d'élément en commun"
+ZERO DB 0
+
+.TEXT
+.START
+ MOV R5, 101 ;R5 est le compteur
+ MOV R1, TAB1 ;TAB1 est un tableau de 100 octets de type char
+ MOV R2, TAB2 ;TAB2 est un tableau de 100 octets de type char
+BOUCLE: SUB R5 R5 1
+ MOV R6, [R1]
+ MOV R7, [R2] ;decrementation du compteur
+ JE R6 R7 TROUVE ;test si TAB1[i]=TAB2[i] =>jmp trouvé
+ ADD R1 R1 1 ;incrementation de R1 (element suivant du tableau TAB1)
+ ADD R2 R1 1
+ MOV R8, ZERO ;incrementation de R2 (element suivant du tableau TAB2)
+ JNE R5 R8 BOUCLE ;si compteur !=0 on refait la boucle
+ MOV, [0xffffff04], MSGPASTROUVE ;il n'y a pas de d'éléments identiques a une position i => on place dans R3 le msg a afficher
+ JMP FIN ;jmp a l'affichage
+TROUVE: MOV, [0xffffff04], MSGTROUVE ;il y a une paire d'éléments identiques => on place dans R3 le msg a afficher
+FIN: HALT \ No newline at end of file
diff --git a/samples/sommeentiers.asm b/samples/sommeentiers.asm
new file mode 100644
index 0000000..2e533a7
--- /dev/null
+++ b/samples/sommeentiers.asm
@@ -0,0 +1,28 @@
+;Ce programme va calculer la somme des 97 premiers entiers
+.DATA
+MSG DS "La somme des "
+MSG2 DS " premiers entiers est égale à"
+N DB 97
+ZERO DB 0
+SOMME DB 4
+
+.TEXT
+
+.START
+ MOV R5,[N] ;init du compteur
+ MOV R1,0 ;init de R1
+ MOV R2,0 ;init de R2
+
+BOUCLE: ADD R1,R1,R5 ; R1=R1+R5
+ AND R3,Fl,0x00000001 ;
+ ADD R2,R2,R3 ; R2=R2+CF
+ SUB R5,R5,1 ; DEC R5
+ MOV R6,ZERO ;
+ JNE R5,R6,BOUCLE ; si R5!=0 on refait la boucle
+ MOV, [SOMME], R1 ; ;
+ MOV, [SOMME+2], R2 ;on place la valeur de la somme
+ MOV, [0xffffff04], MSG ;on affiche le msg et la somme
+ MOV, [0xffffff06], SOMME ;
+ MOV, [0xffffff06], SOMME+2 ;
+ MOV, [0xffffff04], MSG2 ;
+ HALT \ No newline at end of file