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]

Répondre à