salut jai une petite question
est ce que en peut faire des programme assembleur sous le delphi
si oui alors
est ce que vous pouver me donner un lien ou je peut telecharger des cours de ce jonre
merci pour votre aider
Version imprimable
salut jai une petite question
est ce que en peut faire des programme assembleur sous le delphi
si oui alors
est ce que vous pouver me donner un lien ou je peut telecharger des cours de ce jonre
merci pour votre aider
Salut
Je n'y connais absolument rien en assembleur, mais effectivement tu peux écrire ton code en assembleur sous delphi.
Quant aux tutos tu peux déjà regarder ici: http://asm.developpez.com/
@+ Claudius
a noter que l'on ne peux pas a proprement parler creer un programme asm sous delphi.
Enfin si mais ya quen mieux pour ca :)
PAr contre on peut integrer certaines fonctions, code, etc ... en asm pure pour optimiser ou securiser certaines fonctionnalitées.
Apres pour l'asm ... ya pas mal d'infos sur le net .. et meme une section developpez il me semble ;)
L'asm reste souvent limité à la gestion des chaines dans la plupart des codes auxquelles j'ai pu aidé à pondre l'algo en pascal et adapté en ASM par Kr85 (Phidels.com), mais certains principe comme l'utilisation de tableau de hash si lisible en Delphi lorsque l'on fait des algos de fréquences, de cryptage ou de compression, sont extrément complexes en assembleur, car il faut gérer tous ses offsets soit-même, c'est une sacrée gymnastique ...
tient, un truc tout con, ... tu as un entier sur 4 octets, tu veux inverser les bytes, et bien en pascal tu as Swap(X) mais cela ne fonction qu'en 16bit, donc si tu le veux sur 4, il m'a fallu écrire ceci, et sur le forum, on m'a donné plus rapide et plus court que mon tableau compliqué
ou encore, pour un algo de compression raté, j'ai voulu utilisé shl, mais je perdais ma retenu, encore une fois l'ASM m'a sauvéCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function SwapLongword(Value: Longword): Longword; {$IFDEF PUREPASCAL} type TMapLongword = array[0..3] of Byte; begin TMapLongword(Result)[0] := TMapLongword(Value)[3]; TMapLongword(Result)[1] := TMapLongword(Value)[2]; TMapLongword(Result)[2] := TMapLongword(Value)[1]; TMapLongword(Result)[3] := TMapLongword(Value)[0]; {$ELSE} asm BSWAP EAX {$ENDIF} end;
En tout cas, si tu as des questions sur l'ASM, je ne serais pas celui qui aura les réponses mais je serais l'un des premiers à m'y interesser, ... faudrait aussi que je dépasse la page 80 d'Assembleur Facile de Marabou ...:mouarf:Code:
1
2
3
4
5 function RotateLeft(Value: Longword): Longword; asm ROL EAX, 1 end;