Convertir vb en asm

Fermé
electra - 28 mai 2009 à 18:24
kryoportail Messages postés 222 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 - 28 mai 2009 à 19:14
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

----------------------------------------------------------------------------------------------------------------------------
A voir également:

2 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
28 mai 2009 à 18:26
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
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
kryoportail Messages postés 222 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 125
28 mai 2009 à 19:14
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