Le Samedi 21 Juillet 2001 18:47, Le Bot Jean-Michel a �crit :
> Je suis en train de lire le livre de Linus Torvalds (Il �tait une fois
> Linux, �ditions OEM). Le p�re de notre OS favori y raconte comment dans la
> premi�re moiti� des ann�es 80, avec son Commodore Vic-20 puis son Sinclair
> QL, il programmait en langage assembleur voire m�me en langage machine
> (alors que C existait d�j�, cf. p. 71) !!!
C'�tait tout � fait courant � l'�poque avec des machines lentes (ex perso ma
pr�mi�re machine : Z80 1Mhz, 64K de m�moire, stockage des programmes sur PROM
car le lecteur de cassette n'�tait pas fiable), les compilateurs �taient
chers et encombrants dans le cas de petites configurations. Sur un Apple II,
il fallait jongler avec les disquettes pour compiler 1 programme pascal UCSD.
Les compilateurs se sont r�pandus avec l'apparition des disques durs.
> Question : est-ce que ce genre de chose est toujours possible aujourd'hui ?
> Puis je �crire "Bonjour Monde" dans une console en le programmant
> directement en langage assembleur voire en langage machine ? Si oui comment
> ?
> (C'est l'exp�rience historique qui m'int�resse, un peu comme celle de Thor
> Heyerdhal traversant le Pacifique avec le Kon-Tiki pour essayer de
> comprendre comment ce fut possible des si�cles auparavant).
> Alors, si quelqu'un sait... merci d'avance
Bonjour,
Voici quelques �l�ments de r�ponse :
Le langage assembleur demande une connaissance pr�cise de l'architecture du
processeur cible (fonctionnement des registres, des interruptions, de
l'adressage,..).
La synthaxe est sp�cifique � chaque famille de processeur ( Motorola, Intel,
ARM, etc..) avec des s�ries d'instructions sp�cifiques � une
sous-famille (ex: MMX sur Pentium).
A cause de cela un programme optimis� pour un pentium ne pourra pas �tre
assembl� en 386 puisque certaines instructions seront inconnues et encore
moins sur un motorola puisque le language est compl�tement diff�rent.
L'id�e est donc d'utiliser un langage de plus haut niveau ind�pendant de la
machine de type c, le compilateur se chargeant de g�n�rer le code assembleur
n�cessaire � l'architecture utilis�e.
A titre d'exemple :
-Cr�er un directory essc
- y cr�er le fichier bonjour.c contenant les 5 lignes suivantes:
#include <stdio.h>
void main()
{
printf("Bonjour monde.\n");
}
- compiler avec : gcc bonjour.c -o bonjour
- lancer le programme g�n�r� avec : ./bonjour
-pour voir le code assembleur n�cessaire faire un : gcc -S bonjour.c
- �diter le fichier bonjour.s
Amicalement.
--
JB JACQUET
[EMAIL PROTECTED]