Perso, l´assembleur je prefere lemettre dans un programme en C en inline : )
Sauf quand la norme est supernaze et te propose de taper 2 fois plus de caractères que pour un Visual C++(pour ne citer que lui), avec en bonus une prise de tête pour trouver où placer la bonne dizaine de caractères spéciaux à connaître, et un compilateur à la hauteur de la norme(cf. Dev-C++).
Bon, même avec le dernier, ce n´est pas supergrave, c´est juste ultrachiant(instruction la plus simple: __asm__("movl %eax, tmp\n");)
J´ai pas tenu longtemps quand il a fallu convertir des unités à moitié en assembleur conçues pour VC++.
JeanYvesYves
Ca y est, j´ai essayé tous les types 32 bits, aucun ne fonctionne. Ca commence à être léger relou.
Si tu veux, voici mon code assembly au complet, mais bon, il st spécifique à MAsm32:
. 386 ; minimum processor needed for 32 bit
. model flat, stdcall ; FLAT memory model & STDCALL calling
option casemap : none ; set code to case sensitive
;
- ###############################################
- ####################
; ---------------------------------------------
; main include file with equates and structures
; ---------------------------------------------
include \masm32\include\windows.inc
;
--------------------------------------------------
-----------
; In MASM32, each include file created by the L2INC.EXE utility
; has a matching library file. If you need functions from a
; specific library, you use BOTH the include file and library
; file for that library.
;
--------------------------------------------------
-----------
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
HelloWorld PROTO : DWORD,:DWORD
. code
start:
HelloWorld proc arg1 : DWORD,
arg2 : DWORD
mov eax,0
add eax, arg1
add eax, arg2
ret
HelloWorld endp
end start