Martial Demolins (./22) :
on a appris l'asm en s'émulant l'un l'autre, mais ça ne permet pas "d'enseigner", c'est la nuance. Intéresser oui, mais pas enseigner.
Martial Demolins (./22) :
Un code bien écrit, organisé
Martial Demolins (./22) :
est clair sera déjà assez dur pour lui à ses débuts
Martial Demolins (./22) :Jyaif (./17) :
le C est très très utilisé. Si jamais tu cherche un stage/boulot en info, connaitre le C est souvent requis.
Ah ça, je suis d'accord que c'est un excellent argument, et pour moi le seul valable pour dire de faire du C avant l'asm (donc dans un but utilitaire).
Pollux (./23) :
- l'ASM c'est mieux pour quelqu'un qui cherche à comprendre comment ça marche, et ça donne toutes les bases pour après écrire du code C efficace
l'ASM c'est mieux pour quelqu'un qui cherche à comprendre comment ça marche, et ça donne toutes les bases pour après écrire du code C efficace
sur de l'embarqué, okAprès, sur un PC moderne, ça coutera tellement plus cher de passer du temps à apprendre des notions d'asm que d'acheter un n-ième serveur (ou un n-ième cpu, ou un n-ième Go de RAM, ou quelques centaines de MHz de plus, ...)...
Peut-on en C comme en Basic programmer directement depuis sa calculette sans avoir à ecrire le programmme sur le PC?
Martial Demolins (./22) :
Un de ceux qui dominent l'asm ET le C (PpHd, Kevin, Lionel ou toi) pourrait-il présenter son point de vue argumenté svp ? Ne maitrisant que l'asm (et vraiment que ça, absolument pas l'info en général ou autre vu que je n'ai fait aucune étude dans ce domaine), je serais intéressé par l'avis d'une personne compétente (qui, vous l'aurez compris, m'intéresse autrement plus que l'avis de personne disant tâtonner dans le sujet dont elle parle ^^).
Pollux (./23) :
Pour résumer mon avis :
- le C c'est bien pour quelqu'un qui veut tout de suite un résultat potable, on peut ignorer pas mal de problèmes au moins au début - l'ASM c'est mieux pour quelqu'un qui cherche à comprendre comment ça marche, et ça donne toutes les bases pour après écrire du code C efficace
Pollux (./23) :
Bref, je vois le C comme un choix à plus court terme et l'ASM comme un choix à plus long terme.
Lionel Debroux (./24) :
Je ne pense pas qu'il soit obligatoire de connaître l'ASM pour programmer en C. L'ASM varie évidemment beaucoup d'une architecture à l'autre (même s'il y a quelques points communs)
Godzil (./25) :
C'est indipensable de comprendre comment marche le CPU plus que l'ASM
squale92 (./39) :
Après, sur un PC moderne, ça coutera tellement plus cher de passer du temps à apprendre des notions d'asm que d'acheter un n-ième serveur (ou un n-ième cpu, ou un n-ième Go de RAM, ou quelques centaines de MHz de plus, ...)...
Martial Demolins (./12) :squale92 (./11) :
d'un certain point de vue, qui est le mieux placé pour expliquer à un débutant de façon progressive, si ce n'est un presque-débutant lui-même en train de progresser ?
Je comprends bien ce que tu veux dire, mais si c'était le cas des profs, ça craindrait, donc je doute qu'un débutant sans vue d'ensemble fasse un tuto avec la hauteur de vue suffisante pour apprendre à d'autres débutants. C'est d'ailleurs ce que j'avais pas aimé dans ton tuto de C, c'était cette approche "bon pour faire des gris, vous faites comme ça". J'ai besoin qu'on m'explique le principe de fonctionnement d'une auto-int, de la table des vecteurs, du mode superviseur/utilisateur, le principe général des grays (clignotement), et après je me dépatouille.
[...]
Mais je ne nie que ça puisse apporter beaucoup au rédacteur en effet.
PpHd (./47) :
Le C possède une librairie standard, pas l'asm.
Tu as toujours des registres / de la mémoire / des caches / des pipelines / des out of order / des latences / des read / des writes / des add,sub,and... / des mul, div / des shift.
PpHd (./47) :
Au niveau de la compréhension, oui. Au niveau pratique, par contre, avec l'ASM, tu te limites à une génération de CPU. Donc tu dois maintenir ton code à chaque nouvelle génération ce qui peut être lourd. Mais parfois nécessaire pour certains calculs.
Franchement, l'architecture varie pas tant que çà. Tu as toujours des registres / de la mémoire / des caches / des pipelines / des out of order / des latences / des read / des writes / des add,sub,and... / des mul, div / des shift.
Kevin Kofler (./49) :
Sinon, j'ai un autre point à rajouter: en C, si on ne fait pas exprès d'écrire du code illisible, on n'a en général pas besoin de commentaires, ou de très peu de commentaires, pour comprendre son code (et en général celui des autres aussi). En assembleur, il est impératif de commenter, sinon on ne comprend vite plus son propre code! (Genre "mais qu'est-ce que j'ai donc mis dans le registre %a3 ici, et c'est quoi 4(%a2,%d7.l)?")
PpHd (./47) :squale92 (./39) :
Après, sur un PC moderne, ça coutera tellement plus cher de passer du temps à apprendre des notions d'asm que d'acheter un n-ième serveur (ou un n-ième cpu, ou un n-ième Go de RAM, ou quelques centaines de MHz de plus, ...)...
Pas forcément
Kevin Kofler (./49) :
Non.
Sur le 68000, tu n'as pas de cache, le pipeline se limite à un prefetch de quelques octets, il n'y a pas d'out of order.
Il y a aussi des processeurs sans instructions de multiplication ni de division, par exemple le Z80.
Et il y a les architectures VLIW comme l'Itanium qui sont très différentes (les jeux d'instructions classiques essaient de cacher l'out of order, le VLIW pas du tout, c'est au compilateur ou à la personne qui écrit en assembleur de s'en occuper).
Pourtant, tu connais ces machines, je ne comprends donc pas pourquoi tu généralises comme ça.
Pollux (./50) :
Mais sur 68k y a ni cache ni out of order (donc ni latence), c'est à la fois un avantage parce qu'on voit mieux ce qui se passe et que c'est plus facile d'optimiser et de comprendre les concepts de base (le temps d'exécution d'une boucle sur un processeur moderne est un peu "magique" alors qu'il se compte de tête sans problème sur 68k) et un inconvénient parce que ça ne correspond pas à la réalité des processeurs actuels.
squale92 (./53) :
moué, enfin, si tu travailles dans un environnement "normal"