BASM32 : Ce programme est un assembleur 32 bits qui genere des fichiers executables pour Windows.
Cet assembleur est en cours de developpement.
Source / Exemple :
comme tous les assembleur le syntaxe est presque le meme on a:
les operateurs:
================
+,-,*,/,
shl,shr,xor,or,and
Definition de constante:
==========================
il se peut faire par la directive "EQU" ou par l'operateur "="
avec "EQU" on peut definir un constante entiere ou operand dans une instruction,
ex.
a1 equ 0
a2 equ [ebp+4]
a3 equ symbole
pour "=" on peut definir seulement une constante entiere,
ex.
b1 = 5
b2 = b1*3
Les constantes numeriques:
===========================
on peut les ecrire suivant 4 bases:
200 : decimale
16h : hexadecimale
777o: octale
101b: binaire
les directives:
================
+ DB, DW, DD : definir de donnes (byte,word,dword)
+ ORG : mettre la pointeur segment a la position voulu.
+ INCLUDE : ajouter un fichier source a l'analyse.
+ extern, public : definir des symboles externe ou public.
+ IMPORT <fonc>,lib:"..." : importer une fonction d'une librairie
+ EXPORT : Exporter une fonction
+ ALIGN <val> : aligner le segment courant suivant la valeur donne.
+ PROC ... ENDP: Definir une procedure
ex.
PROC addition, a:DWORD, b:DWORD
Local d1:DWORD ; Variable locale
mov eax, a
add eax, b
return ; n'utiliser pas RET dans le ca ou vous avez des arguments ou des variables locales
ENDP
+ INVOKE : Appeler une procedure ayant des paramatres
ex1.
INVOKE MessageBoxA, NIL, Message, Title, MB_OK+MB_ICONINFORMATION
ex2.
INVOKE MessageBoxA(NIL, Message, Title, MB_OK+MB_ICONINFORMATION)
les 2 exemples precedent sont simulaires genere le meme code qui est le suivant:
PUSH MB_OK+MB_ICONINFORMATION
PUSH Title
PUSH Message
PUSH NIL
CALL MessageBoxA
Les modules:
=============
.CODE : selectionne le segment code comme segment courant.
.DATA : selectionne le segment data.
.APPTYPE <type>: choisir le type d'application windows(comme pour delphi) "CONSOLE" ou "GUI"
.ENTRY "<Nom fonction> : Mettre l'entry point de l'executable a l'entree de la fonction
.FILENAME "<Nom fichier>" : remplacer le nom de fichier executable par <Nom fichier>
.DOSSTUB : modifie l'entete DOS du fichier de sortie avec l'entete voulu.
.ENTRY <Label> : point d'entree.
.LIBRARY
.RELOCATION : ecriture la section de relocation dans le fichier de sortie.
.IMAGEBASE : modifie l'image de base du fichier executable.
USAGE: Changer les Extentions des fichiers Exec et executez le fichier Include\Import.bat.
Conclusion :
vous pouvez trouvez une mise a jour a l'adresse suivante:
http://www.basssem.kokoom.com/
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.