Page 1 sur 2

Help me please

Publié : dim. 27/juil./2008 12:11
par Anonyme
Qui peut me convertir se code en asm fasm ?:

Code : Tout sélectionner

#pragma aux inner = \
    "    push  ebp                                      "\
    "    rol   eax, 16                                  "\
    "    rol   edx, 16                                  "\
    "    mov   bl, al                                   "\
    "    mov   bh, dl                                   "\
    "    mov   esi, [_dudx]                             "\
    "    mov   ebp, [_dvdx]                             "\
    "    shl   esi, 16                                  "\
    "    mov   dl, byte ptr [_dudx+2]                   "\
    "    shl   ebp, 16                                  "\
    "    mov   dh, byte ptr [_dvdx+2]                   "\
    "    lea   edi, [edi+ecx]                           "\
    "    xor   ecx, -1                                  "\
    "    inc   ecx                                      "\
    " next:                                             "\
    "    mov   al, [ebx]                                "\
    "    add   edx, ebp                                 "\
    "    adc   bh, dh                                   "\
    "    add   eax, esi                                 "\
    "    adc   bl, dl                                   "\
    "    mov   [edi+ecx], al                            "\
    "    inc   ecx                                      "\
    "    jnz   next                                     "\
    "    pop   ebp                                      "\
    parm [edi] [ecx] [ebx] [eax] [edx] modify [eax ebx ecx edx esi edi]
je pige que dale :/
Merci :D

Publié : dim. 27/juil./2008 15:48
par djes
Tu veux te mettre au texture mapping? :D Ca devrait donner qq chose comme ça

Code : Tout sélectionner

dudx.l = 0
dvdx.l = 0
  !PUSH  ebp
  !ROL   eax, 16  
  !ROL   edx, 16  
  !MOV   bl, al   
  !MOV   bh, dl   
  !MOV   esi, [v_dudx] 
  !MOV   ebp, [v_dvdx] 
  !SHL   esi, 16  
  !MOV   dl,  byte [v_dudx+2]   
  !SHL   ebp, 16  
  !MOV   dh,  byte [v_dvdx+2]   
  !LEA   edi, [edi+ecx]   
  !XOR   ecx, -1  
  !INC   ecx  
!SUIV:
  !MOV   al, [ebx]
  !ADD   edx, ebp 
  !ADC   bh, dh   
  !ADD   eax, esi 
  !ADC   bl, dl   
  !MOV   [edi+ecx], al
  !INC   ecx
  !JNZ   SUIV
  !POP   ebp  
Remarque : la fonction attend en entrée des paramètres dans des registres qui sont normalement utilisés par pure. Il faudrait soit les sauvegarder/restaurer, soit utiliser d'autres registres, ou des variables.

Publié : dim. 27/juil./2008 17:28
par Anonyme
Tu veux te mettre au texture mapping?
Tu voit cela comment ?? 8O

Ca peut être n'importe quoi , mais sinon , oui , c'est pour faire de la rasterization software. :D

Merci , Djes. :wink:

Publié : dim. 27/juil./2008 18:37
par Chris
Punaise, mais comment vous faites pour arriver à piger quelque chose dans tout ce charabia. 8O

Décidément, je comprendrai jamais rien à l'assembleur. :(

Code : Tout sélectionner

dudx.l = 0
dvdx.l = 0
  !PUSH  ebp
  !ROL   eax, 16 
  !ROL   edx, 16 
  !MOV   bl, al   
  !MOV   bh, dl   
  !MOV   esi, [v_dudx]
  !MOV   ebp, [v_dvdx]
  !SHL   esi, 16 
  !MOV   dl,  byte [v_dudx+2]   
  !SHL   ebp, 16 
  !MOV   dh,  byte [v_dvdx+2]   
  !LEA   edi, [edi+ecx]   
  !XOR   ecx, -1 
  !INC   ecx 
!SUIV:
  !MOV   al, [ebx]
  !ADD   edx, ebp
  !ADC   bh, dh   
  !ADD   eax, esi
  !ADC   bl, dl   
  !MOV   [edi+ecx], al
  !INC   ecx
  !JNZ   SUIV
  !POP   ebp 

Publié : dim. 27/juil./2008 19:52
par Ar-S
+1 énorme respect !

Publié : dim. 27/juil./2008 22:20
par djes
Chris a écrit :Punaise, mais comment vous faites pour arriver à piger quelque chose dans tout ce charabia. 8O

Décidément, je comprendrai jamais rien à l'assembleur. :(
C'est un a prori, l'assembleur est le plus simple des langages. Chaque ligne représente une action représentée par une instruction et des "opérandes", en général source et destination. Le problème est que les constructeurs nous rajoutent des instructions tout le temps, à tel point qu'il est maintenant devenu presque impossible de les connaître toutes.

Cpl.Bator> Il suffit en général de sauvegarder les registres sur la pile avec des "push", et les restaurer ensuite avec "pop". Mais sans connaître le contexte, je ne peux pas beaucoup t'aider. Mais pourquoi attaquer directement l'assembleur? Je pense que tu devrais plutôt faire un code simple, et l'optimiser par la suite.

