[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Documentation complète sur la compilation de programmes



On Monday 04 January 2016 21:27:07 enae wrote:
> vu qu'un compilateur transforme du code lisible par un humain en code 
> machine, comment sait-il en quoi il doit transformer ce code lisible par 
> un humain?
> comment connait-on les spécifications du "code machine"? (je devine que 
> cela est certainement une suite de 0 et de 1, et très certainement 
> fortement dépendant du processeur et de son architecture)
> comment le processeur sait-il ce qu'il a à faire en voyant ce code machine?
> comment est chargé ce code machine dans le processeur ? (j'aurai 
> tendance à penser à grub, mais, à la mise sous tension du processeur, à 
> t+1 qu'est-ce qui fait le processeur commence à faire une tâche?)

Prenons cet exemple d'une instruction assembleur du processeur
Motorola série 6800 :

charger l'accumulateur A (load) de la valeur 1000 (binaire) :
LDAA #0X1000  (load A value 1000 binary)
Code en hexadécimal :
CE 1000
Code machine compréhensible par le processeur :
1100 1110 1000

Exemple plus simple,
mettre à zéro l'accumulateur A :
CLRA  (Clear Accumulateur A)
Code en hexadécimal :
4F 
Code machine compréhensible par le processeur :
0100 1111

Équivalent de RAZ accumulateur A avec load :
charger l'accumulateur A (load) de la valeur 0000 (binaire) :
LDAA #0X0000  (load A value 0000 binary)
Code en hexadécimal :
CE 0000
Code machine compréhensible par le processeur :
1100 1110 0000

Le # exprime une valeur binaire.
Je ne suis plus sûr si c'est LDAA ou LDA...

On voit qu'il serait impossible de programmer
en hexadécimal et pire en code machine,
d'où la nécessité de créer un langage à la portée
de l'humain.

André



Reply to: