s'initier a l'asm - ASM - Programmation
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
Marsh Posté le 29-09-2003 à 22:00:59
forummp3 a écrit : je voulais savoir si c'est facile pour programmer? |
Un fou
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
Marsh Posté le 29-09-2003 à 22:02:59
Harkonnen a écrit : tu veux faire quel genre d'assembleur ? |
ben j'y connais rien du tout
tu me conseil quoi?
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?
Marsh Posté le 29-09-2003 à 22:09:18
forummp3 a écrit : dev c++ c'est bon? |
laisse tomber dev c++, il est basé sur gcc qui possède un assembleur inline pourri
prends plutot open watcom
Marsh Posté le 29-09-2003 à 22:10:36
forummp3 a écrit : ben j'y connais rien du tout |
ça dépend ce que tu veux faire, des applis sous windows ou attaquer direct le hardware ?
Marsh Posté le 29-09-2003 à 22:12:38
Harkonnen a écrit : |
pour ca, rien ne vaut un tournevis
(rohmais je suis hilarant ce soir)
Marsh Posté le 29-09-2003 à 22:14:12
Harkonnen a écrit : |
ben j'aimerai bien pouvoir comprendre l'asm que l'on voit lorsque l'on desassemble un logiciel.
Marsh Posté le 29-09-2003 à 22:21:11
ReplyMarsh 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
Mais y'a de bons compilo 8085 pour pc aussi... ca permet de se faire la main et comprendre ce qu'est l'asm...
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
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 |
personnellement, je pense que pour apprendre l'assembleur, rien de mieux que les processeurs 680x0 de Motorola
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 ?
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. |
Citation : f) LEA |
Marsh Posté le 29-09-2003 à 22:48:50
Harkonnen a écrit :
|
c pas bon?
Marsh Posté le 29-09-2003 à 22:51:15
ReplyMarsh 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
Marsh Posté le 29-09-2003 à 22:56:47
Marsh Posté le 29-09-2003 à 22:57:12
Citation : si tu fais ça : |
tu vas l'embrouiller la
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)
Marsh Posté le 29-09-2003 à 23:04:24
chrisbk a écrit : [quote] |
on est donc d'accord sur le fait de dire que lea = mov plus rapide, c'est une immense connerie
Marsh Posté le 29-09-2003 à 23:04:47
Harkonnen a écrit : |
ah ben toot a fay
mais j'aimais pas ton exemple
Marsh Posté le 29-09-2003 à 23:06:53
chrisbk a écrit : |
parfait
t'es toujours avec nous forummp3 ?
Marsh Posté le 29-09-2003 à 23:09:15
Harkonnen a écrit : |
je vous regarde parler
Marsh Posté le 29-09-2003 à 23:10:41
ReplyMarsh 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]);
Marsh Posté le 29-09-2003 à 23:12:52
chrisbk a écrit : |
ben l'un contient une adresse et l'autre une valeur,c'est ca ?
Marsh Posté le 29-09-2003 à 23:15:12
chrisbk a écrit : pour faire simple (un peu faux mais c pour le principe) |
t'aurais ptet du préciser que la 1ere ligne est en assembleur et la 2eme son équivalent en C
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 !
Marsh Posté le 29-09-2003 à 23:16:09
Harkonnen a écrit : |
monsieur veut avoir le dernier mot hein ?
Marsh Posté le 29-09-2003 à 23:17:22
chrisbk a écrit : |
pourquoi les topics asm se résument toujours à un dialogue entre toi et moi ?
Marsh Posté le 29-09-2003 à 23:18:51
Harkonnen a écrit : |
Va savoir
Marsh Posté le 29-09-2003 à 23:19:25
Harkonnen a écrit : |
Pkoi ? Parce que tu connais pas la syntaxe AT&T donc c'est pourri ?
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 ? |
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
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 ? |
ben écoute, moi quand je vois ça :
Code :
|
franchement, je préfère de loin écrire ça :
Code :
|
la syntaxe AT&T a surement une utilité, mais j'ai jamais encore compris laquelle
edit: encore mieux ;
Code :
|
edit2: et j'ai pas dit que la syntaxe AT&T était pourrie, mais que l'asm inline de gcc était pourri
Marsh Posté le 29-09-2003 à 23:34:03
Harkonnen a écrit : |
C'est pour fairei + l33t
Harkonnen a écrit : et j'ai pas dit que la syntaxe AT&T était pourrie, mais que l'asm inline de gcc était pourri |
Je sais, c'était juste une supposition..
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 ?
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é
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