Langage assembleur - Ca se fait encore ?

Bonjour,

J’ai fait bcp d’assembleur à l’époque du 6809. Cela se fait-il encore sur les PCs d’aujourd’hui ? Ca ressemble à quoi de l’assembleur sur un P4 ?

Je sais que sur les processeurs Intel genre 286, la structure d’adressage de la mémoire ( segmentée ) se prêtait très mal à ce type de programmation. Cela a-t-il changé ?

Merçi.

Manifestement, ça ne se fait plus… :sweet:

En tout cas, je ne sentait pas d’en parler pour en avoir fait une semaine pendant mes études, il y a 10 ans.
Je crois que le mode “normal” qui était utilisé en DOS n’est plus du tout utilisé, on travaille en mode protégé, et j’avais l’impression qu’avec le 64 bits, il y avait un nouveau mode.
Bref: de peu que j’en sait, la compatibilité ascendante fout le bronx dans tout ça, entre mode protégé ou autre, modèle de mémoire (tiny, small, huge …), pointeur 32 ou 64 bits… et il mesemble que les segments sont toujours là.

Depuis le 286 que tu as appris, il y a eu pas mal d’extensions: il faut minimum travailler en mode 386 pour avoir le 32 bits, mais il y a aussi toutes les instructions MMX, SSE1,2,et 3, (c’est 3DMax? l’extension d’amd? ), puis AMD64 ou EMT64 pour les procs 64 bits.

Bon si j’ai dit trop de bêtise, ceux qui prog en C me corrigeront. (Karlkox et Sans-Nom, pour ne pas les nommer :smiley: )

En fait pour conclure, je crois bien que l’assembleur n’a pas de réel intérêt par rapport au C, sauf peut-être pour des parties “matérielles”.
:slight_smile:

Evidemment que l’assembleur se fait encore sur les processeurs actuels.

Certe, ça a bien évolué (plutôt que changé) depuis le 6809 ou le 68k, mais le principe de base reste le même.

Pour répondre à deltree, l’intérêt de passer parfois en assembleur dans son codage (que ce soit en C, delphi ou autre), c’est essentiellement pour gagner du temps (en exécution) ou parce qu’on connais bien son archi (adresses mémoire et tout le toutim)

Merçi pour ta réponse, c’est vrai que de l’eau a coulé sous les ponts depuis le 6809… Je n’ose même pas imaginer attaquer une carte 3D depuis l’assembleur aujourd’hui…

Néammoins, j’aimais bcp l’assembleur, car on discutait directement avec le processeur… Ce que 99,999% des utilisateurs d’ordis d’aujourd’hui ne peuvent même pas imaginer. Ceux qui “bavent” aujourd’hui sur l’Athlon 5000+, ne savent pas en fait sur quoi ils bavent…

J’avais lû un article sur le superbe “IL2 Sturmkovic”, et les concepteurs disaient avoir optimisé “à la main” les routines les plus exigeants en temps machine du jeu. Mais ce logiciel était du travail d’orfèvre (Russe!).

Je suis en plein dedans en ce moment, j’apprend les bases pour m’orienter vers l’asm simd (mmx,sse,3dnow) et plus particulièrement l’optimisation de routines dsp, du gros boulot en perspective :slight_smile:

Y’en a qui sont courageux!!!

Je me rappelle mes projets en licences informatique où on devait coder en assembleur 68K (Motorola) des routines de programmation objet.

C’était plutôt sympa de comprendre comment c’était codé “dans” la machine!

J’vais me faire taper dessus, j’le sens… Mais l’ASM est utilisé encore couramment de nos jours.
Pour le reverse-engineering, après désassemblage… :paf: :whistle:

j’ai aussi fait ça :hello:

[:shy] mais en bts

Une combine pour faire de l’assembleur assez facilement, c’est de programmer en C ou en Pascal, et de spécifier par options de compilation de s’arrêter au code assembleur, de ne pas aller jusqu’au bout de la compilation vers l’exécutable. On a alors une base que l’on peut étudier pour essayer de comprendre comment ça marche. ET même bidouiller à la main, à la condition que l’on sache ce que l’on fait.

Au fait ? Huhu…

Qqun aurait-il un lien sur le langage assembleur d’un processeur récent ? Genre P4 ?

Aspect des registres, fonctions, …etc ?

Merçi.

il me semble qu’intel donne tout cela sur son site :wink:

Ok, j’ai trouvé et ça a l’air touffu loool !

http://www.intel.com/design/Pentium4/manuals/253665.htm

Je n’ai jamais compris pkoi Intel a été choisi plutôt que Motorola pour équiper les PCs…

gadeek>même pas peur :ane:

iksarfighter> ça date mais ça reste une référence : The Art Of Assembly.

ici, un lien sympas :slight_smile:

Réponse simple: Oui ça se fait!
Bien sur, tout le code n’est pas en assembleur, l’assembleur est utilisé pour des fonction spécifique souvent pour un gain de performance et de temps.
Exemple (dans le cas de mon amis) lors du traitement d’information qui demande de la vitesse…
Saviez vous qu’on pouvais connaitre le sexe d’un poussin a la couleur et la forme des veines de sont oeuf, et bien quand on a 1000 oeufs a traiter a la minute avec une camera qui “prend” des photos et bien l’assembleur est tout adapter car il permet à l’algo d’analyse d’aller plus vite…
Je pense que ce n’est pas pour rien si intel continu d’intégrer des instruction SSE dans ses processeur…
Moi mon pote, il traite des oeufs… Mais pour des calculs type encodage, décodage HD, compression etc… Les programmeurs bénissent ses instrucions…
Edité le 29/10/2007 à 09:42

En la vectorisation tu crois, la performance tu auras :jap:

Je rajouterai que l’on oublie souvent que les languages JAVA, C ++, C sont des langages interprétés. Je sous entend que les performances de ces programmes sont associés à la machine sur lequel ils tournent mais également au compilateur utilisé…

Donc si on en revient à faire de l’assembleur c’est que le compilateur génére du code non optimisé à la plateforme cible pour des gains de perf …

Exemple après un stage sur le traitement video pour des PDA on s’est aperçu que pour optimiser les gains de traitement video, on était obligé de recoder certains fonctions de décodage en assembleur celle-ci n’était pas optimales quite au passage du compilateur fourni avec ce PDA … (c’était du code C)

Hum, attention aux termes jeune tableur! (ou Excel? ;))

Java -> compilé puis interprété vers la machine cible
C, C++ -> compilé en assembleur
PHP -> interprété.

Pour le reste, tout dépend de ce que tu fais et ce que tu veux. L’assembleur, c’est certes bien, mais c’est difficilement maintenable. Quand je vois le code C de mon prof d’Animation / Simulation plein de variables globales pour justement jouer sur la mémoire, etc, je me dis qu’il le mettra pas trop à jour, du moins pas facilement…