![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre régulier
![]() Date d'inscription: août 2008
Localisation: Canada
Messages: 125
|
Si j'ai bien compris, un processeur 8 bits est capable d'effectuer des opérations sur des nombres de 8 bits (16bits, nombres de 16 bits - 32 . . . on comprend la suite)
Je me demande, si on prend par exemple une variable double en c, cette valeur utilise 64 bits de mémoire . . . Comment un processeur 32 bits fait pour effectuer des opérations avec un nombre si gros? Merci d'essayer de me faire comprendre tout ça Alex |
|
|
|
|
|
#2 (permalink) |
|
Membre habitué
![]() Date d'inscription: mai 2008
Localisation: Paris
Messages: 157
|
En mémoire, on peut stocker des nombres de taille très très grande, bien plus grande que celle d'un registre. On pourrait très bien avoir un nombre de 1024 bits par exemple ! Grosso modo, en admettant que l'on travaille sur des registres de 8 bits, il faudra beaucoup d'opérations pour faire un calcul sur de tels nombres.
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
|
|
|
#3 (permalink) |
|
Membre chevronné
![]() Date d'inscription: juin 2008
Messages: 650
|
Il ne faut pas confondre l'espace adressable (16 bits, 32 bits, 64bits) et la "taille" des données sur lesquelles le CPU va faire une opération: 8, 16, 32, 64, ... bits.
=> un processeur peut avoir un espace d'adressage 32 bits et "savoir" faire l'addition d'entiers représentés par des champs de longueur 16 ou 64 bits. Cela est limité par la taille des registres du CPU. Note: ce qui n'interdit pas l'écriture de programmes pouvant travailler sur des nombre plus grands, mais nous ne parlons plus de capacités d'un CPU dans ce cas. - W |
|
|
|
|
|
#4 (permalink) | |
|
Membre expérimenté
![]() Date d'inscription: septembre 2007
Localisation: Évry
Âge: 32
Messages: 544
|
Citation:
Tu fais parfois de même : Quand tu fais une division sur papier, tu peux traiter un nombre d'une longueur arbitraire en prenant les chiffres les plus à gauche, en les réduisant au minimum, puis en faisant descendre le chiffre suivant, et ce jusqu'à ce qu'il n'en reste plus. Tu travailles donc au niveau du chiffre, et tu itères ton algorithme. Ton processeur va procéder exactement de la même façon, soit par câblage, soit avec un programme, en utilisant des mots de taille fixe, par exemple 8 bits ou 32 bits. |
|
|
|
|
|
|
#5 (permalink) | |||
|
Expert Confirmé Sénior
![]() ![]() Date d'inscription: novembre 2005
Messages: 3 870
|
Citation:
Ce nombre de bits n'a pas de rapport fixe avec la largeur des circuits internes faisant les calculs -- à supposer pour commencer que ces circuits aient tous la même largeur. Dans certains cas, les circuits sont plus larges parce qu'aussi utilisé pour d'autres choses, dans d'autres ils sont plus étroits; dans ce dernier cas, les opérations sont faites en plusieurs temps. Citation:
Citation:
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|||
|
|
|
|
|
#6 (permalink) | |||
|
Membre expérimenté
![]() Date d'inscription: septembre 2007
Localisation: Évry
Âge: 32
Messages: 544
|
Citation:
- la taille de son ALU ; - la largeur de son bus de données. Citation:
Citation:
D'autre part, les segments du mode réel des processeurs Intel 8088 et 80x86, qui ont causé autant de tracas aux débutants que les pointeurs du C, s'expliquent aussi de cette manière, il était beaucoup plus facile de faire deux registres de 16 bits (dont un existait déjà) plutôt qu'un grand registre de 20 bits. Non seulement il aurait fallu prévoir un bus interne spécial pour le charger, mais en plus cela aurait brisé la compatibilité ascendante. En outre, le décalage de 4 bits du registre de segment par rapport à celui d'offset permettait de rendre immédiatement relogeables les programmes qui ne l'étaient pas, avec une granularité de 16 octets. |
|||
|
|
|
|
|
#7 (permalink) |
|
Membre régulier
![]() Date d'inscription: août 2008
Localisation: Canada
Messages: 125
|
J'ai trouvé le livre "How Computers Work" de Roger Young (Il offre une copie en-ligne gratuite) qui part vraiment de la base complète. Je crois que je vais en apprendre beaucoup! C'est une bonne lecture avant de dormir
|
|
|
|
|
|
#8 (permalink) | |||||||
|
Expert Confirmé Sénior
![]() ![]() Date d'inscription: novembre 2005
Messages: 3 870
|
Citation:
Citation:
Dans le cas de l'ALU, il peut y en avoir plusieurs de largeur differente, etre plus large que necessaire pour les registres d'usage general, parce que reutilisee pour autre chose (par exemple pour le calcul d'adresse), ou etre de largeur inferieur et les operations effectuees sequentiellement. Dans le cas du bus de donnees, il peut etre multiplexe avec le bus d'adresse plus large, il peut etre plus petit que les registres d'usage generaux et les lectures se font en plusieurs temps, il peut etre plus grand parce qu'il est utilise pour remplir des caches et qu'il a la largeur d'une ligne de cache. Citation:
Citation:
Citation:
Citation:
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|||||||
|
|
|
|
|
#9 (permalink) |
|
Membre chevronné
![]() Date d'inscription: octobre 2002
Localisation: Banlieue lutécienne
Âge: 49
Messages: 626
|
En matière d'échec, il y en eut un somptueux : le 80186 !
Car les PC sont passés du 8086 au 80286 sans transition. Faut dire que le 80186 n'apportait pas beaucoup de nouveautés par rapport au 8086. |
|
|
|
|
|
#10 (permalink) |
|
Expert Confirmé Sénior
![]() ![]() Date d'inscription: novembre 2005
Messages: 3 870
|
Il a eu une assez belle carriere dans l'embarque, ce qui etait sa cible. Pas un echec cuisant comme l'Itanium ou l'IAPX 432 (si je me souviens bien de la denomination).
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
|
|
#11 (permalink) |
|
Membre chevronné
![]() Date d'inscription: octobre 2002
Localisation: Banlieue lutécienne
Âge: 49
Messages: 626
|
Ahum !
Bon, après vérification : Le 80186 est arrivé après le 80286 (là, j'ai eu tout faux précédemment). En fait, il contenait plus d'instructions. Mais je maintiens qu'il a eu peu de succès. Sauf à admettre que sa seule destination était l'embarqué. Ce que mes sources ne précisent pas (Les Microprocesseurs, Dunod, 1995). |
|
|
|
|
![]() |
![]() |
||
Architecture processeur (8,16,32,64 bits)
|
||
| Outils de la discussion | |
|
|