Oops, petit problème avec l'utilisation de pico.. Je n'aurais plus le problème maintenant j'utilise un éditeur en mode graphique
Code : Tout sélectionner
;
; PureBasic x86 4.30 (MacOS X - x86) - generated code
;
; (c) 2008 Fantaisie Software
;
; The header must remain intact for Re-Assembly
;
; :System
; :Import
;
;
;
extern _SYS_CopyString
extern _memset
extern SYS_FastAllocateString
extern SYS_FreeString
extern _PB_StringBase
extern _SYS_InitString
;
extern _PB_StringBasePosition
global PB_MemoryBase
global _PB_ArgC
global _PB_ArgV
%macro pb_public 1
global _%1
global %1
_%1:
%1:
%endmacro
;
;
section .text
;
global _main
_main:
;
MOV eax, [esp+4]
MOV [_PB_ArgC], eax
MOV eax, [esp+8]
MOV [_PB_ArgV], eax
SUB esp,12
MOV [PB_InitialStackValue],esp
CALL _SYS_InitString
; :
; ProcedureDLL S00_FunctionTest(PrimParam.l)
%macro MP0 0
_Procedure0:
%define PS0 16
XOR eax,eax
PUSH eax
PUSH eax
PUSH eax
; ProcedureReturn PrimParam
MOV eax,dword [esp+PS0+0]
JMP _EndProcedure1
; EndProcedure
XOR eax,eax
_EndProcedure1:
ADD esp,12
RET 4
%endmacro
; ProcedureDLL.s S00_FunctionBis(PrimParam.l, TestSecundo.s)
%macro MP2 0
_Procedure2:
%define PS2 16
XOR eax,eax
PUSH eax
PUSH eax
PUSH eax
MOV edx,dword [esp+PS2+4]
LEA ecx,[esp+0]
CALL SYS_FastAllocateString
; ProcedureReturn TestSecundo
MOV edx,dword [esp]
PUSH dword [_PB_StringBasePosition]
ADD esp,-12
CALL _SYS_CopyString
ADD esp,12
POP eax
ADD eax,[_PB_StringBase]
JMP _EndProcedure3
; EndProcedure
MOV eax,[_PB_StringBasePosition]
ADD eax,[_PB_StringBase]
MOV byte [eax],0
_EndProcedure3:
ADD esp,-12
PUSH dword [esp+12]
CALL SYS_FreeString
ADD esp,12
ADD esp,12
RET 8
%endmacro
; Procedure S00_FunctionTestPriv(PrimParam.l)
%macro MP4 0
_Procedure4:
%define PS4 16
XOR eax,eax
PUSH eax
PUSH eax
PUSH eax
; ProcedureReturn PrimParam
MOV eax,dword [esp+PS4+0]
JMP _EndProcedure5
; EndProcedure
XOR eax,eax
_EndProcedure5:
ADD esp,12
RET 4
%endmacro
; ProcedureDLL S00_FunctionTrisTest(PrimParam.l, TestSecundo.s, ThirdParam.b)
%macro MP6 0
_Procedure6:
%define PS6 16
XOR eax,eax
PUSH eax
PUSH eax
PUSH eax
MOV edx,dword [esp+PS6+4]
LEA ecx,[esp+0]
CALL SYS_FastAllocateString
; ProcedureReturn PrimParam
MOV eax,dword [esp+PS6+0]
JMP _EndProcedure7
; EndProcedure
XOR eax,eax
_EndProcedure7:
ADD esp,-12
PUSH dword [esp+12]
CALL SYS_FreeString
ADD esp,12
ADD esp,12
RET 12
%endmacro
;
; ProcedureDLL S00_FunctionTrisQuad(MyParam.l)
%macro MP8 0
_Procedure8:
PUSH ebx
%define PS8 16
XOR eax,eax
PUSH eax
PUSH eax
; Protected Val.l = S00_FunctionTestPriv(MyParam) * 2
ADD esp,-12
PUSH dword [esp+PS8+12]
CALL _Procedure4
ADD esp,12
MOV ebx,eax
ADD ebx,ebx
MOV dword [esp],ebx
; ProcedureReturn Val
MOV eax,dword [esp]
JMP _EndProcedure9
; EndProcedure
XOR eax,eax
_EndProcedure9:
ADD esp,8
POP ebx
RET 4
%endmacro
;
; ProcedureDLL S00_FunctionTris_Five(*ParamTestc)
%macro MP10 0
_Procedure10:
%define PS10 16
XOR eax,eax
PUSH eax
PUSH eax
PUSH eax
; ProcedureReturn *ParamTestc
MOV eax,dword [esp+PS10+0]
JMP _EndProcedure11
; EndProcedure
XOR eax,eax
_EndProcedure11:
ADD esp,12
RET 4
%endmacro
; ProcedureDLL.s S00_FunctionTris_Six(ParamTest1$, ParamTest2.s, ParamTest3.l)
%macro MP12 0
_Procedure12:
%define PS12 16
XOR eax,eax
PUSH eax
PUSH eax
PUSH eax
MOV edx,dword [esp+PS12+0]
LEA ecx,[esp+0]
CALL SYS_FastAllocateString
MOV edx,dword [esp+PS12+4]
LEA ecx,[esp+4]
CALL SYS_FastAllocateString
; ProcedureReturn ParamTest1$
MOV edx,dword [esp]
PUSH dword [_PB_StringBasePosition]
ADD esp,-12
CALL _SYS_CopyString
ADD esp,12
POP eax
ADD eax,[_PB_StringBase]
JMP _EndProcedure13
; EndProcedure
MOV eax,[_PB_StringBasePosition]
ADD eax,[_PB_StringBase]
MOV byte [eax],0
_EndProcedure13:
ADD esp,-12
PUSH dword [esp+12]
CALL SYS_FreeString
ADD esp,12
ADD esp,-12
PUSH dword [esp+16]
CALL SYS_FreeString
ADD esp,12
ADD esp,12
RET 12
%endmacro
;
; IDE Options = PureBasic 4.30 (MacOS X - x86)
; CursorPosition = 24
; Folding = --
; EnableXP
_PB_EOP:
_PB_EOP_NoValue:
CALL _PB_EndFunctions
MOV esp,[PB_InitialStackValue]
ADD esp,12
MOV eax,[PB_ExitCode]
RET
_PB_EndFunctions:
SUB esp,12
ADD esp,12
RET
;
MP2
MP0
MP4
MP10
MP12
MP8
MP6
section .data
pb_public PB_DEBUGGER_LineNumber
dd -1
pb_public PB_DEBUGGER_IncludedFiles
dd 0
pb_public PB_DEBUGGER_FileName
db 0
global _SYS_StaticStringStart
_SYS_StaticStringStart:
pb_public PB_NullString
db 0
global _SYS_StaticStringEnd
_SYS_StaticStringEnd:
align 4
align 4
s_s:
dd 0
dd -1
align 4
align 4
;
section .bss
_PB_BSSSection:
alignb 4
;
I_BSSStart:
PB_MemoryBase: resd 1
_PB_ArgC: resd 1
_PB_ArgV: resd 1
PB_ExitCode: resd 1
PB_InitialStackValue: resd 1
alignb 4
PB_DataPointer resd 1
alignb 4
alignb 4
alignb 4
alignb 4
I_BSSEnd:
section .data
SYS_EndDataSection: