This commit is contained in:
Jeremy FLEURY
2019-07-17 11:51:13 +02:00
parent 748d10f4f3
commit 45e980b4e3
65 changed files with 6601 additions and 18 deletions

View File

@@ -0,0 +1,172 @@
.name "Oh, You Fork my TRALALA ..."
.comment "HMMMM, my ding-ding-dong !!"
# LD : charge la valeur du 1er param dans le registre
# ST : stocke la valeur du registre vers le second paramètre.
# ADD : Additionne les 2 premiers registres, et met le résultat dans le 3eme.
# SUB : Soustrait les 2 premiers registres, et met le résultat dans le 3eme.
# AND : Applique un & (ET bit-a-bit) sur les 2 premiers registres, et met le
# résultat dans le 3eme.
# OR : Applique un OU (bit-a-bit) sur les 2 premiers registres, et met le
#résultat dans le troisième.
# XOR : Fait un OU exclusif bit a bit (c'est comme un OU normal, mais 1^1 = 0)
# ZJMP : saute a l'adresse si le carry est a 1.
# LDI : additionne les 2 premiers, traite ca comme une adresse, y lit une valeur
# de la taille dun registre et la met dans le 3eme.
# STI : additionne les 2 derniers, utilise cette somme comme une adresse ou
# sera copiee la valeur du 1er param
# FORK : Crée un nouveau processus, qui hérite des diérents états de son père,
# à part son PC, qui est mis à (PC + (1er paramètre % IDX_MOD)).
# LLD : similaire a ld sans la restriction de IDX_MOD (ici 512) (a confirmer)
# LLDI : Pareil que ldi, mais napplique aucun modulo aux adresses.
# LFORK : Pareil quun fork sans modulo à l'adresse.
# AFF : affiche sur la sortie standard le char ASCII
entry:
st r1, 6
st r1, r3
live %42
fork %:hanibalsmith
zjmp %:move1
hanibalsmith:
live %42
st r15, -50
st r15, -64
st r15, -78
st r15, -92
st r15, -106
st r15, -120
st r15, -134
st r15, -148
st r15, -162
st r15, -176
st r15, -190
st r15, -204
st r15, -218
st r15, -232
st r15, -246
st r15, -260
st r15, -274
st r15, -288
st r15, -302
st r15, -318
st r15, -332
st r15, -346
st r15, -360
st r15, -374
st r15, -388
st r15, -402
st r15, -416
st r15, -430
st r15, -444
st r15, -458
st r15, -472
st r15, -486
st r15, -500
st r16, 1
live %42
fork %:hanibalsmith
zjmp %:hanibalsmith
forking:
live %898
fork %:move2
live %1892
fork %:move2
live %4024
fork %:move2
live %232
fork %:move2
move1:
st r1, 6
live %5
fork %:move1
zjmp %9
move2:
st r1, 6
live %42
fork %:move2
zjmp %1
move3:
st r1, 6
live %42
fork %:move3
zjmp %2
move4:
st r1, 6
live %7
fork %:move4
zjmp %3
move5:
st r1, 6
live %1
fork %:move5
zjmp %4
hanibalsmith2:
live %512
st r14, 1
st r14, -203
st r14, -406
st r14, -609
st r14, -803
st r14, -1006
st r14, -1209
st r14, -1403
st r14, -1606
st r14, -1809
st r14, -2003
st r14, -2206
st r14, -2409
st r14, -2603
st r14, -2806
st r14, -3009
st r14, -3203
st r14, -3406
st r14, -3609
st r14, -3803
st r14, -4006
st r14, -4209
st r14, -4403
st r14, -4606
st r14, -4809
st r14, -5003
st r14, -5206
st r14, -5409
st r14, -5603
st r14, -5806
st r14, -6009
st r14, -6203
st r14, -6406
st r14, -6609
st r14, -6803
st r14, -7006
st r14, -7209
st r14, -7403
st r14, -7606
st r14, -7809
st r14, -8003
st r1, 6
live %1
zjmp %:hanibalsmith2
fork %:hanibalsmith2