Page 2 sur 2

Re: Adresse de démarrage de kernel.img

Posté : jeu. 4 oct. 2018 16:56
par spourre
VincentLeboulou a écrit :
jeu. 4 oct. 2018 15:06
me semble particulièrement intéressant surtout pour le gdb mais c'est du C et pour l'instant, je suis dans l'écriture des fonctions nécessaires en assembleur ARM. Dès que j' aurais un peu plus de temps libre, je testerai ce projet sur mon raspberry.
...
Bonjour Vincent,

On ne va pas se lancer dans une guerre picrocholine du style le C contre le monde :evil:
Vous avez choisi l’assembleur, c'est votre choix et il est respectable.
Il faut savoir qu'il est très facile, avec GNU, de faire cracher le code assembleur qui est généré, en coulisses, par le compilateur. Vous pouvez optimiser ce code, en fonction de vos compétences, mais le compilateur est un très bon compilateur.
Sur des parties critiques, vous pouvez inclure directement du code assembleur dans le source en C.
Enfin, le C comporte des opérations de bas niveau (champ de bits, décalage droite gauche, masquage, registre...) qui permettent souvent de s'affranchir de l'assembleur.

Sylvain

Re: Adresse de démarrage de kernel.img

Posté : jeu. 4 oct. 2018 17:40
par destroyedlolo
Salut,

Alors, je ne sais plus exactement comment ca marche car j'avais joué avec ca il y a des ... décénies et en plus sur du m68k et non de l'ARM mais ca devrait etre la même chose.

Si je me rappelle bien, c'est encore plus simple de tracer directement le code en assembleur car il n'a même plus a faire la "translation" entre les lignes de C et le code binaire correspondant (a l'exception bien sur si tu uses et abuses des macro). Par contre, il faut lui fournir les informations sur les "labels" utilisés ... ce qu'est sensé faire de lui-même un assembleur civilisé.

Pour la question plus philosophique assembleur ou pas : de mon point de vue, c'est une très bonne chose de connaitre l'assembleur. Ca permet de savoir comment ça se passe réellement sous le capot et de pouvoir décoder les binaires si les besoins se font sentir.
Meme si je suis rapidement passé au C ce qui permet d'avoir un code portable entre toutes les archis tout en gardant des perfs décentes (ouai, C reste mon langage préféré :) ).

Re: Adresse de démarrage de kernel.img

Posté : jeu. 4 oct. 2018 17:59
par Artemus24
Salut à tous.
VincentLeboulou a écrit :Je suis dans l'écriture des fonctions nécessaires en assembleur ARM.
Pour le fun, oui, vous pouvez faire de l'assembleur.
Mais c'est se casser la tête pour rien, car le langage C est déjà très proche de la machine.
le langage C a été créé justement pour écrire le système d'exploitation UNIX dans les années 70.
Et comme le dit si bien destroyedlolo, le code est portable ! Que demander de plus ?

Pourquoi réinventer le fil à couper le beurre à chaque fois que l'on en a besoin ?
Le compilateur C vous permet d'optimiser votre code. Pourquoi s'en passer ?
Et je ne parle même pas des bibliothèques qui sont à votre disposition.

C'est aussi mon langage préféré !

@+