Basm32-assembleur win32

Description

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/

Codes Sources

A voir également

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.