/ README.md
README.md
1 ```Text 2 .-.-.-..-.,-. 3 | | | || . < 4 `-----'`-'`-' 5 ``` 6 7 # WBC - Wilrak0v ByteCode 8 WBC est un bytecode minimaliste qui est très léger et peut donc s'exécuter sur ESP32. 9 10 # Langage ASM 11 Voici le langage ASM que j'ai décidé d'implémenter. 12 ``` 13 | Opcodes | Opérandes | 14 |------------|-----------| 15 | Stack | | 16 |------------|-----------| 17 | push | value | 18 | pop | | 19 | pushk | ref | 20 | popk | | 21 | const | int, str | 22 |------------|-----------| 23 | Opérations | | 24 |------------|-----------| 25 | add | | 26 | sub | | 27 | mul | | 28 | div | | 29 | mod | | 30 | neg | | 31 |------------|-----------| 32 | RAM | | 33 |------------|-----------| 34 | store | index | 35 | load | index | 36 |------------|-----------| 37 | IO | | 38 |------------|-----------| 39 | echo | | 40 | read | | 41 |------------|-----------| 42 | Conditions | | 43 |------------|-----------| 44 | jmp | label | 45 | jb | label | 46 | js | label | 47 | jq | label | 48 ``` 49 Exemple 50 ```ASM 51 func young 52 const "Vous êtes mineur" ; définis une constante (id=1) 53 end 54 55 func adulte 56 const "Vous êtes majeur" ; définis une constant (id=1) 57 end 58 59 func old 60 const "Vous êtes retraité" ; définis une constante (id=1) 61 end 62 63 func print 64 pushk 1 65 echo 66 popk 1 67 end 68 69 const "Quel âge avez-vous ?\n" ; Définis une constante 70 pushk 0 ; push la référence de la constante sur la pile 71 echo ; affiche la constante 72 popk 1 ; supprime la référence de la pile 73 const 14 ; définis la constante pour l'âge au lieu d'un read 74 75 push 18 76 js young ; vérifie si l'âge est sous 18 ans 77 78 jb adulte ; vérifie si l'âge est au dessus de 18 ans 79 pop 80 81 push 65 82 jb old ; vérifie si on est retraité 83 pop 84 85 jmp print 86 ``` 87 **Sortie** 88 ``` 89 Quel âge aves-vous ? 90 Vous êtes mineur 91 ``` 92 93 # Contributeurs 94 Tous les contributeurs sont les bienvenues. 95 Pour ce faire, il vous suffit de faire un fork et d'ensuite proposer un(e) pull request :). 96 97 *wilrak0v, btw*