Publié : dim. 27/juil./2008 23:57
par Anonyme
le code de rastérization que j'ai chopé contenait un bout d'asm ( code d'origine en c / watcom ). pour le moment , mon code purebasic ne contient 0 lignes d'asm , et j'arrive à afficher en 1680x1050x32 un rendu 100% software avec + de 100fps ! :D avec une astuce toute bête ^^ , je ne cherche pas l'optimisation pour le moment , mais une organisation générale dans mon code purebasic , c'est là que je regrette la poo. :D

Publié : lun. 28/juil./2008 9:33
par djes
Cpl.Bator a écrit :le code de rastérization que j'ai chopé contenait un bout d'asm ( code d'origine en c / watcom ). pour le moment , mon code purebasic ne contient 0 lignes d'asm , et j'arrive à afficher en 1680x1050x32 un rendu 100% software avec + de 100fps ! :D avec une astuce toute bête ^^ , je ne cherche pas l'optimisation pour le moment , mais une organisation générale dans mon code purebasic , c'est là que je regrette la poo. :D
Pas mal! :P

Oui la POO a des avantages, c'est certain! Rationaliser est le travail le plus délicat du programmeur : éviter les doublons dans son code, penser général plutôt que particulier, avoir une vue d'ensemble, créer des procédures "atomiques", sortes de briques qui pourront resservir sans aucune modification. Il faut être clair, précis, pour soi-même et pour les autres. Ce n'est pas évident, car d'un jour à l'autre le travail que l'on est capable de fournir est très différent, surtout pour des amateurs!

La POO oblige le (bon) programmeur à fabriquer des modules compacts dédiés, coupés du monde extérieur. Elle cache la réalité des choses afin d'effectuer des travaux à la complexité croissante (il suffit par exemple d'imaginer tout ce qui est caché à la personne qui tourne la clé de contact de sa voiture). Mais dans l'idéal, il faut que toute l'équipe qui a conçu chacun des objets soit toujours là à affiner leur design. La nature avait fait cela avant nous, et sur des milliards d'années le résultat est impressionnant.

Ainsi, la vie repose sur quelques briques essentielles, les acides aminés. Ce sont des sortes de "super-objets", qui a priori n'ont pas de vie propre. Pourtant, leurs propriétés physiques sont à ce point optimisées qu'il est possible avec un nombre restreint d'obtenir des millions de combinaisons, qui se combinent encore entre elles, etc. C'est pour cela qu'avec finalement peu d'instructions, l'ADN et l'ARN arrivent à coder des êtres particulièrement complexes, et même certains de leurs comportements!

Bon, je m'égare un peu! Tout ça pour dire que ces notions sont très importantes, oui. Par contre, la syntaxe utilisée par tel ou tel langage n'est qu'un outil pour réaliser cet objectif. J'ai programmé un petit moment en Java, avec beaucoup de plaisir! Mais l'ennui est que je perdais énormément en vitesse à cause des couches d'abstraction auxquelles je n'avais pas accès. On a le même problème avec DirectX et l'archi .Net. Chaque nouvelle couche encapsule les routines des couches inférieures, rajoutant des milliers de lignes de code inutiles, de vérification, de validation. Les erreurs (inévitables) commises lors de la conception mettent des années à se corriger, ou pas (je pense par exemple au garbage collector du java, ou à la compil jit qui fait ramer ton appli la première fois!). Et l'on peut commettre des erreurs dans chacune de ces couches, car il y a toujours des sections critiques (voir les threads!).

Ce qui m'énerve le plus, ce sont ces cours donnés à la fac où ces notions sont abordées dans un sens quasi religieux. Les étudiants se mettent à délirer sur les objets et les classes et perdent tout sens de la réalité! Enfin bon, s'ils font de la gestion, ce n'est pas trop grave... Mais qu'ils ne prétendent pas faire du temps réel comme ça! Déjà que je trouve qu'on devrait avoir honte de faire des jeux sous Windows!

Publié : lun. 28/juil./2008 12:10
par cha0s
On arrive a une ère ou la puissance de calcule dépasse l'entendement alors on se prive pas a faire des usines a gaz codé avec des pieds (qui a osé dire far cry ?).

Sinon l'avenir c'est les macro :lol:

Publié : lun. 28/juil./2008 13:03
par Backup
cha0s a écrit :Sinon l'avenir c'est les macro :lol:
non !

la femme !! parce que la femme est l'avenir de l'homme :lol: :lol:

Publié : lun. 28/juil./2008 19:38
par Ar-S
les femmes et les macros, toute une histoire :)
===> Je suis plus là :P

Re: Help me please

Publié : jeu. 20/janv./2011 8:07
par Warkering
V'là d'la job pour notre cher ami Dobro! :mrgreen:

Re: Help me please

Publié : jeu. 20/janv./2011 10:01
par Backup
encore une phrase apres un robot pour ne rien dire
et je vous laisse vous démerder avec les robots et le forum !

et en plus je fais un grand nettoyage de mes messages

faudrai voir a arrêter de vous foutre de ma gueule

[ re edit ]

tout ce que vous allez gagner, c'est d'avoir un forum remplis de messages de robots
dissémine au beau milieu d'autres messages...
ça va etre bien.... :roll:

Re: Help me please

Publié : jeu. 20/janv./2011 22:27
par Warkering
Mais je ne me foutais pas de ta gueule, c'était qu'une simple farce plate... :(

Re: Help me please

Publié : ven. 21/janv./2011 0:40
par Backup
Warkering a écrit :Mais je ne me foutais pas de ta gueule, c'était qu'une simple farce plate... :(
ben oui j'ai que ça a faire moi de nettoyer vos messages en plus de ceux des robots ...
qu'elle bonne bagues...:roll: