Page 17 sur 26

Publié : ven. 15/mai/2009 18:50
par Progi1984
@Ollivier:
(quoique j'avais quelques "anagrammes" du style GrandeTaille et TailleGrande...).
C'est quoi cette histoire d'anagramme ? Je pige pas...
Ce type de concept ne devrait prendre que quelques dizaines de secondes sur des grosses applications, quite à grapiller une ou deux centaines de mégaoctets de mémoire vive durant ce laps de temps.
Tu penses à quoi ?

@Oliv: Ouaip, nickel... bah dis moi quand tu es libre... et on s'y remettra.

Publié : sam. 16/mai/2009 11:44
par Oliv
Vas-y dit moi, j'ai un peu de temps ce week end :wink:

Publié : sam. 16/mai/2009 12:49
par Progi1984
@Oliv: Cool, merci :)

- Peux tu prendre ce fichier là : http://code.google.com/p/moebius-pb/sou ... mple_00.pb
- Compile le en mode commenté :

Code : Tout sélectionner

pbcompiler "Sample_00.pb" -i -c -e "Sample_00"
- Retourne moi le fichier "PureBasic.asm", stp !

Publié : dim. 17/mai/2009 18:46
par Oliv
Voilà, un peu tard mais j'ai eu des imprévus et j'ai un peu galéré avec les variables d'environnement. :lol:
pureabsic.asm a écrit : ;
; 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
;

Publié : dim. 17/mai/2009 19:32
par Progi1984
@Oliv
Ca te donne ca ? Problème car il te donne que les headers de l'ASM... il devrait te donner aussi le code ASM derrière...

Publié : lun. 18/mai/2009 10:12
par Oliv
Oui il n'y a que ça, je pensais que tu voulais le header du coup... Je regarde ce soir si il y a un autre fichier avec le reste du code ;)

Publié : lun. 18/mai/2009 11:25
par Progi1984
Oliv a écrit :Oui il n'y a que ça, je pensais que tu voulais le header du coup... Je regarde ce soir si il y a un autre fichier avec le reste du code ;)
Merci, ca serait cool...

Publié : lun. 18/mai/2009 18:38
par Oliv
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:


Publié : lun. 18/mai/2009 21:53
par Progi1984
Et ben j'ai pas fini de m'amuser :p

Publié : lun. 18/mai/2009 22:07
par Oliv
Euh... Si tu le dis : enjoy :lol:

Publié : lun. 18/mai/2009 23:02
par Progi1984
Bon, je viens d'ajouter la création de résidents...

Faut que j'améliore encore quelques trucs avant de me remettre vers MacOs...

@Oliv : je te tiens au courant

Publié : mar. 19/mai/2009 15:31
par Oliv
Ok pas de soucis, dès que t'as besoin dis le :wink:

Publié : mar. 26/mai/2009 18:46
par Progi1984
Bah en fait, maintenant que j'y poste, tu peux récupérer le code de Moebius et tenter de détecter les erreurs de code...

Pour etre bien, il faut que tu récup le code via svn et que tu l'updates régulièrement... pour avoir toujours le dernier code...

Et que l'on fasse des tests en temps réel (IRC ou MSN) pour faire évoluer le code...

A toi de voir...

Publié : sam. 30/mai/2009 20:49
par Oliv
Je viens de récupérer les sources.
Donc pour le "#System_LibFormat", je pense que c'est "MACH-O" donc

Code : Tout sélectionner

#System_LibFormat = "MACH-O"
Et maintenant je vais passer un peu de temps à comprendre... :)

Publié : dim. 31/mai/2009 9:28
par poshu
Donc pour le "#System_LibFormat", je pense que c'est "MACH-O" donc
Ca y est, Moebius va avoir le MLF sur le dos...