TP 12 - WebAssembly 2

was

was est un utilitaire de ligne de commande pour assembler des fichiers wasm. Il transforme les fichiers texte wat en fichiers binaires wasm.

La documentation de was est disponible a github

Utilisation de was

Pour installer was, vous devez:

  • Exécuter la commande
    npm install -g was
  • Cloner le github repository.
  • Entrer dans le dossier was de votre PC et en utilisant la ligne de commande, exécuter:
    npm install

Assembler un programme

Pour assembler un programme, utilisez la commande:

./was/assemble.js nom_du_fichier.wat

Pour exécuter cette commande sans erreurs, vous devez télécharger le repository dans le dossier ou se trouve aussi le programme .wat.

Cela va générer un programme nommé nom_du_fichier.wasm.

Exécuter un programme de Web Assembly

Pour exécuter un programme d'assemblage Web, utilisez la commande:

was run program.wasm

Définir une mémoire

Pour exécuter un programme de Web Assembly avec une mémoire, utilisez la commande suivante:

was run program.was -m 1:1

Ceci lancera le programme avec une mémoire de minimum 1 page et maximum 1 page.

Exercises

  1. Installez “was”. Montrer l'aide de “was”. (1p)
  2. Ecrivez un programme wat qui importe les fonctions readint et writeint à partir du module “io”. Utilisez les fonctions et lisez un numéro du clavier et affichez sa deuxième puissance. (1p)
  3. Désassemblez le programme précédent dans un fichier nommé program_disassemble.wat. Essayez de faire la même chose en utilisant les options –debug, –names et –fold. (note: assembler le fichier program.wat en utilisant l'option –debug). (1p)
  4. Écrivez un programme qui lit un caractère en minuscule du clavier et affiche son caractère majuscule. (1p)
  5. Ecrivez un programme qui importe une mémoire avec 1 page. En utilisant l'instruction data, ajoutez votre groupe à la mémoire à la position 0 suivi d'un 0 (\00). Utilisez la fonction writestr de la bibliothèque io pour imprimer votre nom. (1p)
  6. Ecrivez une fonction “afficher” qui fait la même chose que la fonction writestr. Elle obtient un paramètre, l'adresse où un string est situé dans la mémoire. (indice: commencez à la position initiale et écrivez des caractères de la mémoire jusqu'à ce que vous trouviez un 0) (2p)
  7. Écrivez un programme qui lit une adresse mémoire (sous forme de nombre), lit une chaîne à cette adresse mémoire (maximum 10 caractères) et imprime la chaîne à l'aide de la fonction de l'exercice précédent. (1p)
  8. Ecrivez une fonction de lecture qui fait la même chose que readstr. La fonction prend comme premier paramètre l'adresse mémoire où il doit lire la chaîne et un autre paramètre avec la longueur maximale de la chaîne. (2p)
alf/laboratoare/12.txt · Last modified: 2021/05/30 23:54 by diana.ghindaoanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0