salut,
je voudrais savoir ce que signifie théoriquement et concretement lorsqu'on dit qu'un programme est d'une version 16 bits, 32 bits, 64 bits, etc.
Merci pour tout
salut,
je voudrais savoir ce que signifie théoriquement et concretement lorsqu'on dit qu'un programme est d'une version 16 bits, 32 bits, 64 bits, etc.
Merci pour tout
je pense que cela tient au jeu d'instructions du processeur d'une part (mais compatibilité ascendante), mais que l'influence la plus grande est liée au mode d'adressage de la mémoire, donc à sa pagination éventuelle.
à vérifier !
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Non en fait c'est surtout et essentiellement la taille des entiers de base. En Pascal/Delphi, il s'agit du type Integer. Sous Delphi 1 (16 bits), ce type a une taille de 16 bits - 2 octets - donc peut contenir des valeurs de -65536 à 65535. Sous Delphi 2+ (32 bits), ce type fait 4 octets. En 64 bits, il en fait 8.
Les entiers de base étant le type le mieux géré par le processeur. On parle donc de processeurs 16 bits, 32 bits ou 64 bits.
Mais en effet cela a des retombées immédiates sur les paginations mémoire et ce genre de chose. Par exemple, en 16 bits, un tableau ne peut excéder les 65535 octets.
sjrd, ancien rédacteur/modérateur Delphi.
Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
Découvrez Mes tutoriels.
Bonjour,
A la base, il s'agit de la taille du bus mémoire.version 16 bits, 32 bits, 64 bits
C'est-à-dire du nombre de bits que le processeur peut charger en faisant un seul adressage mémoire.
Les programmes sont dits 16, 32 ou 64 bits loorsque les compilateurs exploitent cette largeur de bus pour optimiser les accès, avec les conséquences exposées par sjrd.
Ce n'est pas plutot la taille des registres du processeur ( qui n'a pas toujours été égal à la largeur du bus) ?Envoyé par Graffito
Bonjour,
Exact, en 1985, l'intel 8088 (bus 8 bits) utilisait un jeu d'instruction 16 bits, celui du 8086 (bus 16bits).Ce n'est pas plutot la taille des registres du processeur ( qui n'a pas toujours été égal à la largeur du bus) ?
Celà dit, il existe des instructions fonctionnant sur des paires de registres.
Exemple : addition 16bits sur processeurs 8 bits.
Juste une petite chose, 16 bits, c'estEnvoyé par sjrd
soit -32767 à 32768 (entier signé)
soit 0 à 65535 (entier non signé)
mais pas -65535 à +65535
sinon +1 pour tout![]()
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
En fait c'est le contraire: -32768 à 32767![]()
@Mushroom7 : + 1 !
Sinon, juste une précision :la taille du registre « PC » (Program Counter). Car certains registres peuvent être plus petits.Ce n'est pas plutot la taille des registres du processeur
Mes 2 cts,
--
jp
Euh oui j'ai pas fait attentionEnvoyé par TicTacToe
Mais comme l'a fait remarquer Mushroom, toi non plus
Sans rancune![]()
sjrd, ancien rédacteur/modérateur Delphi.
Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
Découvrez Mes tutoriels.
yep![]()
![]()
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
Partager