Convertir vb en asm

electra -  
kryoportail Messages postés 230 Statut Membre -
Bonjour,

Je débute en ASM et j'aimerais convertir le code ci-dessous VB en ASM, quelqu'un pourrait-il me donner un coup de main ? Le code ci-dessous est simple et une fois que j'aurais le même code converti en ASM, je pourrais mieux voir la différence. Le code ci-dessous permet avec un seul clic du bouton d'afficher Nom 1, Nom 2, etc... dans une Textbox et ce en boucle. C'est juste un exercice qui me permettra de mieux comprendre ASM, faut bien commencer par quelque chose :o)
Merci par avance.

----------------------------------------------------------------------------------------------------------------------------
Private Sub Command1_Click()

Nom1 = "Nom 1"
Nom2 = "Nom 2"
Nom3 = "Nom 3"
Nom4 = "Nom 4"
Nom5 = "Nom 5"

If Text1.Text = Nom1 Then
Text1.Text = Nom2
ElseIf Text1.Text = Nom2 Then
Text1.Text = Nom3
ElseIf Text1.Text = Nom3 Then
Text1.Text = Nom4
ElseIf Text1.Text = Nom4 Then
Text1.Text = Nom5
ElseIf Text1.Text = Nom5 Then
Text1.Text = Nom1

End If

End Sub

Private Sub Form_Load()
Text1.Text = "Nom 1"
End Sub

----------------------------------------------------------------------------------------------------------------------------
Configuration: Windows XP Pro SP3, Internet Explorer 8.0

2 réponses

  1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    avec ceci, tu vas créer du code asm qui fera appel aux librairies windows...

    je t'aurai bien dit d'utiliser un désassembleur, mais tu n'aurai qu'un code asm utilisant les librairies VB...

    je te conseilles de faire un tour sur le site:https://codes-sources.commentcamarche.net/

    l'assembleur est un langage très dur, et peu utilisé. si tu veux faire de la programmation bas niveau, et qui soit utile, mets toi plutot au C ou au C++ ...
    0
    1. electra
       
      Salut Nabla's,

      Je me suis mal expliqué, je pense, je ne veux pas convertir le code en lui-même, mais avoir le même code écrit en ASM.

      Genre:

      .if eax==IDC_BTN1

      MOV EAX,offset nom1
      MOV EDI,offset nom1
      cmp EAX,EDI
      je Nom1D
      jmp fin

      Nom1D:
      invoke SetDlgItemText, hWin, IDC_EDT1, addr nom2
      ;.endif
      jmp fin

      MOV EAX,offset nom2
      MOV EDI,offset nom2
      cmp EAX,EDI
      je Nom2D
      jmp seriales3

      Nom2D:
      invoke SetDlgItemText, hWin, IDC_EDT1, addr nom3
      ;.endif
      jmp fin

      fin:
      .endif

      Je n'ai pas mis tout le code et il fonctionne plus ou moins, le problème ça fonctionne juste qu'une seul fois, donc Nom 1 devient Nom 2 et puis ça s'arrête quand je clic encore une fois sur le bouton. Bien sûr le code n'est sûrement pas correct et c'est ce que j'aimerais savoir comment ça marche :o)

      C'est juste pour comprendre comment fonctionne la condition IF en ASM

      Ha oui, je programme avec RADASM
      0
  2. kryoportail Messages postés 230 Statut Membre 125
     
    Salut,

    les if sont fait via je jne ja jna, etc....

    On dit que je jne ja jna sont des sauts conditionnels contrairement à jmp qui est un saut inconditionnel, car il saute quoi qu'il arrive à l'adresse indiquée...

    Exemple :
    je X: saut si égal
    jne Y: saut si différent (not equal)

    Si tu veux apprendre l'assembleur, commence par créer de petits programmes au lieu d'essayer de comprendre ce que fait vb..... car comme l' a dit "Nabla's".... VB utilise des fonctions qui lui sont propres situées en parti dans la bibliothèque vb6.dll elle même située dans le répertoire system32 de windows...

    Amicalement,
    S@M...
    http://kryoportail.ath.cx
    0