Skip to content · ⁨Passer au contenu⁩

Fonctionnement de base du processeur

Informatique A-Level · Topic 4 · ⁨Sujet 4⁩

Train · ⁨Entrainer⁩
Video lesson for this topic · ⁨Leçon vidéo pour ce sujet⁩ Open the video page · ⁨Ouvrir la page vidéo⁩
21:32

Architecture Von Neumann

Pendant la plupart de l'histoire, une machine faisait une seule chose. Un métierage tissait du tissu. Une calculatrice ajoutait. Pour lui faire faire quelque chose de nouveau, vous la reconstruisiez. Puis est venue une simplement déceptive…

English narration · English + 中文 subtitles burned in · ⁨Narration en anglais · Sous-titres anglais + 中文 incrustés⁩

4.1

Von Neumann architecture · ⁨Architecture Von Neumann⁩

Syllabus · ⁨Programme⁩
English
Candidates should be able to: Notes and guidance
Show understanding of the basic Von Neumann model for a computer system and the stored program concept
Show understanding of the purpose and role of registers, including the difference between general purpose and special purpose registers Special purpose registers including: • Program Counter (PC) • Memory Data Register (MDR) • Memory Address Register (MAR) • The Accumulator (ACC) • Index Register (IX) • Current Instruction Register (CIR) • Status Register
Show understanding of the purpose and roles of the Arithmetic and Logic Unit (ALU), Control Unit (CU) and system clock, Immediate Access Store (IAS)
Show understanding of how data are transferred between various components of the computer system using the address bus, data bus and control bus
Show understanding of how factors contribute to the performance of the computer system Including: • processor type and number of cores • the bus width • clock speed • cache memory
Understand how different ports provide connection to peripheral devices Including connection to: • Universal Serial Bus (USB) • High Definition Multimedia Interface (HDMI) • Video Graphics Array (VGA)
Describe the stages of the Fetch-Execute (F-E) cycle Describe and use 'register transfer' notation to describe the F-E cycle
Show understanding of the purpose of interrupts Including: • possible causes of interrupts • applications of interrupts • use of an Interrupt Service Routine (ISR) • when interrupts are detected during the fetch-execute cycle • how interrupts are handled
Français
Les candidats doivent être capables de : Notes et orientations
Montrer la compréhension du modèle de base Von Neumann pour un système informatique et du concept de programme stocké
Montrer la compréhension du but et du rôle des registres, y compris la différence entre les registres à usage général et les registres à usage spécial Registres à usage spécial incluant : • Compteur de programme (PC) • Enregistreur de données mémoire (MDR) • Enregistreur d'adresse mémoire (MAR) • L'accumulateur (ACC) • Registre index (IX) • Enregistreur d'instruction courante (CIR) • Registre d'état
Montrer la compréhension du but et des rôles de l'Unité arithmétique et logique (ALU), de l'Unité de commande (CU) et de l'horloge système, du Stockage à accès immédiat (IAS)
Montrer la compréhension de la manière dont les données sont transférées entre divers composants du système informatique en utilisant le bus d'adresse, le bus de données et le bus de contrôle
Montrer la compréhension de la manière dont les facteurs contribuent aux performances du système informatique Y compris : • type de processeur et nombre de cores • la largeur du bus • vitesse d'horloge • mémoire cache
Comprendre comment différents ports assurent la connexion à des périphériques Y compris la connexion à : • Universal Serial Bus (USB) • High Definition Multimedia Interface (HDMI) • Video Graphics Array (VGA)
Décrire les étapes du cycle Fetch-Execute (F-E) Décrire et utiliser la notation 'register transfer' pour décrire le cycle F-E
Montrer la compréhension du but des interruptions Y compris : • causes possibles d'interruptions • applications des interruptions • utilisation d'une routine de service d'interruption (ISR) • moment où les interruptions sont détectées pendant le cycle fetch-execute • manière dont les interruptions sont gérées

Source: Cambridge International syllabus · ⁨Source : Programme Cambridge International⁩

English
The fetch-decode-execute cycle

The Von Neumann architecture 冯·诺依曼体系结构 underlies almost every general-purpose computer:

  • a single memory — the Immediate Access Store 立即存取存储器 (IAS) — holds both program instructions and data (the stored program 存储程序 concept).
  • a processor 处理器 (CPU) fetches instructions from memory and runs them one at a time.
  • instructions run in order unless a branch changes the flow.

The stored-program idea is what makes a computer flexible: change the program and you change what it does, with no rewiring.

Français
Le cycle fetch-décodage-exécution

L'architecture Von Neumann 冯·诺依曼体系结构 sous-tend presque tous les ordinateurs à usage général :

  • une mémoire unique — la Immediate Access Store 立即存取存储器 (IAS) — contient à la fois les instructions de programme et les données (le concept de stored program 存储程序).
  • un processor 处理器 (CPU) récupère les instructions depuis la mémoire et les exécute une par une.
  • les instructions s'exécutent dans l'ordre sauf si une branche modifie le flux.

L'idée de stored-program rend l'ordinateur flexible : changer le programme change ce qu'il fait, sans câblage.

Explore · ⁨Explorer⁩

Tapez sur les parties d'un ordinateur de Von Neumann

Explorez chaque bloc. Le CPU (unité de contrôle, ALU, registres) communique avec une seule mémoire principale via les bus — et cette mémoire partagée unique pour les instructions ET les données est l'idée de Von Neumann.

Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
Immediate Access Store/ɪˈmiːdɪət ˈækses stɔː/ 立即存取存储器 lì jí cún qǔ cún chǔ qì
stored program/stɔːd ˈprəʊɡræm/ 存储程序 cún chǔ chéng xù
processor/ˈprəʊsesə/ 处理器 chǔ lǐ qì
4.1

The CPU's main parts · ⁨Les principales parties du CPU⁩

English

All of these parts sit inside one small chip. The diagram later in this section shows how they connect; the photo below shows the real thing.

Arithmetic and Logic Unit (ALU)

The ALU 算术逻辑单元 does the arithmetic (add, subtract, …) and logic (AND, OR, comparisons). It takes operands from registers 寄存器 and puts results back in a register.

Control Unit (CU)

The control unit 控制单元 decodes each instruction and sends the control signals to carry it out — opening data paths, telling the ALU what to do, and controlling memory reads and writes.

System clock

The clock sends a steady stream of pulses that keep the CPU in step. Each instruction takes a fixed number of cycles, and the clock speed 时钟频率 (e.g. 3.8 GHz) is one factor in performance.

"Explain how the CU and the system clock work together": the clock emits pulses at a fixed frequency; the control unit uses each pulse to move the fetch-execute cycle on by one step, sending its control signals in time with the pulses, so every part of the processor changes state together. A faster clock means more steps per second, up to the point where the circuits cannot settle between pulses.

Registers

Registers are tiny, very fast stores inside the CPU. The special purpose registers 专用寄存器 each have a fixed job in the cycle:

  • Program Counter 程序计数器 (PC) — the address of the next instruction.
  • Memory Address Register 内存地址寄存器 (MAR) — the address being read or written.
  • Memory Data Register 内存数据寄存器 (MDR) — the data going to or from memory.
  • Current Instruction Register 当前指令寄存器 (CIR) — the instruction being decoded.
  • Accumulator 累加器 (ACC) — the value the ALU is working on.
  • Status Register 状态寄存器 — holds flags 标志 (carry, zero, negative, overflow) used by branches. Each flag is one bit, set or cleared by the ALU after an operation: the zero flag after a comparison that matched, the carry flag when an addition overflowed the register, the negative flag when a result is negative. A conditional jump reads the flags to decide whether to branch, and an overflow flag can raise an interrupt.
  • Index Register 变址寄存器 — an offset added to an address in indexed addressing; incrementing it steps through an array one element at a time.

The "complete the table describing the role of each register" question wants one precise sentence per register in these terms: the PC holds the address of the next instruction to be fetched; the MAR holds the address of the location being read from or written to; the MDR holds the data or instruction just read from, or about to be written to, that location; the CIR holds the instruction currently being decoded and executed; the ACC holds the result of the last arithmetic or logic operation.

General-purpose registers 通用寄存器 are used by the programmer for temporary values during a calculation. Movements of data between registers and memory are written in register transfer 寄存器传送 notation — e.g. MAR ← [PC] ("copy the contents of PC into MAR").

Français

Toutes ces parties sont situées à l'intérieur d'une petite puce. Le diagramme plus loin dans cette section montre comment elles sont connectées ; la photo ci-dessous montre le réel.

Le dessous d'une puce CPU Intel sur fond blanc, un carré plat couvert d'une grille de centaines de petits pads de contact dorés qui pressent contre le socket de la carte mère
Un processeur moderne : tout le processeur est une seule petite puce (ici vue de dessous, montrant les contacts)
Un socket CPU carré sur une carte mère, avec une grille de minuscules broches et un levier de rétention en métal, entouré de pistes de circuit
Le socle de processeur correspondant sur la carte mère : les contacts de la puce viennent se poser sur ces broches

Arithmetic and Logic Unit (ALU)

L'ALU 算术逻辑单元 effectue les opérations arithmétiques (addition, soustraction, …) et logiques (AND, OR, comparaisons). Elle prend des opérandes depuis les registers 寄存器 et place les résultats dans un registre.

Control Unit (CU)

L'control unit 控制单元 décode chaque instruction et envoie les signaux de contrôle pour l'exécuter — ouvrir les chemins de données, dire à l'ALU quoi faire, et contrôler les lectures et écritures mémoire.

System clock

L'horloge envoie un flux régulier d'impulsions qui maintiennent le CPU synchronisé. Chaque instruction prend un nombre fixe de cycles, et la vitesse d'horloge 时钟频率 (par ex. 3.8 GHz) est un facteur de performance.

"Expliquez comment la CU et l'horloge système travaillent ensemble" : l'horloge émet des impulsions à fréquence fixe ; la control unit utilise chaque impulsion pour avancer le cycle fetch-execute d'un cran, envoyant ses signaux de contrôle en phase avec les impulsions, de sorte que chaque partie du processeur change d'état simultanément. Une horloge plus rapide signifie plus d'étapes par seconde, jusqu'au point où les circuits ne peuvent plus se stabiliser entre les impulsions.

Registers

Les registers sont de petites mémoires très rapides à l'intérieur du CPU. Les special purpose registers 专用寄存器 ont chacune une tâche fixe dans le cycle :

  • Program Counter 程序计数器 (PC) — l'adresse de l'next instruction.
  • Memory Address Register 内存地址寄存器 (MAR) — l'adresse lue ou écrite.
  • Memory Data Register 内存数据寄存器 (MDR) — les données allant vers ou venant de la mémoire.
  • Current Instruction Register 当前指令寄存器 (CIR) — l'instruction actuellement décodée.
  • Accumulator 累加器 (ACC) — la valeur sur laquelle l'ALU travaille.
  • Status Register 状态寄存器 — contient des flags 标志 (carry, zero, negative, overflow) utilisés par les branches. Chaque flag est un bit, positionné ou effacé par l'ALU après une opération : le flag zero après une comparaison qui a matches, le flag carry quand une addition a débordé le registre, le flag negative quand un résultat est négatif. Un saut conditionnel lit les flags pour décider de brancher, et un flag overflow peut déclencher une interruption.
  • Index Register 变址寄存器 — un décalage ajouté à une adresse dans l'adressage indexé ; l'incrémenter permet de parcourir un tableau un élément à la fois.

La question "complete the table describing the role of each register" demande une phrase précise par registre en ces termes : le PC contient l'adresse de la prochaine instruction à récupérer ; le MAR contient l'adresse de l'emplacement lu ou écrit ; le MDR contient les données ou l'instruction juste lues depuis, ou sur le point d'être écrites vers, cet emplacement ; le CIR contient l'instruction actuellement décodée et exécutée ; l'ACC contient le résultat de la dernière opération arithmétique ou logique.

General-purpose registers 通用寄存器 sont utilisés par le programmeur pour des valeurs temporaires durant un calcul. Les mouvements de données entre registers et mémoire sont écrits en notation register transfer 寄存器传送 — par ex. MAR ← [PC] ("copiez le contenu du PC dans le MAR").

Diagramme blocs du CPU Von Neumann montrant PC, MAR, MDR, CIR, ACC, registre d'état, unité de contrôle, ALU et horloge système, liés à la mémoire principale et à l'entrée/sortie par les bus d'adresse, de données et de contrôle
Le CPU Von Neumann : registers, control unit et ALU reliés par des buses
Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
Von Neumann architecture/vɒn ˈnɔɪmən ˈɑːkɪtektʃə/ 冯·诺依曼体系结构 féng · nuò yī màn tǐ xì jié gòu
arithmetic and logic unit/ˌærɪθˈmetɪk ənd ˈlɒdʒɪk ˈjuːnɪt/ 算术逻辑单元 suàn shù luó jí dān yuán
ALU/ˌeɪ el ˈjuː/ 算术逻辑单元 suàn shù luó jí dān yuán
register/ˈredʒɪstə/ 寄存器 jì cún qì
control unit/kənˈtrəʊl ˈjuːnɪt/ 控制单元 kòng zhì dān yuán
clock speed/klɒk spiːd/ 时钟频率 shí zhōng pín lǜ
special purpose registers/ˈspeʃl ˈpɜːpəs ˈredʒɪstəz/ 专用寄存器 zhuān yòng jì cún qì
Program Counter/ˈprəʊɡræm ˈkaʊntə/ 程序计数器 chéng xù jì shù qì
Memory Address Register/ˈmeməri əˈdres ˈredʒɪstə/ 内存地址寄存器 nèi cún dì zhǐ jì cún qì
Memory Data Register/ˈmeməri ˈdeɪtə ˈredʒɪstə/ 内存数据寄存器 nèi cún shù jù jì cún qì
Current Instruction Register/ˈkʌrənt ɪnˈstrʌkʃn ˈredʒɪstə/ 当前指令寄存器 dāng qián zhǐ lìng jì cún qì
accumulator/əˈkjuːmjʊleɪtə/ 累加器 lěi jiā qì
Status Register/ˈsteɪtəs ˈredʒɪstə/ 状态寄存器 zhuàng tài jì cún qì
flags/flæɡz/ 标志 biāo zhì
Index Register/ˈɪndeks ˈredʒɪstə/ 变址寄存器 biàn zhǐ jì cún qì
indexed addressing/ˈɪndekst əˈdresɪŋ/ 变址寻址 biàn zhǐ xún zhǐ
general-purpose registers/ˈdʒenərəl ˈpɜːpəs ˈredʒɪstəz/ 通用寄存器 tōng yòng jì cún qì
register transfer/ˈredʒɪstə ˈtrænsfɜː/ 寄存器传送 jì cún qì chuán sòng
buses/ˈbʌsɪz/ 总线 zǒng xiàn
4.1

Bus

English

Three internal buses 总线 (sets of parallel wires) connect the parts:

  • address bus 地址总线 — carries the memory address. One-way (CPU → memory).
  • data bus 数据总线 — carries the data. Two-way.
  • control bus 控制总线 — carries control signals (read, write, interrupt). Two-way.

An $n$-bit address bus can reach $2^{n}$ memory locations. The data-bus width sets how many bits move per access (often the word size).

Français

Trois buses internes 总线 (ensembles de fils parallèles) connectent les parties :

  • address bus 地址总线 — transporte l'adresse mémoire. Unidirectionnel (CPU → mémoire).
  • data bus 数据总线 — transporte les données. Bidirectionnel.
  • control bus 控制总线 — transporte les signaux de contrôle (lecture, écriture, interruption). Bidirectionnel.

Une adresse-bus de $n$ bits peut accéder à $2^{n}$ emplacements mémoire. La largeur du bus de données détermine le nombre de bits transférés par accès (souvent la taille mot).

CPU, mémoire et entrée/sortie chacun connectés au bus d'adresses (unidirectionnel), bus de données et bus de contrôle dans le bus système
Les trois bus système reliant le CPU, la mémoire et l'entrée/sortie
Vue de dessus d'une carte mère : socket CPU, slots mémoire et slots d'extension reliés par des pistes imprimées denses
Une carte mère : le CPU, la mémoire et les E/S reposent tous sur un même ensemble de bus — les pistes imprimées qui les relient
Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
control bus/kənˈtrəʊl bʌs/ 控制总线 kòng zhì zǒng xiàn
address bus/əˈdres bʌs/ 地址总线 dì zhǐ zǒng xiàn
data bus/ˈdeɪtə bʌs/ 数据总线 shù jù zǒng xiàn
word size/wɜːd saɪz/ 字长 zì cháng
number of cores/ˈnʌmbə ɒv kɔːz/ 核心 hé xīn
cores/kɔːz/ 核心 hé xīn
amount of RAM/əˈmaʊnt ɒv ræm/ 随机存取存储器 suí jī cún qǔ cún chǔ qì
4.1

What affects performance · ⁨Ce qui affecte la performance⁩

English
  • clock speed — more cycles per second.
  • number of cores 核心 — a multi-core CPU runs several threads at once.
  • word size 字长 — a 64-bit CPU handles 64-bit chunks per cycle and can address far more memory than a 32-bit one.
  • amount of RAM 随机存取存储器 — more RAM holds more of the working set; too little forces the OS to page 页 to disk.
  • cache memory 高速缓存 size — more cache cuts average memory access time.
  • secondary storage 辅助存储器 type — an SSD loads programs far faster than an HDD.
  • bus width and speed — wider/faster buses move data more quickly.

Match the specs to the workload: a quad-core beats a dual-core on parallel work, but higher per-core speed wins on single-threaded work.

Each factor is a two-mark answer with a reason attached:

  • More cores: each core can fetch and execute its own instruction at the same time, so several programs, or the threads of one program, run in parallel. But a program must be written to use more than one core, so doubling the cores does not double the speed.
  • Higher clock speed: more fetch-execute cycles per second, so more instructions per second; the limit is the heat produced.
  • Wider bus: a wider data bus moves more bits in each transfer, so fewer transfers are needed for the same data; a wider address bus can address more memory locations.
  • Cache memory: a small, fast memory inside or next to the processor that keeps the instructions and data used most recently or most often. Reading them from cache is much faster than from RAM, so the processor spends less time waiting.

"Explain why the new computer performs better" is answered by comparing the two specifications line by line: a higher clock speed executes more instructions per second, more cores run more tasks at once, more cache means fewer slow accesses to RAM, and more RAM means fewer transfers to disk.

Français
  • vitesse d'horloge — plus de cycles par seconde.
  • nombre de cœurs 核心 — un CPU multi-cœur exécute plusieurs threads simultanément.
  • taille mot 字长 — un CPU 64 bits traite des blocs de 64 bits par cycle et peut adresser bien plus de mémoire qu'un 32 bits.
  • quantité de RAM 随机存取存储器 — plus de RAM retient davantage du jeu de travail ; trop peu force le système d'exploitation à faire du pageage 页 vers le disque.
  • mémoire cache 高速缓存 taille — plus de cache réduit le temps d'accès moyen à la mémoire.
  • type de stockage secondaire 辅助存储器 — un SSD charge les programmes bien plus vite qu'un HDD.
  • largeur et vitesse du bus — des buses plus larges/rapides transmettent les données plus rapidement.

Associez les spécifications à la charge de travail : un quad-core bat un dual-core sur les tâches parallèles, mais une vitesse par cœur supérieure gagne sur les tâches monothreaded.

Chaque facteur est une réponse de deux points avec une raison associée :

  • Plus de cœurs : chaque cœur peut chercher et exécuter sa propre instruction en même temps, donc plusieurs programmes, ou les threads d'un seul programme, s'exécutent en parallèle. Mais un programme doit être écrit pour utiliser plus d'un cœur, donc doubler les cœurs ne double pas la vitesse.
  • Vitesse d'horloge plus élevée : plus de cycles recherche-exécution par seconde, donc plus d'instructions par seconde ; la limite est la chaleur produite.
  • Bus plus large : un bus de données plus large转移更多位 in each transfer, so fewer transfers are needed for the same data; a wider address bus can address more memory locations.
  • Mémoire cache : une petite mémoire rapide située à l'intérieur ou à côté du processeur qui conserve les instructions et les données utilisées le plus récemment ou le plus souvent. Les lire depuis le cache est beaucoup plus rapide que depuis la RAM, donc le processeur passe moins de temps en attente.

"Expliquez pourquoi l'ordinateur neuf performe mieux" se répond en comparant les deux spécifications ligne par ligne : une vitesse d'horloge plus élevée exécute plus d'instructions par seconde, plus de cœurs exécutent plus de tâches à la fois, plus de cache signifie moins d'accès lents à la RAM, et plus de RAM signifie moins de transferts vers le disque.

Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
RAM/ræm/ 随机存取存储器 suí jī cún qǔ cún chǔ qì
page/peɪdʒ/ 页 yè
cache memory/kæʃ ˈmeməri/ 高速缓存 gāo sù huǎn cún
cache/kæʃ/ 高速缓存 gāo sù huǎn cún
secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ 辅助存储器 fǔ zhù cún chǔ qì
4.1

Ports

English

A port 端口 is a physical socket for connecting a peripheral 外围设备:

  • USB (Universal Serial Bus) — general-purpose (keyboards, drives, phones).
  • HDMI (High Definition Multimedia Interface) — digital video and audio to a screen.
  • VGA (Video Graphics Array) — older analogue video output to a monitor.
  • Ethernet (RJ-45) — wired LAN. Audio jacks — headphones/microphone.

Different ports use different signals, so an HDMI cable will not fit a USB socket. USB-C is unusual in carrying video, data and power.

"Explain how the computer connects to the monitor through HDMI": the HDMI port sends the video and the audio as one digital signal down a single cable, so no conversion to analogue is needed and the picture is not degraded; the cable carries high-definition resolutions and the monitor's own port decodes the signal. A USB device is plug-and-play: when it is connected the computer detects it, identifies it, loads or installs the driver it needs, and can supply it with power, all without a restart.

Français

Un port 端口 est une prise physique pour connecter un périphérique 外围设备 :

  • USB (Universal Serial Bus) — usage général (claviers, lecteurs, téléphones).
  • HDMI (High Definition Multimedia Interface) — vidéo numérique et audio vers un écran.
  • VGA (Video Graphics Array) — sortie vidéo analogique plus ancienne vers un moniteur.
  • Ethernet (RJ-45) — LAN filaire. Jacks audio — écouteurs/microphone.

Différents ports utilisent des signaux différents, donc un câble HDMI ne s'insère pas dans une prise USB. USB-C est inhabituel car il transporte vidéo, données et alimentation.

"Expliquez comment l'ordinateur se connecte au moniteur via HDMI" : le port HDMI envoie la vidéo et l'audio comme un seul signal numérique via un seul câble, donc aucune conversion analogique n'est nécessaire et l'image n'est pas dégradée ; le câble supporte des résolutions haute définition et le port du moniteur décode le signal. Un périphérique USB est branchement et utilisation immédiate : lorsqu'il est connecté, l'ordinateur le détecte, l'identifie, charge ou installe le pilote dont il a besoin, et peut lui fournir de l'alimentation, tout cela sans redémarrage.

Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
port/pɔːt/ 端口 duān kǒu
peripheral/pəˈrɪfərəl/ 外围设备 wài wéi shè bèi
4.1

Fetch-Execute cycle · ⁨Cycle Fetch-Execute⁩

English

The CPU repeats the fetch-execute cycle 取指-执行周期, one run per machine instruction.

Fetch

  1. the PC's address is copied to the MAR.
  2. the PC is incremented to point to the next instruction.
  3. a read signal goes over the control bus.
  4. memory puts the instruction on the data bus.
  5. it is copied into the MDR, then into the CIR.

The exam asks for these steps in register transfer notation 寄存器传送记法, where [X] means the contents of register X and [[MAR]] means the contents of the memory location whose address is in the MAR:

The order matters: the PC is incremented straight after its address has been copied, so that a jump executed later can still overwrite it. During execution the same notation describes each instruction; for LDD 200, for example, MAR ← 200, MDR ← [[MAR]], ACC ← [MDR].

Decode

The CU decodes the instruction in the CIR — what operation, and which operands or addresses.

Execute

The CU carries it out: arithmetic/logic goes to the ALU (result to the ACC); a load/store moves data between memory and a register; a branch changes the PC. Then the cycle repeats.

Français

Le CPU répète le cycle fetch-execute 取指-执行周期, une itération par instruction machine.

