Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[CIL] Hello world commenté !
Auteur Message
Répondre en citant
Message [CIL] Hello world commenté ! 
Bonjour,
peut de monde connaît ce langage qui est complexe, en réalité, tout mes programmes sont en MSIL compilé (le C# donne du MSIL (ou IL ou encore CIL, c'est la même chose)).
Ce language est complexe, c'est pour cela qu'il n'est pas très utilisé et également pour ça que tout est commenté et/ou expliqué dans mon code.

Code:
[lang=cil]/* On charge la "mscorlib", c'est a dire le framework */
.assembly extern mscorlib {}
// L'assembly du programme est obligatoire, sinon le programme n'est pas reconnu.
.assembly Hello {}

  /* La fonction main, si c'est le point d'entrée il faut qu'il soit statique. */
.method static int32 Main()
{
  // Cela dis que c'est le point d'entrée
  .entrypoint
  // 1 seul élément maximum dans la pile.
  .maxstack 1
  // On met le texte "Hello world..." dans la pile
  ldstr "Hello World !\nBienvenu dans le monde du CIL, trés différent du C#."

  /*
    Et on l'écrit a la suite ([mscorlib] veut dire dans l'assembly mscorlib et System.Console::WriteLine(string)
    veut dire que l'on appelle cette fonction avec comme argument du texte).
    On utilise la pile pour les arguments.
  */
  call void [mscorlib]System.Console::WriteLine(string)

  // On fait la même chose mais à la suite.
  ldstr "Appuyez sur une touche pour continuer."
  call void [mscorlib]System.Console::Write(string)

  // On attend que l'utilisateur appuie sur une touche
  // Cela alloue un int32 (nombre) qui contient le caractère correspondant à la touche appuyée.
  call int32 [mscorlib]System.Console::Read()
  // On enleve le int32 allué.
  pop
  // On peut définir si on a envie l'errorlevel
  // (Charger le nombre 0)
  ldc.i4 0
  // Que l'on envoie en errorlevel.
  ret
}


Son équivalent en C# :
Code:
[lang=csharp]using System;

class Program
{
    static int Main()
    {
       Console.WriteLine("Hello World !\nBienvenu dans le monde du CIL, trés différent du C#.");
       Console.Write("Appuyez sur une touche pour continuer.");
       Console.Read();
       return 0;
}
Ce qui est tout de suite plus clair.

Mais le CIL à des avantages par rapport au C# :
Parfois plus rapide (ou équivalent)
Plus compact : 2ko minimum contre 4ko pour le C#.
Plus de possibilités Very Happy




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Publicité 
PublicitéSupprimer les publicités ?


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch