La mémoire en octets · Leçon 9 sur 30 · environ 9 minutes
Octets et limites
Découvrez pourquoi la mémoire réduit les valeurs mais pas les registres.
01 / Expliquer
Comprendre l’idée
Un octet possède 256 valeurs possibles, de 0 à 255. STORE ne garde que les huit bits de poids faible : 256 devient 0, −1 devient 255 et 511 devient 255. C’est la règle documentée value & 255.
Les registres conservent les calculs sur les entiers représentables exactement. LOAD 256 place bien 256 dans R0 ; seule l’écriture en mémoire d’un octet change sa représentation. L’indicateur de dépassement signale la limite des entiers signés sur 32 bits sans réduire automatiquement le résultat arithmétique.
02 / Essayer
Observer le fonctionnement
Les résultats attendus sont 256, 0, 255. L’adresse 255 est valide ; l’adresse 256 ne l’est pas.
LOAD 256
PRINT
STORE 255
LOAD [255]
PRINT
LOAD -1
STORE 255
LOAD [255]
PRINT
HALTAvancez pas à pas pour suivre une instruction à la fois. Vous pouvez modifier l’exemple et le rejouer.
03 / Défi
Le faire fonctionner
Lisez un entier, enregistrez-le à l’adresse 255, relisez l’octet obtenu et affichez-le. Ne remplacez pas ce traitement par une réponse fixe.
Le vérificateur exécute votre programme actuel de l’éditeur sur une nouvelle machine pour chacun des 4 cas de test. Il fournit lui-même les entrées et la mémoire préparée ; la sortie et la mémoire actuelles du laboratoire ne décident pas du résultat.
INPUT
#
HALTBesoin d’un indice ?
L’instruction STORE du processeur effectue déjà la conversion en octet.
Afficher une solution expliquée
Lisez le programme, prévoyez l’effet de chaque instruction, puis suivez-le pas à pas dans le laboratoire.
INPUT
STORE 255
LOAD [255]
PRINT
HALTLaboratoire du processeur en émojis
Programme en émojis
Saisissez LOAD, ADD ou un autre nom d’instruction, puis Espace pour insérer l’émoji. Ctrl/⌘ + Entrée exécute ou suspend ; Échap suspend ; Ctrl/⌘ + ] indente. Tab déplace le focus. Les étiquettes utilisent deux-points. Les sauts utilisent des adresses d’instructions à partir de zéro.
Carte des instructions et points d’arrêt (0)
Un point d’arrêt suspend avant son instruction. Exécuter franchit une fois le point d’arrêt actuel ; Pas à pas exécute directement son instruction. Modifier le code efface les anciens points d’arrêt et l’état machine.
Registres du processeur
- R0
- 0
- R1
- 0
- R2
- 0
- R3
- 0
- R4
- 0
- R5
- 0
- R6
- 0
- R7
- 0
Piles et cadres de boucle
SP = 255 − profondeur des données − profondeur des appels. La pile est distincte de la mémoire.
Pile de données (bas → haut)
Vide
Adresses de retour des appels (bas → haut)
Vide
Cadres de boucle
Vide
Sorties et entrées
Exécutez une instruction PRINT pour voir une sortie.
Entrées en attente: Vide
Mémoire · 256 octets · 0 non nuls
Chaque case indique adresse:valeur. R = lecture à ce pas ; W = écriture à ce pas. Sélectionnez une case pour l’examiner ou l’initialiser avant l’exécution. Les flèches déplacent la sélection, Début/Fin visent les extrémités de la ligne et Ctrl/⌘ + Début/Fin celles de toute la mémoire.
Trace d’exécution · 0 entrées
Les entrées récentes sont ci-dessous. Examinez n’importe quel indice à partir de zéro pour voir les états complets et indépendants avant et après.
Vérifier votre défi
Vous pouvez lancer cette vérification à tout moment. Tous les cas doivent réussir pour enregistrer la leçon comme terminée.
La progression utilise seulement localStorage. Elle reste dans ce navigateur et n’est jamais envoyée à un serveur.