s'initier a l'asm

s'initier a l'asm - ASM - Programmation

Marsh Posté le 29-09-2003 à 21:57:07    

Je voudrais me mettre a l'asm et je voulais savoir si c'est facile pour programmer? :??:
j'ai deja des notions mais j'ai jamais programmé [:spamafote]
 
sinon est ce que vous avez des bon sites ou ils expliquent comment debuter en asm ?
 
merci d'avance :)


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 21:57:07   

Reply

Marsh Posté le 29-09-2003 à 21:57:54    

si tu veux mon avis,plutot que de faire du 100%asm le mieux pour debuter c un compilo C qui te permet l'asm inline, ca te permettra de bricoler sans te soucier de tout un tas de basard

Reply

Marsh Posté le 29-09-2003 à 22:00:59    

forummp3 a écrit :

je voulais savoir si c'est facile pour programmer?  


 
Un fou  :pt1cable:  :pt1cable:


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 29-09-2003 à 22:01:28    

tu veux faire quel genre d'assembleur ?
du win32 propre, ou du bourrin pas propre comme je fais dans mon topic old-school ?
 
edit: y'a la bibliolink aussi, j'y ai intégré une section assembleur


Message édité par Harkonnen le 29-09-2003 à 22:02:17

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:02:59    

Harkonnen a écrit :

tu veux faire quel genre d'assembleur ?
du win32 propre, ou du bourrin pas propre comme je fais dans mon topic old-school ?

ben j'y connais rien du tout  :??:  
tu me conseil quoi? [:dawa]


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 22:03:53    

[:mmmfff]

Reply

Marsh Posté le 29-09-2003 à 22:04:28    

chrisbk a écrit :

si tu veux mon avis,plutot que de faire du 100%asm le mieux pour debuter c un compilo C qui te permet l'asm inline, ca te permettra de bricoler sans te soucier de tout un tas de basard

dev c++ c'est bon? [:dawa]


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 22:09:18    

forummp3 a écrit :

dev c++ c'est bon? [:dawa]


laisse tomber dev c++, il est basé sur gcc qui possède un assembleur inline pourri
 
prends plutot open watcom


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:10:36    

forummp3 a écrit :

ben j'y connais rien du tout  :??:  
tu me conseil quoi? [:dawa]


ça dépend ce que tu veux faire, des applis sous windows ou attaquer direct le hardware ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:12:38    

Harkonnen a écrit :


ça dépend ce que tu veux faire, des applis sous windows ou attaquer direct le hardware ?


 
pour ca, rien ne vaut un tournevis [:aloy]
 
(rohmais je suis hilarant ce soir)

Reply

Marsh Posté le 29-09-2003 à 22:12:38   

Reply

Marsh Posté le 29-09-2003 à 22:14:12    

Harkonnen a écrit :


ça dépend ce que tu veux faire, des applis sous windows ou attaquer direct le hardware ?

ben j'aimerai bien pouvoir comprendre l'asm que l'on voit lorsque l'on desassemble un logiciel.


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 22:17:45    

un H4cK3rZ [:lacuna coil]

Reply

Marsh Posté le 29-09-2003 à 22:21:11    

Reply

Marsh Posté le 29-09-2003 à 22:27:08    

tu veux faire de l'asm ? c'est vague ca... je te conseillerais bien un bon vieux 8085, on peut faire des montages marrants... Mais j'imagine que tu veux plutot faire du win32  :sarcastic:  
 
Mais y'a de bons compilo 8085 pour pc aussi... ca permet de se faire la main et comprendre ce qu'est l'asm... [:zebra33]

Reply

Marsh Posté le 29-09-2003 à 22:33:18    

mouais, bon, forummp3 tu t'attaques à un gros morceau :/
avant de comprendre le désassemblage d'un logiciel, tu dois avoir pas mal de notions "annexes", notamment :
 
- l'organisation de la mémoire. ça ne pose pas de problèmes pour les programmes 32 bits, mais pour les programmes 16 bits c'est une galère sans nom (et vas y que je te fous le code et les données dans 2 segments différents, et tout et tout...)
- les modes d'adressage de la mémoire
- les registres du processeur
- les différents drapeaux
- etc...
 
l'assembleur en lui même n'est pas difficile. il s'agit d'un ensemble de mots clé réalisant des opérations finalement très simples. le plus dur est de combiner ces mots clés pour faire quelque chose de cohérent et surtout pour éviter la sanction fatale : l'écran bleu.
 
en assembleur, tu n'as aucun type de donnée, tu dois réserver toi même la mémoire pour le type de variable que tu souhaites, bref c'est du bricolage constant.
 
d'un autre coté, c'est super formateur, ça te permet d'assimiler les concepts les plus pointus de la programmation haut niveau (pointeurs, etc...)
 
même si de nos jours, les compilos sont très performants, connaitre l'asm reste toujours un plus, ça te permet d'être proche de la machine, et de réaliser l'optimisation qui tue :)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:34:12    

ToxicAvenger a écrit :

tu veux faire de l'asm ? c'est vague ca... je te conseillerais bien un bon vieux 8085, on peut faire des montages marrants... Mais j'imagine que tu veux plutot faire du win32  :sarcastic:  
 
Mais y'a de bons compilo 8085 pour pc aussi... ca permet de se faire la main et comprendre ce qu'est l'asm... [:zebra33]  


personnellement, je pense que pour apprendre l'assembleur, rien de mieux que les processeurs 680x0 de Motorola


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:45:03    

ben ce que je veux d'abord c'est de pouvoir comprendre l'asm lorsque je le lis et peux etre qu'aprés j'essayerai de programmer.
 
J'avais deja imprimer cette page:
http://membres.lycos.fr/asmfr/Tutok1.htm
 
vous en pensez quoi ?


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 22:47:49    

forummp3 a écrit :

ben ce que je veux d'abord c'est de pouvoir comprendre l'asm lorsque je le lis et peux etre qu'aprés j'essayerai de programmer.
 
J'avais deja imprimer cette page:
http://membres.lycos.fr/asmfr/Tutok1.htm
 
vous en pensez quoi ?


Citation :

f) LEA
 LEA a un peu la même fonction que mov mais en plus court.
 Ex:
 LEA eax, offset TOTO


[:aaah]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:48:50    

Harkonnen a écrit :


Citation :

f) LEA
 LEA a un peu la même fonction que mov mais en plus court.
 Ex:
 LEA eax, offset TOTO


[:aaah]

c pas bon? [:meganne]


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 22:51:15    

Reply

Marsh Posté le 29-09-2003 à 22:55:39    

ben pas vraiment non...
LEA sert à charger un registre avec une adresse mémoire, alors que MOV sert à charger un registre avec une valeur quelconque (valeur numérique, adresse mémoire...)
 
si tu fais ça :
lea eax,0
 
tu définis eax comme pointant sur l'adresse 0 de la RAM. je te laisse imaginer le bordel si tu as le malheur d'écrire dedans derrière, un truc du style :
 
mov [eax],10
 
à la rigueur, on peut dire que LEA est l'équivalent de MOV...OFFSET (chargement dans un registre de l'adresse, ou offset, de la donnée suivante), mais LEA est plus rapide, car il n'a pas besoin de calculer l'adresse avant de la charger dans le registre


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:56:47    

[:xp1700]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 22:57:12    

Citation :

si tu fais ça :
lea eax,0
 
tu définis eax comme pointant sur l'adresse 0 de la RAM. je te laisse imaginer le bordel si tu as le malheur d'écrire dedans


 
tu vas l'embrouiller la :O
t'aurais le meme resultat avec
xor eax,eax
mov eax,eax
sub eax,eax
 
le truc c'est que :
mov ecx,[ecx+10] charge le contenu de [ecx+10]
et
lea ecx,[ecx+10] charge l'adresse (ecx+10)
 
 
 

Reply

Marsh Posté le 29-09-2003 à 23:04:24    

chrisbk a écrit :

[quote]
le truc c'est que :
mov ecx,[ecx+10] charge le contenu de [ecx+10]
et
lea ecx,[ecx+10] charge l'adresse (ecx+10)


on est donc d'accord sur le fait de dire que lea = mov plus rapide, c'est une immense connerie :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 23:04:47    

Harkonnen a écrit :


on est donc d'accord sur le fait de dire que lea = mov plus rapide, c'est une immense connerie :o


 
ah ben toot a fay :O
mais j'aimais pas ton exemple :O

Reply

Marsh Posté le 29-09-2003 à 23:06:53    

chrisbk a écrit :


 
ah ben toot a fay :O


parfait :o
t'es toujours avec nous forummp3 ? :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 23:09:15    

Harkonnen a écrit :


parfait :o
t'es toujours avec nous forummp3 ? :o

je vous regarde parler :D


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 23:10:41    

forummp3 a écrit :

je vous regarde parler :D


 
t'as compryte la difference ?

Reply

Marsh Posté le 29-09-2003 à 23:11:53    

pour faire simple (un peu faux mais c pour le principe)
 
mov eax,[ecx + 10]
eax = ecx[10]
 
lea eax,ecx + 10
eax = &(ecx[10]);
 
 

Reply

Marsh Posté le 29-09-2003 à 23:12:52    

chrisbk a écrit :


 
t'as compryte la difference ?
 

ben l'un contient une adresse et l'autre une valeur,c'est ca ?


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 29-09-2003 à 23:15:12    

chrisbk a écrit :

pour faire simple (un peu faux mais c pour le principe)
 
mov eax,[ecx + 10]
eax = ecx[10]
 
lea eax,ecx + 10
eax = &(ecx[10]);
 
 
 


t'aurais ptet du préciser que la 1ere ligne est en assembleur et la 2eme son équivalent en C :o
 
forum > attention, pour les lignes en C, eax et ecx représentent des variables équivalentes aux registres assembleur correspondants, va pas taper ça dans un prog C hein !


Message édité par Harkonnen le 29-09-2003 à 23:16:14

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 23:16:09    

Harkonnen a écrit :


t'aurais ptet du préciser que la 1ere ligne est en assembleur et la 2eme son équivalent en C :o


monsieur veut avoir le dernier mot hein ? :O

Reply

Marsh Posté le 29-09-2003 à 23:17:22    

chrisbk a écrit :


monsieur veut avoir le dernier mot hein ? :O


pourquoi les topics asm se résument toujours à un dialogue entre toi et moi ? [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 23:18:51    

Harkonnen a écrit :


pourquoi les topics asm se résument toujours à un dialogue entre toi et moi ? [:ddr555]


 
Va savoir [:ddr555]
 
 
 

Reply

Marsh Posté le 29-09-2003 à 23:19:25    

Harkonnen a écrit :


laisse tomber dev c++, il est basé sur gcc qui possède un assembleur inline pourri

Pkoi ? Parce que tu connais pas la syntaxe AT&T donc c'est pourri ? :heink:

Reply

Marsh Posté le 29-09-2003 à 23:20:48    

*Syl* a écrit :

Pkoi ? Parce que tu connais pas la syntaxe AT&T donc c'est pourri ? :heink:  


 
 
Si c du meme niveau que G++ alors oui c'est pourri vu qu'il faut lui indiquer quels sont les registres scratchés pour pas que le pov compilo (infout d'analyser lui meme les instructions mises en jeu) se melange les pedales :O

Reply

Marsh Posté le 29-09-2003 à 23:24:38    

*Syl* a écrit :

Pkoi ? Parce que tu connais pas la syntaxe AT&T donc c'est pourri ? :heink:  


 
ben écoute, moi quand je vois ça :
 

Code :
  1. __asm__ (
  2.         "mull %%eax; divl %%ecx"
  3.         : "=d" (pow)
  4.         : "a" (pow32), "c" (p)
  5.     );


 
franchement, je préfère de loin écrire ça :
 

Code :
  1. _asm
  2. {
  3.    mul eax
  4.    div ecx
  5.    mov pow32,ecx
  6. }


 
la syntaxe AT&T a surement une utilité, mais j'ai jamais encore compris laquelle [:sinclaire]
 
edit: encore mieux ;
 

Code :
  1. asm("movl %1, %%eax      \n\t"\
  2.      "mull %%eax          \n\t"\
  3.      "divl %2             \n\t"\
  4.      "movl %%edx, %0" : "=r" (pow) : "r" (pow32), "r" (p));


 
[:kunks]
 
edit2: et j'ai pas dit que la syntaxe AT&T était pourrie, mais que l'asm inline de gcc était pourri :o


Message édité par Harkonnen le 29-09-2003 à 23:30:54

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2003 à 23:34:03    

Harkonnen a écrit :


la syntaxe AT&T a surement une utilité, mais j'ai jamais encore compris laquelle [:sinclaire]

C'est pour fairei + l33t [:aloy]
 

Harkonnen a écrit :

et j'ai pas dit que la syntaxe AT&T était pourrie, mais que l'asm inline de gcc était pourri :o

Je sais, c'était juste une supposition.. :)

Reply

Marsh Posté le 30-09-2003 à 01:42:02    

bah ptet que la synthaxe AT&T (ou celle de gcc plsutôt apparement) est là pour détourner les programmeurs de l'époque de l'assembleur.... (comme microsoft cherche à détourner les gens du java en faisant un support java pourrave)
 
[TROLL LAUNCHED] quoique
 
--------------
 
non pour en revenir au début de quoiquèce....
 
forummp3 >> quels langages as-tu déjà pratiqués ?
qu'est-ce que tu connais sur les cpu et leur fonctionnement ?


Message édité par bjone le 30-09-2003 à 01:42:32
Reply

Marsh Posté le 30-09-2003 à 10:01:36    

[:cupra]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed