Envoyé par
Obsidian
Bonjour,
Cela te sera très bénéfique, puisque c'est probablement le langage qui se rapproche le plus du fonctionnement réel du micro-processeur après l'assembleur lui-même. Cela reste deux langages très différents, cependant.
Ce n'est pas bien grave. La plupart des systèmes d'exploitation sont faits pour être utilisés depuis le C ou des langages de plus haut niveau. Il y aura bien un peu de programmation système à faire aujourd'hui pour pouvoir faire fonctionner ton programme dans l'environnement dans lequel tu travailles, à moins d'écrire des logiciels bootables (et de les utiliser dans une VM pour éviter de redémarrer à chaque fois).
Pas tout-à-fait. À ce stade, en fait, elle est déjà en binaire. L'hexadécimal n'est qu'une façon commode et humainement lisible de représenter les nombres, et spécialement les nombres en binaire puisqu'un chiffre hexadécimal correspond exactement à quatre chiffres binaires. Il est donc très facile de convertir l'un vers l'autre, sans avoir à faire un calcul pour effectuer la conversion.
Pour la même raison qu'il y a des Airbus et des Boeing sur le marché des avions de ligne. Même s'ils fonctionnent tous suivant le même principe, chaque assembleur va être propre à un fabricant ainsi qu'à la famille de puces que celui-ci a conçu.
Par contre : il arrive fréquemment que différents fabricants se mettent à produire leur propre version d'un même modèle de circuit, comme le 80x86 produit initialement par Intel. Ainsi, un x86 de chez AMD aura le même jeu d'instruction qu'un x86 authentique de chez Intel, puisque c'est l'idée.
C'est d'ailleurs ce qui s'est passé avec les ordinateurs à partir de 1990 et c'est d'ailleurs très regrettable. Dans les années 1980, les ordinateurs personnels étaient des huit bits. Même s'ils fonctionnaient tous suivant les mêmes grandes lignes générales, chaque fabricant proposait une gamme composée de 5 à 10 modèles de machines uniquement et chaque gamme correspondait à une famille d'ordinateurs propre, conçus depuis zéro et incompatibles (car différents) des gammes des autres fabricants. C'est ce qui se fait d'ailleurs toujours dans l'automobile, par exemple : toutes les voitures sont conçues globalement de la même façon mais indépendamment les unes des autres, et tu ne monteras pas une pièce de Volkswagen sur une Renault, sauf pour certaines parties standardisées par l'industrie, voire même définies par décret.
Ainsi, les Oric, Thomson, Amstrad CPC, Commodore (C64 et 128), etc. pour les 8 bits puis les vénérables Atari ST, et Amiga (de Commodore également) pour les 16 bits étaient tous des ordinateurs issus d'une conception propre et dotés d'une communautés d'utilisateurs bien à eux.
À partir de 1990, c'est l'IBM PC qui a supplanté tout le reste sur le marché, alors que le modèle original était cher, assez mal conçu et plus tourné vers le milieu professionnel que vers le grand public. Si bien qu'aujourd'hui, hormis Apple, les ordinateurs de différentes marques que tu peux acheter dans le commerce sont en fait tous des déclinaisons de l'IBM PC original (avec lequel ils n'ont pourtant plus grand chose en commun après 35 ans d'existence). À*tel point que les gens pensent aujourd'hui que « PC » (Personal Computer) est un terme générique pour désigner un ordinateur personnel alors qu'il s'agit au contraire d'une marque déposée.
Le nombre des instructions et leurs performances sont directement liées au micro-processeur que tu utilises. En fait, l'assembleur EST le langage de ton micro-processeur. Ce n'est pas censé être un langage interprété abstrait comme pourraient l'être le Python, le bytecode du Java ou certains langages de scripts, et qui serait ensuite reconnus ou non par différentes puces, même si on y tend un peu ces derniers temps.
Non, car c'est précisément pour cette raison que le langage C a été développé, et c'est aussi pour cela qu'il est resté populaire aussi longtemps.
La syntaxe Intel vs AMD, je n'en ai jamais entendu parler. En revanche, il y a la syntaxe Intel vs. la syntaxe AT&T. « AT&T » est la compagnie de téléphone qui possédait la Bell company et par conséquent les Bell Labs, d'où sont issus rien de moins que le transistor, UNIX et le langage C. Par conséquent, les assembleurs et compilateurs C proposés sous UNIX essaient de suivre un modèle prédéfini et assez illisible pour désigner de manière plus ou moins universelle les registres du processeur, les instructions et les différents modes d'adressage. C'est assez rébarbatif, surtout comparé à la présentation épurée qui a été choisie en parallèle par Intel et à peu près tous les fabricants de puce. Le côté historique s'opposant à l'état de l'art dans le reste de l'informatique, et comme les deux sont très répandus, beaucoup de compilateurs sont aujourd'hui capables de reconnaître les deux syntaxes, sur demande.
C'est une confusion de langage : « assembleur » désigne à la fois le type de langage lui-même et le compilateur qui va te permettre de produire du langage machine à partir de ce que tu as écrit.
Il y en a eu plusieurs, de tous temps et sur toutes les plateformes. Cependant, sur PC en particulier, MASM, pour Microsoft Assembler, a eu un grand succès dans les années 1990, puis a été presque écrasé par TASM, Turbo Assembler de Borland, qui reprenait le même modèle, en apportant beaucoup d'améliorations. Par la suite, les autres logiciels, même libres, ont choisi de se nommer plus ou moins de la même façon même si ça n'a jamais été une obligation. Les plus célèbres aujourd'hui sont NASM (Netwide Assembler) et FASM (Flat Assembler)
À ton service.
Partager