Fetch

  1. l'adresse du PC est copiée dans le MAR.
  2. le PC est incrémenté pour pointer vers l'instruction suivante.
  3. un signal read part sur le bus de contrôle.
  4. la mémoire place l'instruction sur le bus de données.
  5. elle est copiée dans le MDR, puis dans le CIR.

L'examen demande ces étapes en register transfer notation 寄存器传送记法, où [X] signifie le contenu du registre X et [[MAR]] signifie le contenu de l'emplacement mémoire dont l'adresse est dans le MAR :

MAR ← [PC]          the address of the next instruction goes to the MAR
PC  ← [PC] + 1      the PC now points to the following instruction
MDR ← [[MAR]]       the instruction at that address is read into the MDR
CIR ← [MDR]         the instruction is copied into the CIR for decoding

L'ordre est important : le PC est incrémenté immédiatement après que son adresse ait été copiée, afin qu'une saut exécuté ultérieurement puisse encore le modifier. Pendant l'exécution, la même notation décrit chaque instruction ; pour LDD 200, par exemple, MAR ← 200, MDR ← [[MAR]], ACC ← [MDR].

Les transferts de registres dans l'ordre : 1 l'adresse du PC va au MAR ; 2 le MAR envoie l'adresse à la mémoire ; 3 l'instruction revient au MDR ; 4 le MDR la copie dans le CIR ; pendant ce temps le PC est incrémenté
Les transferts de registres lors d'un fetch : PC → MAR → mémoire → MDR → CIR, avec incrémentation du PC

Decode

La CU décode l'instruction dans le CIR — quelle opération, et quels opérandes ou adresses.

Execute

La CU l'exécute : arithmétique/logique va vers l'ALU (résultat vers l'ACC) ; un load/store déplace des données entre la mémoire et un registre ; un branch modifie le PC. Puis le cycle recommence.

Diagramme de flux du cycle fetch-execute depuis START : étape fetch (PC vers MAR, incrémentation PC, signal read, mémoire vers bus de données vers MDR vers CIR), étape decode, étape execute, puis vérification des interruptions qui boucle vers START
Le cycle fetch-execute, avec vérification des interruptions à chaque fois
Explore · ⁨Explorer⁩

Le cycle fetch-execute

Tapez autour de la boucle que le CPU répète des milliards de fois par seconde. Regardez comment le fetch utilise les registres PC/MAR/MDR/CIR, puis comment le decode et l'execute agissent sur ce qui a été cherché.

Explore · ⁨Explorer⁩

Le cycle recherche-exécution

Parcourez comment le CPU exécute une instruction — cherchez-la en mémoire, décoder-la, puis exécutez-la, encore et encore.

Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
fetch-execute cycle/fetʃ ˈeksɪkjuːt ˈsaɪkl/ 取指-执行周期 qǔ zhǐ - zhí xíng zhōu qī
register transfer notation/ˈredʒɪstə ˈtrænsfɜː nəʊˈteɪʃn/ 寄存器传送记法 jì cún qì chuán sòng jì fǎ
4.1

Interruptions

English

An interrupt 中断 is a signal that pauses the normal cycle so the CPU can handle an urgent event (a key press, a packet arriving, a hardware fault, division by zero, the OS timer).

Handling one:

  1. finish the current instruction.
  2. save the state (PC and registers).
  3. load the address of the interrupt service routine 中断服务程序 (ISR) into the PC and run it.
  4. the ISR handles the event.
  5. restore the saved state and carry on.

Interrupts let the system respond promptly without the CPU constantly checking devices, and are how the OS multitasks.

"Explain how an interrupt from an input device is detected and handled in the F-E cycle" is a four-mark answer with these points: the device sends an interrupt signal that sets the interrupt flag in the interrupt register 中断寄存器; the processor checks that register at the end of every fetch-execute cycle, after the current instruction has finished executing; if a flag is set and the interrupt has a higher priority than the current task, the contents of the PC and the other registers are saved onto the stack 栈; the address of the interrupt service routine is loaded into the PC and the routine runs; when it finishes, the saved values are restored from the stack and the interrupted program continues from where it stopped.

Causes worth naming: a hardware interrupt from a device (a key pressed, a printer buffer empty, a network packet arriving), a software interrupt from a fault (division by zero, an illegal instruction, arithmetic overflow), a timer interrupt from the operating system marking the end of a time slice, and a power failure warning.

Français

Une interrupt 中断 est un signal qui pauses le cycle normal pour que le CPU puisse gérer un événement urgent (une touche pressée, un paquet arrivant, une panne matérielle, division par zéro, horloge OS).

Gérer une :

  1. termine l'instruction actuelle.
  2. save the state (PC et registres).
  3. charge l'adresse de la interrupt service routine 中断服务程序 (ISR) dans le PC et exécute-la.
  4. l'ISR gère l'événement.
  5. restore l'état sauvegardé et continue.

Les interrupts permettent au système de répondre rapidement sans que le CPU surveille constamment les appareils, et sont la méthode par laquelle le OS fait du multitasking.

"Expliquez comment une interrupt provenant d'un périphérique d'entrée est détectée et gérée dans le cycle F-E" est une réponse de quatre points avec ces éléments : le périphérique envoie un signal d'interruption qui positionne le flag d'interruption dans le interrupt register 中断寄存器 ; le processeur vérifie ce registre à la fin de chaque cycle fetch-execute, après que l'instruction actuelle ait fini d'être exécutée ; si un flag est positionné et que l'interruption a une priorité supérieure à la tâche actuelle, le contenu du PC et des autres registres est sauvegardé sur la stack 栈 ; l'adresse de la routine de service d'interruption est chargée dans le PC et la routine s'exécute ; lorsqu'elle finit, les valeurs sauvegardées sont restaurées depuis la stack et le programme interrompu reprend là où il s'était arrêté.

Causes dignes d'être nommées : une interrupt matérielle venant d'un appareil (une touche pressée, tampon d'imprimante vide, paquet réseau arrivant), une interrupt logicielle due à une faute (division par zéro, instruction illégale, dépassement d'arithmétique), une interrupt d'horloge provenant du système d'exploitation marquant la fin d'une tranche de temps, et un avertissement de coupure de courant.

Diagramme de flux de gestion des interrupts : le programme en cours est interrompu, le CPU termine l'instruction actuelle, sauvegarde son état (PC et registres) sur la stack, exécute la routine de service d'interruption, restaure l'état et reprend
Comment une interrupt s'intègre dans le cycle fetch-execute
Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
interrupt/ˈɪntərʌpt/ 中断 zhōng duàn
interrupt service routine/ˈɪntərʌpt ˈsɜːvɪs ruːˈtiːn/ 中断服务程序 zhōng duàn fú wù chéng xù
interrupt register/ˈɪntərʌpt ˈredʒɪstə/ 中断寄存器 zhōng duàn jì cún qì
stack/stæk/ 栈 zhàn
4.2

Assembly language and machine code

Syllabus · ⁨Programme⁩
English
Candidates should be able to: Notes and guidance
Show understanding of the relationship between assembly language and machine code
Describe the different stages of the assembly process for a two-pass assembler Apply the two-pass assembler process to a given simple assembly language program
Trace a given simple assembly language program
Show understanding that a set of instructions are grouped Including the following groups: • Data movement • Input and output of data • Arithmetic operations • Unconditional and conditional instructions • Compare instructions
Show understanding of and be able to use different modes of addressing Including immediate, direct, indirect, indexed, relative
Français
Les candidats doivent être capables de : Notes et orientations
Montrer la compréhension de la relation entre le langage assembleur et le code machine
Décrire les différentes étapes du processus d'assemblage pour un assembleur à deux passages Appliquer le processus de l'assembleur à deux passages à un programme assembleur simple donné
Tracer un programme assembleur simple donné
Montrer la compréhension que l'ensemble des instructions est groupé Y compris les groupes suivants : • Mouvement de données • Entrée et sortie de données • Opérations arithmétiques • Instructions inconditionnelles et conditionnelles • Instructions de comparaison
Montrer la compréhension et être capable d'utiliser différents modes d'adressage Y compris immédiat, direct, indirect, indexé, relatif

Source: Cambridge International syllabus · ⁨Source : Programme Cambridge International⁩

English

The CPU actually runs machine code 机器码 — bit patterns, specific to one architecture. Assembly language 汇编语言 is a readable form, with one instruction per machine instruction, written using mnemonics 助记符 like LDD, ADD, JMP. An assembler 汇编器 translates it to machine code.

Two-pass assembler

A two-pass assembler reads the source twice:

  • pass 1 builds a symbol table 符号表: each time a label 标签 (like LOOP:) appears, record its address; no code yet.
  • pass 2 generates code: translate each instruction, and when one refers to a label (like JMP LOOP), look up its address in the symbol table.

Two passes handle forward references 前向引用 (a jump to a label defined later).

Worked example. Apply the two-pass process to this program, whose first instruction is stored at address 100.

Pass 1 reads each line, counts the address it will occupy, and records every label in the symbol table: LOOP = 101 (the DEC line) and COUNT = 105 (the data line). No code is produced. Pass 2 reads the program again and translates each line into machine code, replacing each mnemonic by its opcode 操作码 and each symbolic address by the number from the symbol table: LDD COUNT becomes the opcode for LDD with operand 操作数 105, and JPN LOOP becomes the opcode for JPN with operand 101. The jump back to LOOP could have been resolved in one pass, but a jump forward to a label not yet seen could not, which is why the assembler makes two.

Example instruction set

Cambridge uses a small generic set, printed in the paper's reference table, with one general-purpose register, the accumulator (ACC), and an index register (IX). An operand written #n is a denary number, Bn a binary number and &n a hexadecimal number; <address> is a location number or a label.

Group Instruction What it does
Data movement LDM #n load the number n into ACC (immediate)
LDD <address> load the contents of the address into ACC (direct)
LDI <address> the address holds another address; load the contents of that one into ACC (indirect)
LDX <address> add IX to the address and load the contents of the result into ACC (indexed)
LDR #n load the number n into IX
MOV <register> copy ACC into the named register (IX)
STO <address> store the contents of ACC at the address
Input and output IN read a key press and put its ASCII code in ACC
OUT output the character whose ASCII code is in ACC
Arithmetic ADD <address> / ADD #n add the contents of the address, or the number, to ACC
SUB <address> / SUB #n subtract from ACC
INC <register> / DEC <register> add 1 to, or subtract 1 from, ACC or IX
Compare CMP <address> / CMP #n compare ACC with the contents of the address, or with n, and set the flag
CMI <address> compare ACC with the contents of the address held at the address (indirect)
Jump JMP <address> jump to the address unconditionally
JPE <address> / JPN <address> jump if the last compare was equal / not equal
Bit manipulation AND, OR, XOR with #n, Bn, &n or <address> bitwise operation on ACC
LSL #n / LSR #n shift ACC logically n places left or right
END end the program

The "assembly language instructions are grouped" question wants the group names, and an instruction from each: data movement, input and output, arithmetic, unconditional and conditional jumps, compare, and bit manipulation.

Français

Le CPU exécute réellement le machine code 机器码 — motifs de bits, spécifiques à une architecture. L'assembly language 汇编语言 est une forme lisible, avec une instruction par instruction machine, écrite en utilisant des mnemonics 助记符 comme LDD, ADD, JMP. Un assembler 汇编器 le traduit en machine code.

Un assembleur traduit les mnemoniques assembleur en motifs de bits de code machine
Un assembler transforme des mnemonics en motifs de bits de machine code

Two-pass assembler

Un assembleur à deux passes lit la source deux fois :

  • pass 1 construit une symbol table 符号表 : chaque fois qu'un label 标签 (comme LOOP:) apparaît, on note son adresse ; aucun code produit encore.
  • pass 2 génère le code : traduit chaque instruction, et quand l'une référence un label (comme JMP LOOP), cherche son adresse dans la table des symboles.

Deux passes gèrent les forward references 前向引用 (un saut vers un label défini plus tard).

Exemple résolu. Appliquez le processus à deux passes à ce programme, dont la première instruction est stockée à l'adresse 100.

        LDD  COUNT
LOOP:   DEC  ACC
        CMP  #0
        JPN  LOOP
        END
COUNT:  5

Le passage 1 lit chaque ligne, compte l'adresse qu'elle occupera, et enregistre chaque étiquette dans la table des symboles : LOOP = 101 (la ligne DEC) et COUNT = 105 (la ligne de données). Aucun code n'est produit. Le passage 2 relit le programme et traduit chaque ligne en code machine, remplaçant chaque mnémonique par son code opérationnel 操作码 et chaque adresse symbolique par le nombre de la table des symboles : LDD COUNT devient le code opérationnel pour LDD avec l'opérande 操作数 105, et JPN LOOP devient le code opérationnel pour JPN avec l'opérande 101. Le saut en arrière vers LOOP aurait pu être résolu en un seul passage, mais un saut avant vers une étiquette non encore vue ne le pouvait pas, c'est pourquoi l'assembleur fait deux passages.

Example instruction set

Cambridge utilise un petit ensemble générique, imprimé dans la table de référence de l'examen, avec un registre à usage général, l'accumulateur (ACC), et un registre index (IX). Un operand écrit #n est un nombre décimal, Bn un nombre binaire et &n un nombre hexadécimal ; <address> est un numéro d'emplacement ou un label.

Group Instruction What it does
Data movement LDM #n charge le nombre n dans ACC (immédiat)
LDD <address> charge le contenu de l'adresse dans ACC (direct)
LDI <address> l'adresse contient une autre adresse ; charge le contenu de celle-ci dans ACC (indirect)
LDX <address> ajouter IX à l'adresse et charger le contenu du résultat dans ACC (indexé)
LDR #n charger le nombre n dans IX
MOV <register> copier ACC dans le registre nommé (IX)
STO <address> stocker le contenu de ACC à l'adresse
Entrée et sortie IN lire une frappe clavier et mettre son code ASCII dans ACC
OUT afficher le caractère dont le code ASCII est dans ACC
Arithmétique ADD <address> / ADD #n additionner le contenu de l'adresse, ou le nombre, à ACC
SUB <address> / SUB #n soustraire à ACC
INC <register> / DEC <register> ajouter 1 à, ou soustraire 1 à, ACC ou IX
Comparer CMP <address> / CMP #n comparer ACC avec le contenu de l'adresse, ou avec n, et définir le drapeau
CMI <address> comparer ACC avec le contenu de l'adresse stocké à l'adresse (indirect)
Saut JMP <address> sauter vers l'adresse inconditionnellement
JPE <address> / JPN <address> sauter si la dernière comparaison était égale / non égale
Manipulation des bits AND, OR, XOR avec #n, Bn, &n ou <address> opération bit à bit sur ACC
LSL #n / LSR #n décaler ACC logiquement de n positions vers la gauche ou la droite
END terminer le programme

La question « les instructions en langage assembleur sont groupées » demande les noms des groupes et une instruction de chacun : mouvement de données, entrée/sortie, arithmétique, sauts inconditionnels et conditionnels, comparaison et manipulation des bits.

Explore · ⁨Explorer⁩

Comment fonctionne un assembleur à deux passages

Parcourez-le. L'assembleur lit votre code deux fois : le passage 1 trouve simplement l'emplacement de chaque étiquette, afin que le passage 2 puisse remplir les adresses — c'est ainsi qu'un saut vers une étiquette définie plus tard fonctionne encore.

Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
operand/ˈɒpərænd/ 操作数 cāo zuò shù
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ 汇编语言 huì biān yǔ yán
machine code/məˈʃiːn kəʊd/ 机器码 jī qì mǎ
mnemonics/nɪˈmɒnɪks/ 助记符 zhù jì fú
assembler/əˈsemblə/ 汇编器 huì biān qì
symbol table/ˈsɪmbl ˈteɪbl/ 符号表 fú hào biǎo
label/ˈleɪbl/ 标签 biāo qiān
forward references/ˈfɔːwəd ˈrefrənsɪz/ 前向引用 qián xiàng yǐn yòng
opcode/ˈɒpkəʊd/ 操作码 cāo zuò mǎ
4.2

Addressing modes · ⁨Modes d'adressage⁩

English

The addressing mode 寻址方式 (the modes of addressing) says how the CPU finds the operand:

  • immediate addressing 立即寻址 — the operand is the value in the instruction. LDM #10 loads 10.
  • direct addressing 直接寻址 — the instruction holds an address; the operand is the value there. LDD 200.
  • indirect addressing 间接寻址 — the instruction holds an address that holds another address, which is the data. LDI 200.
  • indexed addressing 变址寻址 — effective address is address + index register; used for arrays. LDX 100 with IR = 5 reads address 105.

(Relative addressing 相对寻址 gives the address as an offset from the PC — used for jumps.)

Worked example. Memory holds: location 200 = 250, location 250 = 99, location 105 = 7. The index register holds 5. What is in the accumulator after each of LDM #200, LDD 200, LDI 200 and LDX 100? Follow how far each mode has to look. LDM #200 is immediate - the operand is the number written in the instruction, so the accumulator holds 200. LDD 200 is direct - go to location 200 and take what is there: 250. LDI 200 is indirect - location 200 holds 250, which is another address, so go on to location 250: 99. LDX 100 is indexed - add the index register to the address, $100 + 5 = 105$, and read location 105: 7. Count the hops to keep them apart: immediate 0, direct 1, indirect 2, indexed 1 (once the index has been added).

Français

Le mode d'adressage 寻址方式 (les modes d'adressage) indique comment le CPU trouve l'opérande :

  • adressage immédiat 立即寻址 — l'opérande est la valeur dans l'instruction. LDM #10 charge 10.
  • adressage direct 直接寻址 — l'instruction contient une adresse ; l'opérande est la valeur à cet endroit. LDD 200.
  • adressage indirect 间接寻址 — l'instruction contient une adresse qui contient une autre adresse, qui est les données. LDI 200.
  • adressage indexé 变址寻址 — l'adresse effective est address + index register ; utilisé pour les tableaux. LDX 100 avec IR = 5 lit l'adresse 105.

(Adressage relatif 相对寻址 donne l'adresse comme un décalage par rapport au PC — utilisé pour les sauts.)

Quatre modes d'adressage atteignant leur opérande. Immédiat : LDM #10 donne 10 directement. Direct : LDD 200 lit l'emplacement mémoire 200 (=42). Indirect : LDI 200 lit l'emplacement 200 (=250) puis l'emplacement 250 (=99). Indexé : LDX 100 avec registre index 5 lit l'emplacement 105 (=7)
Comment chaque mode d'adressage accède à son opérande — immédiat, direct, indirect et indexé

Exemple résolu. La mémoire contient : emplacement 200 = 250, emplacement 250 = 99, emplacement 105 = 7. Le registre index contient 5. Que contient l'accumulateur après chacun de LDM #200, LDD 200, LDI 200 et LDX 100 ? Suivez jusqu'où chaque mode doit chercher. LDM #200 est immédiat - l'opérande est le nombre écrit dans l'instruction, donc l'accumulateur contient 200. LDD 200 est direct - aller à l'emplacement 200 et prendre ce qu'il y a : 250. LDI 200 est indirect - l'emplacement 200 contient 250, qui est une autre adresse, donc continuer vers l'emplacement 250 : 99. LDX 100 est indexé - ajouter le registre index à l'adresse, $100 + 5 = 105$, et lire l'emplacement 105 : 7. Comptez les sauts pour les distinguer : immédiat 0, direct 1, indirect 2, indexé 1 (une fois l'index ajouté).

Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
addressing mode/əˈdresɪŋ məʊd/ 寻址方式 xún zhǐ fāng shì
immediate addressing/ɪˈmiːdɪət əˈdresɪŋ/ 立即寻址 lì jí xún zhǐ
direct addressing/daɪˈrekt əˈdresɪŋ/ 直接寻址 zhí jiē xún zhǐ
indirect addressing/ɪndaɪˈrekt əˈdresɪŋ/ 间接寻址 jiàn jiē xún zhǐ
relative addressing/ˈrelətɪv əˈdresɪŋ/ 相对寻址 xiāng duì xún zhǐ
logical shift/ˈlɒdʒɪkl ʃɪft/ 逻辑移位 luó jí yí wèi
cyclic shift/ˈsaɪklɪk ʃɪft/ 循环移位 xún huán yí wèi
4.2

Tracing an assembly program · ⁨Tracé d'un programme assembleur⁩

English

To trace it: make a table with columns for the PC, ACC, index register, each variable and any flags. Step through the instructions, updating the table after each; follow branches when they change the PC; stop at END. A common pattern is a loop over an array using indexed addressing.

Worked example. Trace this program. Address 200 holds 5 and address 201 holds 0.

Write one row for each instruction executed, filling in only the columns that change:

Instruction ACC 200 201 Output
start 5 0
LDD 200 5
CMP #0
JPE 108 not taken
OUT character with code 5
DEC ACC 4
STO 200 4
LDD 201 0
JMP 100
LDD 200 4

and so on, until LDD 200 loads 0, the compare sets the equal flag, JPE 108 is taken and the program ends. Three things the examiner checks: a CMP changes no register, only a flag; a jump not taken still counts as executed; and OUT outputs a character, so it goes in the output column, not the ACC column. "State the effect of changing LDD 10 to LDM #10": the ACC would hold the number 10 instead of the contents of address 10.

Français

Pour le tracer : faites un tableau avec des colonnes pour le PC, ACC, registre index, chaque variable et tout drapeau. Passez pas à pas à travers les instructions, mettez à jour le tableau après chacune ; suivez les branches lorsqu'elles changent le PC ; arrêtez à END. Un motif courant est une boucle sur un tableau utilisant l'adressage indexé.

Exemple résolu. Tracez ce programme. L'adresse 200 contient 5 et l'adresse 201 contient 0.

100   LDD  200
101   CMP  #0
102   JPE  108
103   OUT
104   DEC  ACC
105   STO  200
106   LDD  201
107   JMP  100
108   END

Écrivez une ligne pour chaque instruction exécutée, en ne remplissant que les colonnes qui changent :

Instruction ACC 200 201 Sortie
début 5 0
LDD 200 5
CMP #0
JPE 108 non pris
OUT caractère de code 5
DEC ACC 4
STO 200 4
LDD 201 0
JMP 100
LDD 200 4

et ainsi de suite, jusqu'à ce que LDD 200 charge 0, la comparaison définisse le drapeau égal, JPE 108 soit exécutée et le programme se termine. Trois points vérifiés par l'examinateur : un CMP ne modifie aucun registre, seulement un drapeau ; un saut non pris compte toujours comme exécuté ; et OUT produit un caractère, donc il va dans la colonne de sortie, pas dans la colonne ACC. "Décrivez l'effet du changement de LDD 10 en LDM #10" : l'ACC contiendrait le nombre 10 au lieu du contenu de l'adresse 10.

4.3

Binary shifts · ⁨Décalages binaires⁩

Syllabus · ⁨Programme⁩
English
Candidates should be able to: Notes and guidance
Show understanding of and perform binary shifts Logical, arithmetic and cyclic Left shift, right shift
Show understanding of how bit manipulation can be used to monitor/control a device Carry out bit manipulation operations Test and set a bit (using bit masking)
Instruction Label | Opcode | Operand Explanation
AND #n / Bn / &n Bitwise AND operation of the contents of ACC with the operand
AND
Bitwise AND operation of the contents of ACC with the contents of
XOR #n / Bn / &n Bitwise XOR operation of the contents of ACC with the operand
XOR
Bitwise XOR operation of the contents of ACC with the contents of
OR #n / Bn / &n Bitwise OR operation of the contents of ACC with the operand
OR
Bitwise OR operation of the contents of ACC with the contents of
LSL #n Bits in ACC are shifted logically n places to the left. Zeros are introduced on the right hand end
LSR #n Bits in ACC are shifted logically n places to the right. Zeros are introduced on the left hand end
Labels an instruction
Gives a symbolic address
All questions will assume there is only one general purpose register available (Accumulator) ACC denotes Accumulator IX denotes Index Register
can be an absolute or symbolic address # denotes a denary number, e.g. #123 B denotes a binary number, e.g. B01001010 & denotes a hexadecimal number, e.g. &4A
Français
Les candidats doivent être capables de : Notes et orientations
Montrer la compréhension et effectuer des décalages binaires Logique, arithmétique et cyclique Décalage gauche, décalage droit
Montrer la compréhension de la manière dont la manipulation binaire peut être utilisée pour surveiller/contrôler un dispositif Effectuer des opérations de manipulation binaire Tester et définir un bit (en utilisant le masquage binaire)
Étiquette d'instruction | Opcode | Opérande Explication
AND #n / Bn / &n Opération ET binaire du contenu de ACC avec l'opérande
AND
Opération ET binaire du contenu de ACC avec le contenu de
XOR #n / Bn / &n Opération XOR binaire du contenu de ACC avec l'opérande
XOR
Opération XOR binaire du contenu de ACC avec le contenu de
OR #n / Bn / &n Opération OU binaire du contenu de ACC avec l'opérande
OR
Opération OU binaire du contenu de ACC avec le contenu de
LSL #n Les bits dans ACC sont décalés logiquement n positions vers la gauche. Des zéros sont introduits à l'extrémité droite
LSR #n Les bits dans ACC sont décalés logiquement n positions vers la droite. Des zéros sont introduits à l'extrémité gauche
Étiquette d'une instruction
Donne une adresse symbolique
Toutes les questions supposeront qu'il n'y a qu'un seul registre à usage général disponible (Accumulateur) ACC désigne Accumulateur IX désigne Registre Index
peut être une adresse absolue ou symbolique # désigne un nombre décimal, ex. #123 B désigne un nombre binaire, ex. B01001010 & désigne un nombre hexadécimal, ex. &4A

Source: Cambridge International syllabus · ⁨Source : Programme Cambridge International⁩

English

A logical shift 逻辑移位 moves all the bits left or right by some places, filling new positions with 0.

  • left shift by 1 (LSL #1) — bits move left, a 0 enters on the right; for an unsigned number this is × 2.
  • right shift by 1 (LSR #1) — bits move right, a 0 enters on the left; for an unsigned number this is integer ÷ 2.

Shifting by $n$ places multiplies or divides by $2^{n}$. Example: 00001011 (11) LSL #1 → 00010110 (22).

Bits shifted off the end are lost, so the multiplication is only correct while they were zeros. LSL #2 on the two's-complement integer 11001010 gives 00101000: the two 1s that fell off the left are gone, the sign bit has changed, and the result is no longer four times the original.

An arithmetic right shift keeps the sign bit so a negative signed number stays negative. A cyclic shift 循环移位 (rotate) feeds the bit that drops off one end back in at the other end, so no bits are lost.

"Show the result of an arithmetic right shift of 3 places on 10011110": copy the sign bit into each vacated place, 11110011. The same shift on 01011100 gives 00001011. A cyclic left shift of 1 on 10000110 gives 00001101: the leading 1 reappears on the right.

The difference between the two right shifts is a single bit. Take 11110000, which is 240 read as unsigned and $-16$ read as signed. LSR #1 brings in a 0 and gives 01111000 $= 120$, which is the correct half of 240. ASR #1 copies the sign bit instead and gives 11111000 $= -8$, which is the correct half of $-16$. Neither is wrong — each halves the value under one reading.

Bit manipulation for monitoring/control

Embedded devices often use one bit 位 of a register per signal (e.g. bit $n$ = LED $n$). Using a mask 掩码 — bit masking — you can:

  • set bit $n$: R = R OR a mask with bit $n$ set.
  • clear bit $n$: R = R AND a mask with bit $n$ clear and the rest set.
  • toggle bit $n$: R = R XOR a mask with bit $n$ set.
  • test bit $n$: R AND the mask, then check if the result is non-zero.

Bit manipulation is fast, uses little memory, and lets one byte hold up to 8 on/off states.

In the exam's instruction set these are AND, OR and XOR with a mask written as a denary, binary or hexadecimal operand. With the ACC holding 10101100:

Instruction Mask Result in ACC Effect
AND B00001111 00001111 00001100 keeps only the low four bits (clears the others)
OR #1 00000001 10101101 sets the least significant bit, leaving the rest unchanged
XOR &FF 11111111 01010011 inverts every bit
AND B00001000 then CMP #0 00001000 00001000 tests bit 3: the compare is not equal, so bit 3 was set
LSL #2 10110000 shifts left two places, losing the top two bits
LSR #3 00010101 shifts right three places, zeros entering on the left

"Write the instruction that sets the least significant bit to 1 and leaves the others unchanged": OR #1, or OR B00000001. To clear a bit use AND with a mask that has a 0 in that place and 1s elsewhere; to test a bit, AND with a mask that has a 1 only in that place, then compare the result with zero. In a monitoring device, one bit of a register per sensor lets a single AND check whether a particular sensor is on, and one OR switches an actuator's control bit on without disturbing the others.

Français

Un décalage logique 逻辑移位 déplace tous les bits vers la gauche ou la droite de quelques places, en remplissant les nouvelles positions avec 0.

  • décalage à gauche de 1 (LSL #1) — les bits se déplacent vers la gauche, un 0 entre à droite ; pour un nombre non signé, c'est × 2.
  • décalage à droite de 1 (LSR #1) — les bits se déplacent vers la droite, un 0 entre à gauche ; pour un nombre non signé, c'est integer ÷ 2.

Décaler de $n$ positions multiplie ou divise par $2^{n}$. Exemple : 00001011 (11) LSL #1 → 00010110 (22).

Les bits décalés hors de l'extrémité sont perdus, donc la multiplication n'est correcte que tant qu'ils étaient zéros. LSL #2 sur l'entier en complément à deux 11001010 donne 00101000 : les deux 1s qui sont sortis par la gauche ont disparu, le bit de signe a changé, et le résultat n'est plus quatre fois l'original.

Un décalage logique à droite conserve le bit de signe pour qu'un nombre négatif signé reste négatif. Un décalage cyclique 循环移位 (rotation) renvoie le bit qui tombe d'une extrémité à l'autre, afin qu'aucun bit ne soit perdu.

"Montrez le résultat d'un décalage logique à droite de 3 places sur 10011110" : copiez le bit de signe dans chaque place vacante, 11110011. Le même décalage sur 01011100 donne 00001011. Un décalage cyclique à gauche de 1 sur 10000110 donne 00001101 : le 1 de tête réapparaît à droite.

Trois décalages sur 8 bits : LSL #1 transforme 00001011 en 00010110 (multiplié par 2, un 0 entre à droite) ; LSR #1 le transforme en 00000101 (division entière par 2, un 0 entre à gauche) ; ASR #1 transforme 10110100 en 11011010, en copiant le bit de signe
Décalage logique gauche ($\times 2$), logique droit ($\div 2$) et arithmétique droit (conserve le bit de signe)

La différence entre les deux décalages à droite est un seul bit. Prenez 11110000, qui est 240 lu comme non signé et $-16$ lu comme signé. LSR #1 apporte un 0 et donne 01111000 $= 120$, qui est la moitié correcte de 240. ASR #1 copie le bit de signe et donne 11111000 $= -8$, qui est la moitié correcte de $-16$. Aucun n'est faux — chacun divise la valeur par deux selon une lecture.

Le byte 11110000 décalé à droite deux fois : LSR apporte un 0 à gauche donnant 01111000 qui est 120, tandis que ASR copie le bit de signe donnant 11111000 qui est moins 8 ; les deux résultats diffèrent uniquement dans le bit entrant
Décalage logique et arithmétique droit sur le même byte : seul le bit entrant à gauche diffère

Manipulation des bits pour surveillance/contrôle

Les dispositifs embarqués utilisent souvent un bit 位 d'un registre par signal (par exemple bit $n$ = LED $n$). En utilisant un masque 掩码 — masquage de bits — vous pouvez :

  • positionner le bit $n$ : R = R OR un masque avec le bit $n$ positionné.
  • désactiver le bit $n$ : R = R AND un masque avec le bit $n$ désactivé et le reste activé.
  • inverser le bit $n$ : R = R XOR un masque avec le bit $n$ activé.
  • tester le bit $n$ : R AND le masque, puis vérifier si le résultat est non nul.
Masquage de bits sur le byte 01001000 : activer le bit 2 avec OR 00000100 pour obtenir 01001100 ; désactiver le bit 6 avec AND 10111111 pour obtenir 00001000 ; inverser le bit 3 avec XOR 00001000 pour obtenir 01000000
Activer un bit avec OR, le désactiver avec AND, l'inverser avec XOR — chacun utilisant un masque

La manipulation des bits est rapide, utilise peu de mémoire et permet à un octet de contenir jusqu'à 8 états marche/arrêt.

Dans l'ensemble d'instructions de l'examen, ce sont AND, OR et XOR avec un masque écrit comme opérande décimal, binaire ou hexadécimal. Avec ACC contenant 10101100 :

Instruction Masque Résultat dans ACC Effet
AND B00001111 00001111 00001100 garde seulement les quatre bits de poids faible (désactive les autres)
OR #1 00000001 10101101 positionne le bit de poids faible, laissant les autres inchangés
XOR &FF 11111111 01010011 inverse tous les bits
AND B00001000 puis CMP #0 00001000 00001000 teste le bit 3 : la comparaison n'est pas égale, donc le bit 3 était positionné
LSL #2 10110000 décale à gauche de deux places, perdant les deux bits supérieurs
LSR #3 00010101 décale à droite de trois places, des zéros entrant à gauche

"Écrivez l'instruction qui active le bit de poids faible à 1 et laisse les autres inchangés" : OR #1, ou OR B00000001. Pour désactiver un bit, utilisez AND avec un masque ayant un 0 à cet endroit et des 1 ailleurs ; pour tester un bit, AND avec un masque ayant un 1 uniquement à cet endroit, puis comparez le résultat avec zéro. Dans un dispositif de surveillance, un bit d'un registre par capteur permet à une seule AND de vérifier si un capteur particulier est allumé, et un OR active le bit de commande d'un actionneur sans perturber les autres.

Explore · ⁨Explorer⁩

Décalez et masquez les bits d'un octet

Choisissez un opérateur et observez chaque bit de résultat. Un décalage gauche (<<) moves every bit up one place (×2); a right shift (>>) les déplace vers la droite (÷2) ; AND avec un masque efface les bits que vous ne voulez pas.

Vocabulary · ⁨Vocabulaire⁩ Train · ⁨Entrainer⁩
English · ⁨Anglais⁩ Chinese · ⁨Chinois⁩ Pinyin
bit/bɪt/ 位 wèi
mask/mæsk/ 掩码 yǎn mǎ
4.3

Definitions the examiner accepts · ⁨Définitions acceptées par l'examinateur⁩

English

A definition question is marked against fixed wording. Learn these exactly, and give one answer only.

Term Definition
stored program concept the program instructions and the data are both held in main memory, and instructions are fetched and executed one at a time
register a small, very fast storage location inside the processor with a specific purpose
Program Counter the register holding the address of the next instruction to be fetched
Memory Address Register the register holding the address of the memory location being read from or written to
Memory Data Register the register holding the data or instruction just read from, or about to be written to, memory
Current Instruction Register the register holding the instruction currently being decoded and executed
Accumulator the general-purpose register holding the result of the last arithmetic or logic operation
cache memory small, fast memory close to the processor holding frequently used instructions and data
interrupt a signal from a device or program that causes the processor to pause the current task and run an interrupt service routine
assembly language a low-level language in which each mnemonic instruction corresponds to one machine-code instruction
immediate addressing the operand is the value written in the instruction
direct addressing the operand is the contents of the address written in the instruction
indirect addressing the address in the instruction holds the address of the operand
indexed addressing the operand's address is the address in the instruction plus the contents of the index register
relative addressing the operand's address is given as an offset from the address of the current instruction
logical shift every bit moves the given number of places and zeros fill the vacated places
Français

Une question de définition est notée selon un libellé fixe. Apprenez-les exactement et ne donnez qu'une seule réponse.

Terme Définition
concept de programme stocké les instructions du programme et les données sont toutes deux stockées en mémoire principale, et les instructions sont fetchées et exécutées une par une
registre un petit emplacement de stockage très rapide à l'intérieur du processeur avec un but spécifique
Compteur de programme le registre contenant l'adresse de la prochaine instruction à être fetchée
Registre d'adresse mémoire le registre contenant l'adresse de l'emplacement mémoire lu ou écrit
Registre de données mémoire le registre contenant les données ou l'instruction récemment lues depuis, ou sur le point d'être écrites dans, la mémoire
Registre d'instruction courante le registre contenant l'instruction actuellement décodée et exécutée
Accumulateur le registre à usage général contenant le résultat de la dernière opération arithmétique ou logique
mémoire cache petite mémoire rapide proche du processeur contenant des instructions et des données fréquemment utilisées
interruption un signal provenant d'un périphérique ou d'un programme qui fait que le processeur pause la tâche actuelle et exécute un service d'interruption
langage assembleur un langage de bas niveau dans lequel chaque instruction mnémotechnique correspond à une instruction de code machine
adressage immédiat l'opérande est la valeur écrite dans l'instruction
adressage direct l'opérande est le contenu de l'adresse écrite dans l'instruction
adressage indirect l'adresse dans l'instruction contient l'adresse de l'opérande
adressage indexé l'adresse de l'opérande est l'adresse dans l'instruction plus le contenu du registre d'index
adressage relatif l'adresse de l'opérande est donnée comme un décalage par rapport à l'adresse de l'instruction courante
décalage logique chaque bit se déplace du nombre de places indiqué et des zéros remplissent les cases libérées
4.3

Exam tips · ⁨Conseils d'examen⁩

English
  • Learn the fetch-execute cycle in register-transfer terms (PC, MAR, MDR, CIR, ACC) and what increments the PC.
  • Name each register's job; the address bus is one-way, the data bus is two-way.
  • Distinguish the addressing modes (immediate, direct, indirect, indexed) — a frequent question.
  • Explain how clock speed, number of cores, cache size and word length affect performance.
  • For a binary shift, state whether it is logical or arithmetic; a left shift multiplies by 2, a right shift divides by 2.

Common mistakes

  • Saying the PC holds the current instruction, or the MDR holds an address. The PC holds the address of the next instruction; the MDR holds data or an instruction, never an address.
  • Leaving the increment of the PC out of the fetch, or putting it after the execute. It happens as soon as the address has been copied to the MAR.
  • Reading LDD 10 as "load 10". LDD 10 loads the contents of address 10; LDM #10 loads the number 10.
  • Putting a value in the ACC column for CMP or OUT. A compare sets a flag only; an output goes to the output column.
  • Saying an interrupt is handled "immediately". The processor finishes the current instruction and checks for interrupts at the end of the cycle.
  • Using a logical right shift on a negative two's-complement number. Only an arithmetic shift keeps the sign bit.
Français
  • Apprendre le cycle prélever-exécuter en termes de transfert de registres (PC, MAR, MDR, CIR, ACC) et ce qui incrémente le PC.
  • Nommer la fonction de chaque registre ; le bus d'adresses est unidirectionnel, le bus de données est bidirectionnel.
  • Distinguer les modes d'adressage (immédiat, direct, indirect, indexé) — une question fréquente.
  • Expliquer comment la vitesse d'horloge, le nombre de cœurs, la taille du cache et la longueur du mot influencent les performances.
  • Pour un décalage binaire, indiquer s'il est logique ou arithmétique ; un décalage vers la gauche multiplie par 2, un décalage vers la droite divise par 2.

Erreurs courantes

  • Dire que le PC contient l'instruction courante, ou que le MDR contient une adresse. Le PC contient l'adresse de l'instruction suivante ; le MDR contient des données ou une instruction, jamais une adresse.
  • Omettre l'incrémentation du PC lors de la phase de prélèvement, ou la placer après l'exécution. Elle a lieu dès que l'adresse a été copiée dans le MAR.
  • Lire LDD 10 comme "charger 10". LDD 10 charge le contenu de l'adresse 10 ; LDM #10 charge le nombre 10.
  • Placer une valeur dans la colonne ACC pour CMP ou OUT. Une comparaison définit uniquement un drapeau ; une sortie va vers la colonne de sortie.
  • Dire qu'une interruption est traitée "immédiatement". Le processeur termine l'instruction courante et vérifie les interruptions à la fin du cycle.
  • Utiliser un décalage logique droit sur un nombre négatif en complément à deux. Seul un décalage arithmétique conserve le bit de signe.

Interactive lessons on this topic · ⁨Leçons interactives sur ce sujet⁩

Work through it step by step, with instant-check exercises. · ⁨Traversez-le étape par étape, avec des exercices à vérification instantanée.⁩

Past Papers · ⁨Épreuves Passées⁩

More topics in Informatique A-Level · ⁨Plus de sujets dans Informatique A-Level⁩

Log in or create account · ⁨Se connecter ou créer un compte⁩

IGCSE, A-Level & AP