Jigsaw — 4 Processor Fundamentals
Syllabus content for 9618 Topic 4, rebuilt bullet by bullet, with every tested angle mapped onto it.
Legend
Already examined in 9618
Tested in a 9618 paper (2021 onwards). Latest question ID given.
9608 only (not yet in 9618)
Tested under the old 9608 syllabus, still inside the 9618 syllabus wording.
Not yet tested — inference
In syllabus, not yet asked in either series (or only asked in a much narrower form). Justification given.
From the Save My Exams notes
Content the SME revision notes teach that no past question above covers.
4.3 Bit manipulation is new in 9618
The 9608 Legend’s Bit manipulation file is two pages with no questions at all. Bit manipulation is 9618-only, like AI and embedded systems — and it is examined every single series, usually as part of the big assembly question. There is no old-syllabus safety net.
4.1 Central Processing Unit (CPU) Architecture
4.1.1 The Von Neumann model and the stored program concept
Correct incorrect statements about the Von Neumann model
The PC stores the address of the next instruction to be fetched (not the instruction itself) · the CU sends signals to other components on the control bus (not the data bus) · the MDR holds data to be stored in, or data read from, the memory address in the MAR (it does not “transfer data to” it).
9618_s25_qp_12_sc_1.a
Identify components of the Von Neumann model
Other than registers and buses: Control Unit (CU) · Arithmetic and Logic Unit (ALU) · Immediate Access Store (IAS) · system clock.
9618_w23_qp_13_sc_9.a.i
Success
Instructions and data are stored in the same memory space // in main memory.
9618_w22_qp_11_sc_5.a
Why the stored program concept matters
9618 has only ever asked for the one-line definition. What it enables — a computer that can run any program without being rewired, programs treated as data so they can be loaded and replaced — has never been asked, in either series.
The model in one paragraph
Proposed by John Von Neumann in the 1940s; most general-purpose computers are built on it. It consists of a CPU able to access memory directly, memory that stores programs as well as data, and stored programs containing instructions executed in order. The framing “the CPU can access memory directly” is the part the mark schemes never state.
4.1.2 Registers: purpose, role, and general vs special purpose
Describe the purpose of each named register (table)
PC — stores the address of the next instruction to be fetched/executed · MAR — stores the address of the memory location where data will be read from or written to · MDR — stores the data read from the address in the MAR, or the data to be written to it · IX — stores a number that will be added to the operand to form the address of the data.
9618_w24_qp_12_sc_3.a(4 marks, 1 each)
Success
PC — stores the address where the next instruction is to be read from · MAR — stores the address of the memory location (or I/O component) currently being read from or written to · CIR — holds the instruction currently being decoded and/or executed · Status Register — contains bits which can be referenced individually and set or cleared depending on the operation, e.g. overflow, underflow.
9618_w23_qp_11_sc_5.a
Success
To store the value of flags / bits · that can be changed / set / cleared after arithmetic or logical operations · to allow flags to be checked · to change the instruction sequence.
9618_w24_qp_11_sc_8.a
Success
Special purpose registers have a specified role in the machine, whereas general purpose registers can be used for any purpose defined by the programmer · special purpose registers hold the state of the program’s execution, general purpose registers hold the program’s data during operations · general purpose registers can be used by most instructions, special purpose only by certain instructions.
9618_w24_qp_11_sc_8.b;9618_w23_qp_13_sc_9.a.ii
Success
ACC — stores the intermediate results of arithmetic and logical operations // holds the result of a calculation · CIR — holds the instruction currently being decoded and/or executed.
9618_w25_qp_11_sc_6.a
Success
CIR — to store the instruction to be decoded/executed next · Status register — to contain bits that can be referenced individually to indicate a state or event · Interrupt register — to store details of any interrupts that have occurred.
9618_s25_qp_12_sc_1.b
The interrupt register
Credited as an acceptable answer in
s25_qp_12_sc_1.bandw21_qp_12_sc_8.a.ii, but it is not in the syllabus’s list of special purpose registers (PC, MDR, MAR, ACC, IX, CIR, Status). Safe to offer as “one other register”, but lead with a syllabus-named one.
The Index Register described rather than named
IX appears in the
w24_qp_12_sc_3.atable and in every indexed-addressing question, but no question asks why an index register exists — to step through an array or table by changing one register rather than rewriting the instruction. That link between 4.1 and 4.2 is untested.
The seven registers, with acronym and purpose
PC holds the address of the next instruction and increments as the cycle runs · MAR holds the address data or instructions are fetched from · MDR stores the data/instruction fetched from memory · CIR stores the instruction currently being decoded or executed · ACC stores the results of calculations from the ALU · IX stores a value added to an address to get the effective address, used for indexed addressing · SR stores flags reflecting the outcome of CPU operations. SME’s framing that registers are “extremely small, extremely fast memory located in the CPU” is the one-line definition the mark schemes assume but never state.
4.1.3 The ALU, Control Unit, system clock and Immediate Access Store
Success
The control unit synchronises the actions of the processor · by sending a command / signal on each timing signal produced by the system clock · using the control bus.
9618_s25_qp_13_sc_2.a.i
Success
The system clock gives out timing signals · which are sent on the control bus · to synchronise the other system components · the Control Unit initiates data transfer · by generating signals that are sent on the control bus to other components.
9618_s23_qp_13_sc_7.b
Success
System clock: to synchronise operations, by creating and transmitting timing signals on the control bus; to keep track of the date and time; to process operations in the correct sequence. Control Unit: sends and receives control signals along the control bus; reads an instruction from the memory location whose address is in the PC; coordinates/synchronises the activity of other CPU components; manages the execution of instructions; controls communication between CPU components.
9618_w24_qp_11_sc_3.a;9618_w22_qp_13_sc_4.b;9618_w22_qp_11_sc_5.b.iii
Success
Holds all the data / instructions / programs currently in use · is volatile memory · has fast access times.
9618_w23_qp_11_sc_5.b
Success
The control unit/bus transmits the signals to coordinate events based on the pulses of the (system) clock. The data bus carries data to components, while the address bus carries the address where data is being written to or read from. The arithmetic logic unit / ALU performs mathematical operations and logical comparisons.
9618_s21_qp_12_sc_5.a
The ALU on its own
The ALU is named in the component list and in the cloze, but no 9618 question asks you to describe its role. Compare the CU (asked three times) and the system clock (twice). “Describe the purpose of the ALU” — performs arithmetic operations (add, subtract) and logical operations (AND, OR, comparisons), with the result placed in the ACC and flags set in the SR — is an obvious 2-marker.
IAS versus RAM versus cache
w23_qp_11_sc_5.bcredits “volatile, fast access, holds what is currently in use” — which is also true of RAM. Whether the IAS is main memory, and how it relates to cache and registers, has never been examined.
4.1.4 Data transfer using the address, data and control buses
Success
Interrupt · timing · read · write.
9618_s23_qp_12_sc_5.a
Success
System clock → control bus · MAR → address bus.
9618_w22_qp_11_sc_5.b.ii
Success
Buffers — temporarily hold data until it is ready to be transmitted to the device · Address bus — the address of the data to be written to the device (in RAM) is carried on the address bus · Data bus — all data to be written to the device/buffer is carried on the data bus.
9618_w23_qp_12_sc_8.c.ii
Success
A wider data bus means more data can be transferred between components at a time · so there is less delay / latency when fetching data for a running process · a wider address bus means larger memory addresses can be used · allowing more memory locations to be accessed directly · so it is less likely to run out of memory.
9618_s25_qp_11_sc_6.a.iii
Which buses are unidirectional
Every mark scheme describes what each bus carries, but none asks about direction. The address bus is unidirectional (CPU → memory); the data and control buses are bidirectional. This is standard credited content in other syllabuses and follows directly from what each bus does.
Calculating addressable memory from address bus width
s25_qp_11_sc_6.a.iiicredits “larger memory addresses can be used, allowing more memory locations to be accessed”. The numeric version — an n-bit address bus can address 2ⁿ locations — has never been asked in this topic, though the same arithmetic appears in Chapter 1.
What a bus actually is
A bus is a set of parallel wires through which data or signals are transmitted between components. Address — unidirectional, carries the location that is being written to or read from · Data — bidirectional, carries data or instructions · Control — bidirectional, carries commands and control signals telling components when to read or write. The “parallel wires” definition and the directionality are absent from every mark scheme in this topic.
4.1.5 Factors contributing to the performance of the computer system
Success
Clock speed: the processor can perform more F-E cycles per second … so more instructions/data can be processed each second. Cache memory: can store more of the most frequently used instructions … which reduces the need to access slower RAM. (Max 2 each.)
9618_w25_qp_12_sc_3.c
Success
Increase the number of cores … each core can independently carry out a process at the same time, so more instructions are performed in parallel · increase RAM capacity … allowing more applications to reside in memory at once, saving disk access times · increase cache memory … more data can be stored in fast access, so less time is spent accessing RAM · increase clock speed … more F-D-E cycles can run per unit time.
9618_s23_qp_12_sc_5.b;9618_w22_qp_13_sc_4.c
Success
Multiple cores introduce additional overheads … because of the need for communication between cores · software may not be designed for multiple cores … so one of the cores will be left idle · memory access speed may not match the speed of the cores … causing delay · the two computers may differ in more than the cores — one may have more RAM allowing faster multitasking, or a GPU.
9618_w23_qp_11_sc_5.c.ii
Success
Latency may be increased … because the cores must communicate with one another · there is a potential for dead-lock situations … where one core waits for information from other cores which are waiting for the first · not all software is designed to use multi-cores … so some additional cores would be idle · increased heat generation … which could damage other components.
9618_w25_qp_11_sc_6.b
Success
Cores: each core processes one instruction per clock pulse; multiple cores mean sequences of instructions can be split between them, so more than one instruction is executed per clock pulse; more cores decreases the time taken to complete a task. Clock speed: each instruction is executed on a clock pulse // one F-E cycle runs on each clock pulse, so the clock speed dictates the number of instructions run per second. (Max 3 per factor.)
9618_s21_qp_12_sc_5.b
Success
Cache is fast access memory close to the CPU · which stores frequently used instructions / data · so they can be accessed faster than from RAM · more cache means less swapping between RAM and cache · prevents the CPU idling while waiting for data.
9618_s25_qp_13_sc_2.b;9618_w22_qp_11_sc_7.d
Success
More RAM means more currently running data and instructions can be stored · without needing to use virtual memory · without having to fetch data from secondary storage first · which has a slower access time · less latency / delay waiting for instructions or data.
9618_s25_qp_11_sc_6.a.ii
Success
Clock speed — higher clock speed means more F-E cycles executed per second // more throughput · bus width — a larger bus width means more data transferred at the same time.
9618_w24_qp_11_sc_3.b.i
Processor type as a named factor
The syllabus notes say “processor type and number of cores”. Every 9618 question examines cores, clock speed, cache and bus width; the type of processor (e.g. a GPU for graphics work, a low-power processor in an embedded device, instruction-set differences) is never asked, despite being the first item in the notes.
Diminishing returns on cache
The mark schemes treat “more cache is better” as always true. Why cache is small and expensive — it is SRAM (Chapter 3) — and why a bigger cache gives diminishing returns, is the link between the two chapters and is untested.
Cache levels
L1 inside each CPU core — fastest, smallest · L2 inside or near each core — fast, medium · L3 shared by all cores — slower than L1/L2, largest. Not named in any 9618 mark scheme, but explains why “cache is close to the CPU” is the credited reason it is fast.
The throughput arithmetic
A quad-core CPU at 3 GHz gives 4 × 3 billion = 12 billion instructions per second as an upper bound. SME’s caveat matches the
w23_qp_11_sc_5.c.iimark scheme exactly: a dual-core is not twice as fast because time is spent organising tasks between cores, and some tasks are sequential and must be done step by step.
4.1.6 How different ports provide connection to peripheral devices
Success
Port: USB. Explanation: a voltage change occurs when the drive is plugged in · the computer detects this voltage change · the code of the device is transferred to the computer · the OS finds the code of the device in its list of devices · and loads the appropriate device driver.
9618_w24_qp_11_sc_3.b.ii
Success
HDMI has faster transfer rates than VGA … needed for the high resolution / large number of pixels of the monitor · HDMI supports video and audio transfer on one cable … so no separate sound cable is needed, unlike VGA · HDMI is a digital interface, so no data is lost converting to analogue and back · HDMI is less prone to error / crosstalk / external interference.
9618_w24_qp_12_sc_3.b
Success
Transfers both audio and video using a single cable · has high bandwidth · data is transmitted in a stream · of uncompressed digital signals · uses Transition-Minimized Differential Signalling (TMDS).
9618_s25_qp_13_sc_2.c
Success
USB — fast data transfer speeds; is a universal / popular standard. HDMI — allows video and audio to be transferred on the same cable; convenience, as no need for two cables.
9618_w23_qp_13_sc_7.d
Success
1 bit is transferred at a time (serial) · can be synchronous or asynchronous · USB-3 is full duplex and earlier versions are half-duplex.
9618_s23_qp_12_sc_5.c.i
Success
3D printer → USB port / COM port · Monitor → HDMI / VGA / USB / DisplayPort · Optical disc reader/writer → USB / HDMI.
9618_w22_qp_11_sc_7.e;9618_w23_qp_12_sc_8.c.i
VGA described in its own right
VGA is named in the syllabus notes and appears only as the loser in the HDMI comparison. What VGA actually is — an analogue video-only interface, so audio needs a separate cable and the signal degrades over distance and with conversion — has never been asked directly.
Why a port needs a device driver
The driver appears in
w24_qp_11_sc_3.b.iiand in the OS hardware-management mark schemes (Chapter 5), but the connection between the two — the port detects the device, the OS loads the driver so the two can communicate — is never the subject of a question.
USB detail worth having
USB is a serial, asynchronous standard. Connector types: USB-A (flash drives, mice, keyboards), USB-B (printers, scanners), USB-C (small, fast, carries power). Generations: USB 1.1 ≈ 12 Mbps, USB 2.0 ≈ 480 Mbps, USB 3.x ≈ 5–20 Gbps, USB4 up to 80 Gbps. Advantages: automatic detection and driver loading; connectors fit only one way, preventing incorrect connection; widely standardised so support is easy to find; several transmission rates supported; backwards compatible with older standards. Disadvantages: maximum cable length around 5 m, so unusable over long distances; older versions have limited transfer rates; very old standards may lose support. The backwards-compatibility and cable-length points are absent from every mark scheme and are exactly what a “justify the port choice” answer needs.
4.1.7 Stages of the Fetch-Execute cycle, and register transfer notation
Success
MAR ← [PC]·PC ← [PC] + 1·MDR ← [[MAR]]·CIR ← [MDR]— plus 1 mark for the correct order. The first two may be combined asMAR ← [PC] and PC ← [PC] + 1.9618_s25_qp_13_sc_2.a.ii
Success
PC ← [PC] + 1↔ the address in PC is incremented ·MDR ← [[MAR]]↔ the data in the location pointed to by the MAR is copied to the MDR ·MAR ← [PC]↔ the contents of PC are copied to the MAR ·CIR ← [MDR]↔ the contents of MDR are copied into CIR.9618_w23_qp_13_sc_9.b
Success
Copy the address of the next instruction into the MAR →
MAR ← [PC]· increment the Program Counter →PC ← [PC] + 1· copy the contents of the MDR into the CIR →CIR ← [MDR].9618_w22_qp_12_sc_7.c;9618_s23_qp_13_sc_7.c
Success
Line
PC ← [PC] − 1→ the Program Counter should be incremented, not decremented →PC ← [PC] + 1· lineMDR ← [MAR]→ it should be the contents of the address in the MAR →MDR ← [[MAR]]. (1 mark for line + description, 1 for the correct statement.)9618_w21_qp_11_sc_6.a
Success
MAR stores the address of the next instruction / data to be read from or written to memory · the address is received from the PC · MDR stores the data / instruction at the address in the MAR which has been read or written · the instruction passes to the CIR for decoding and executing.
9618_w25_qp_13_sc_6.b;9618_w21_qp_12_sc_8.a.i
Success
The Program Counter holds the address of the next instruction to be loaded. This address is sent to the Memory Address Register. The Memory Data Register holds the data fetched from this address. This data is sent to the Current Instruction Register and the CU decodes the opcode. The Program Counter is incremented.
9618_s21_qp_11_sc_3.a
The execute stage in RTN
Every 9618 question stops at
CIR ← [MDR]— that is, the fetch only, despite the bullet being titled “the stages of the Fetch-Execute cycle”. The decode and execute stages in RTN (e.g.MAR ← operand,MDR ← [[MAR]],ACC ← [MDR]for an LDD) have never been asked, and the syllabus says “describe and use register transfer notation to describe the F-E cycle”.
The decode stage described
The CIR splitting the instruction into opcode and operand, and the CU decoding it, appears once as a cloze mark point (
s21_qp_11_sc_3.a). A question asking what happens during decode has not been set.
The three stages, and what happens where
Fetch — supply the address and receive the instruction from memory. Decode — interpret the instruction and retrieve any required data from their addresses. Execute — the CPU carries out the required action. SME’s execute examples in RTN (LDA, STA, ADD) are the content for the
!infogap above: forLDA X,MAR ← operandthenMDR ← RAM[MAR]thenACC ← MDR; forSTA X,MAR ← operandthenMDR ← ACCthenRAM[MAR] ← MDR.
4.1.8 The purpose of interrupts
Success
An interrupt flag is raised in the (interrupt) register · at the end of the current F-E cycle // at the start of the next F-E cycle · the system checks the interrupt register for interrupts of higher priority than the current process · if true, it stores the current contents of the registers on the stack · the appropriate Interrupt Service Routine (ISR) is called · the input data is processed · the contents of the registers are restored from the stack · and control is passed back to the previous process.
9618_s23_qp_11_sc_6
Success
At the start / end of the F-E cycle the interrupt register is checked · the priority of any interrupts waiting is checked · if the priority of the interrupt is higher than the current process · the contents of the registers are stored on the stack · the relevant ISR / interrupt handler is called to process the interrupt · when the ISR has finished, a further check is made for higher priority interrupts · if none, the register contents are restored and the next F-E cycle continues.
9618_s25_qp_12_sc_1.c
Success
1 At the end of each F-E cycle the processor checks if an interrupt flag is set → 2 D: the processor identifies the source of the interrupt and checks its priority → 3 If the priority is high enough the processor saves the current register contents → 4 A: the address of the ISR is loaded into the PC → 5 When servicing is complete the processor restores the registers → 6 B: lower priority interrupts are re-enabled.
9618_w23_qp_13_sc_9.d
Success
After completion of the execute stage // before the cycle begins.
9618_w22_qp_13_sc_4.a.ii
Success
To send a signal from a device or process · seeking the attention of the processor.
9618_w22_qp_11_sc_5.c
Success
Division by zero // runtime error in a program · attempt to access an invalid memory location // out of memory bounds · array index out of bounds · stack overflow · buffer overflow · program requesting an external device / input.
9618_w22_qp_11_sc_5.d;9618_w23_qp_13_sc_9.c
Success
Buffer full → software · printer out of paper → hardware · user has pressed a key → hardware · division by zero → software · power failure → hardware · stack overflow → software. (1 mark per pair of rows.)
9618_w21_qp_12_sc_7.a
Applications of interrupts
The syllabus notes list “possible causes of interrupts, applications of interrupts, use of an ISR, when interrupts are detected, how interrupts are handled”. Causes, detection and handling are examined repeatedly; applications — what interrupts make possible, i.e. multitasking, responsive I/O without polling, real-time event handling — has never been asked. It is the one named sub-point with no question against it.
Why interrupts are better than polling
Implied by “seeking the attention of the processor” but never examined. Without interrupts the CPU would have to repeatedly check every device, wasting cycles.
The stack in interrupt handling
“Stores the register contents on the stack” and “restores from the stack” are credited mark points in two questions, but why a stack (so nested interrupts unwind in the right order) is never asked — even though
w23_qp_13_sc_9.dincludes re-enabling lower-priority interrupts, which only makes sense with nesting.
The five-step interrupt process
1 Interrupt Request (IRQ) — a device or software generates an interrupt; the interrupt controller passes it to the interrupt handler. 2 Acknowledge — the handler decides whether to deal with it now or later; if now, the current register contents are saved. 3 ISR lookup — the processor fetches the ISR associated with that interrupt type. 4 ISR execution — control transfers to the ISR. 5 Interrupt exit — registers are restored and the F-D-E cycle resumes.
Priority and nesting
Prioritisation lets the processor switch to a higher-priority interrupt; lower-priority ISRs may be suspended until it completes. Nesting is handling interrupts within interrupts; proper management avoids conflicts and keeps the system stable. This is the content behind the
w23_qp_13_sc_9.dstep “lower priority interrupts are re-enabled”.
Purpose and applications of interrupts — the untested bullet
Real-time event handling — hardware errors and signals from input devices, e.g. hard disk failure · Device communication — alerts from external devices, e.g. printer jams, network errors · Multitasking — suspending one application so the user can switch to another. SME also names a third type alongside hardware and software: a trap interrupt, intentionally triggered by a program for debugging or handling unexpected errors. Traps are not in the 9618 syllabus, which names only hardware and software — do not offer one where the question asks for a type.
What an ISR is
A special routine that handles one particular interrupt type; each type has its own routine (printer jam, hard disk failure, network connection error). ISRs should be concise and efficient, because they often handle time-sensitive events. The “concise so as not to delay other work” point is not in any mark scheme.
4.2 Assembly Language
4.2.1 The relationship between assembly language and machine code
Success
Compilers are used when a high-level program is complete; they translate all the code at once and produce executable / .exe / object code files that run without the source code. Interpreters translate one line at a time and run it, useful while developing because errors can be corrected and the program continues from that line. Assemblers translate assembly code into binary / machine code.
9618_w21_qp_11_sc_4.d
The one-to-one relationship
This bullet has exactly one 9618 question, and it is a cloze shared with Chapter 5. The defining fact — one assembly language instruction translates to one machine code instruction, unlike a high-level statement which becomes many — is not credited anywhere in the 9618 series and is the most likely content for a new question on this bullet.
Why anyone still writes assembly
Untested in 9618: direct control of hardware, minimal memory footprint, speed of execution, and use in embedded systems and device drivers — which links straight to embedded systems in Chapter 3.
The two languages compared
Machine code is a first-generation language, directly executable by the processor, written in binary. Assembly is a second-generation language written using mnemonics (abbreviated text commands), human-readable but corresponding almost exactly to machine code; it must be translated by an assembler, and each CPU type has its own instruction set. An instruction splits into an opcode (what operation to perform) and an operand (the data or memory address it works with).
4.2.2 The stages of the assembly process for a two-pass assembler
Success
To create a symbol table.
9618_w23_qp_11_sc_8.a
Success
Generates object code → second pass · reads the source code one line at a time → both passes · removes white space → first pass · adds labels to the symbol table → first pass.
9618_s23_qp_12_sc_3.a
Success
Remove comments → first · read the assembly language program one line at a time → both · generate the object code → second · check the opcode is in the instruction set → first.
9618_w22_qp_11_sc_6.c
What the second pass actually does
All three 9618 questions are sorting exercises. None asks candidates to describe the second pass — replacing each label with the address stored against it in the symbol table, and converting each mnemonic into its binary opcode to generate the object code. The syllabus says “describe the different stages”, so a prose question is available.
Apply the two-pass process to a given program
The syllabus notes say explicitly: “Apply the two-pass assembler process to a given simple assembly language program.” No 9618 question has ever required a symbol table to be built from a given program. Every question is a tick-box or line-matching exercise. This is the clearest untested instruction in 4.2.
Why two passes are needed
Never asked in either series. The reason is forward references: a
JMPto a label defined later in the program cannot be resolved until every label’s address is known, which is what pass one establishes.
A worked two-pass example
Program:
LOAD A/ADD B/STORE C/HALT/A: DATA 5/B: DATA 3/C: DATA 0. Pass 1 assigns addresses and records labels, building the symbol table: A = 04, B = 05, C = 06. Instructions are not yet translated. Pass 2 replaces each label with its address and outputs the object code:01 04/02 05/03 06/00 00/ … The assembler produces an object program that can be stored, loaded and run later; a loader is needed to execute it. The loader is mentioned in no 9618 mark scheme and is the missing piece of “what the assembler produces”.
4.2.3 Trace a given simple assembly language program
Success
Columns typically: instruction address · ACC · several memory addresses · IX · Output. Marks are awarded per shaded set of values, not per cell — so a single early error can lose a whole block.
9618_s24_qp_13_sc_3.a-style; the 6-mark version is the largest in the topic.
Success
e.g. ACC
0000 1111,AND 101→0000 1110· ACC0000 0000,LDM #100→0110 0100· ACC0000 0001,XOR &F1→1111 0000· ACC0001 0001,CMP 101→0001 0001(CMP does not change the ACC — the classic trap).9618_w25_qp_13_sc_6.a
Success
LDD 100 / STO 165 / LDD 101 / STO 100 / LDD 165 / STO 101→ swaps the contents of memory addresses 100 and 101.9618_w22_qp_11_sc_6.a.ii
Success
Changing
LDD 10toLDM #10→ the number 10 is loaded into the ACC instead of the contents of address 10 · so the addition gives 20 not 22, the comparison fails and the result is an infinite loop.9618_s25_qp_12_sc_7.a.ii
Writing, rather than tracing, an assembly program
Every 9618 question gives you the program. The syllabus bullet is only “trace a given simple assembly language program”, so this is correctly untested — but
s25_qp_13_sc_5.bandw24_qp_13_sc_7.bdo ask candidates to write bit-manipulation instructions, so writing short fragments is clearly within reach.
Tracing technique
A trace table tracks the values of variables (here, registers and memory locations) line by line. Because 9618 marks in blocks, work down the instruction-address column first and fill every register change on each row before moving on — and remember that
CMPsets a flag but leaves the ACC unchanged, and thatJPE/JPNdepend on the most recent compare.
4.2.4 Instruction groups
Success
Loading data into the accumulator → data movement · incrementing the index register → arithmetic operations · branching to another address → conditional and unconditional (jump) instructions.
9618_w25_qp_13_sc_6.c
Success
IN→ input and output of data ·ADD→ arithmetic operations ·JPE→ unconditional and conditional instructions ·CMI→ compare instructions.9618_w23_qp_12_sc_9.a
Success
Data movement: e.g.
LDR #50//STO 201· Arithmetic operation: e.g.ADD 100//INC IX· Conditional instruction: e.g.JPE 96. Each instruction must have a suitable operand.9618_w23_qp_11_sc_8.b.i
Success
Data movement →
LDM #2· Input and output →IN/OUT· Arithmetic →INC ACC/INC IX· Unconditional and conditional →JPN 100/JMP 100· Compare →CMP 100.9618_w21_qp_12_sc_8.b.ii
Success
Input and output of data · arithmetic operations · unconditional and conditional instructions · compare instructions.
9618_w22_qp_13_sc_6.c
Why instructions are grouped at all
Every question is naming or matching. The purpose of grouping — that the instruction set is organised by function, which makes the processor’s capabilities systematic and the assembler’s job of checking opcodes possible — is untested.
MOVandEND
MOV <register>andENDare in the syllabus instruction set but fit awkwardly into the five groups (MOVis data movement;ENDbelongs to none cleanly). No question has asked about either, and no mark scheme classifiesEND.
4.2.5 Modes of addressing
Success
Direct — the operand is the address of the data · Indirect — the operand points to the memory location which contains the address of the data · Indexed — the address of the data is formed by adding the contents of the Index Register (IX) to the operand · Immediate — the operand is the data itself · Relative — the address is calculated using its distance from a base address. (1 mark mode + 1 mark matching description.)
9618_s25_qp_13_sc_5.a.ii
Success
The value of the operand is an offset value which is added to another base value to give the address from which the contents are loaded to the accumulator.
9618_w25_qp_12_sc_3.a.i
Success
With memory 98→8, 99→16, 100→3, 101→98, 102→32 and IX = 2:
LDM #98→ 98 (immediate: the number itself) ·LDI 101→ 8 (indirect: address 101 holds 98, so load the contents of 98) ·LDX 100→ 32 (indexed: 100 + IX(2) = 102, so load the contents of 102).9618_w25_qp_12_sc_3.b
Success
9618_s25_qp_12_sc_7.a.iii
Relative addressing used, not just defined
Relative is named in the syllabus notes and has been defined twice (
w25_qp_12_sc_3.a.i,s25_qp_12_sc_7.a.iii). No question has ever required a relative-addressed instruction to be traced, unlike immediate, direct, indirect and indexed — partly because the standard instruction set has no relative opcode. Know the definition cold; the trace is unlikely.
Why each mode exists
The modes are described and traced, but never justified. Indexed addressing exists so one instruction can step through an array by changing IX; indirect exists so the address can be changed at run time.
w21_qp_12_sc_8gets closest by combining IX with a loop, but the reasoning is never asked for.
The five modes, with the mechanism stated plainly
Immediate — the operand is a constant value included directly in the instruction · Direct — the exact memory address of the operand is given in the instruction · Indirect — a register or location contains the memory address of the operand · Indexed — uses a base address plus an index to calculate the memory address · Relative — the operand is an offset relative to the current instruction address, used in branching.
4.3 Bit manipulation
No 9608 questions exist for this entire sub-topic
Everything below is 9618 or inference. Bit manipulation appears in every 9618 series, almost always attached to the assembly-language question.
4.3.1 Binary shifts: logical, arithmetic and cyclic; left and right
Success
01001111left logical 2 → 0011 1100 ·11001100right logical 3 → 0001 1001 ·11001010left logical 2 → 0010 1000. Zeros fill the vacated end.9618_s25_qp_13_sc_7.a.i
Success
10010011arithmetic right 3 → 1111 0010 ·10011110arithmetic right 3 → 1111 0011. The sign bit is copied into the vacated leftmost bits.9618_w25_qp_13_sc_2.c;9618_s25_qp_13_sc_7.a.ii
Success
0110 1011afterLSR #5→ 0000 0011 ·0101 0011afterLSL #3→ 1001 1000 ·1001 0011afterLSR #2→ 0010 0100.9618_s25_qp_11_sc_8.b.iii
Success
A logical shift moves all bits to the right and inserts zeros in the appropriate leftmost bits · an arithmetic shift moves all bits to the right but copies the sign bit into the Most Significant Bit.
9618_w24_qp_13_sc_8.c
Success
ACC
0001 1110→0111 1000requiresLSL #2.9618_w25_qp_11_sc_4.a
Cyclic shifts
The syllabus notes name “logical, arithmetic and cyclic”. Logical shifts are examined every series and arithmetic shifts twice in w25/s25 — cyclic shifts have never been examined in 9618, and there is no 9608 fallback. There is also no cyclic opcode in the standard instruction set, so it would have to be asked as a written shift, e.g. “show the result of a 3-place cyclic left shift on 10110001”. This is the single clearest gap in Chapter 4.
Shifts as multiplication and division
Never asked in 9618. Each left shift doubles the value; each right shift halves it. An arithmetic right shift divides a signed number by 2 while preserving the sign. A question asking why a shift is used instead of a multiply instruction (it is far faster) is available and would test understanding rather than mechanics.
What is lost in a shift
Bits shifted off the end are discarded, so a left shift can overflow and a right shift can lose precision.
w25_qp_11_sc_4.arequires a shift that happens not to lose a 1 bit; a question where it does has not been set.
The three shift types, side by side
Logical — moves bits and fills the gap with 0s; used for unsigned numbers or raw bit manipulation. Arithmetic — left is the same as logical left; right copies the sign bit (MSB) into the new leftmost bit, preserving the sign for two’s complement numbers. Cyclic — rotates the bits around; nothing is lost and no 0s are added — the bit that falls off one end reappears at the other. Worked:
0000 1110(14) left 2 →0011 1000(56), doubling each time.1100 1000(200) right 3 →0001 1001(25), halving each time.1110 1000(−24) arithmetic right 3 →1111 1101(−3), rounding towards negative infinity.
4.3.2 Bit manipulation to monitor and control a device (masking)
Write an instruction to set a specific bit to 1 [1–2]
Set the least significant bit:
OR B00000001//OR #1//OR &1. Set only the most significant bit in a register containing any 8-bit number, requires two instructions:AND B00000000thenOR B10000000(accepted asAND #0 / OR #128, orAND &0 / OR &80).9618_s25_qp_11_sc_8.b.i;9618_s25_qp_13_sc_5.b
Explain how bit manipulation can clear a register, and write the instruction [3]
A bit manipulation operation is required to set all the bits to zero · compare the result of the masking with 0 · the result of the comparison will be true if the register is cleared · Instruction:
AND B00000000/AND #00/AND &00.9618_w24_qp_13_sc_7.b
Explain how bit manipulation can test a bit, and write the instruction [3]
To test whether the number in the ACC is odd: an odd binary number will have a 1 in the Least Significant Bit · a bit manipulation operation is required to access/mask only the LSB and clear all the others · compare the result of the masking with denary 1 · the result of the comparison will be true if the number is odd · Instruction:
AND B00000001//AND #1//AND &01.9618_w24_qp_12_sc_8.b.ii
Success
1111 0000thenOR B00001111→ 1111 1111 ·0001 1101thenXOR #30→ 0000 0011 ·0101 0101thenXOR &FE→ 1010 1011.9618_s25_qp_12_sc_7.b.i
Success
With ACC reloaded to
1001 1010each time:LSL #2→ 0110 1000 ·ADD #5thenAND #30→ 0001 1110 ·OR B11110010thenINC ACC→ 1111 1011.9618_w24_qp_12_sc_8.b.i
Success
With ACC
1111 1111:LSL #2→ 1111 1100 ·XOR 100(100 =00001101) → 1111 0010 ·AND 103(103 =00110111) → 0011 0111.9618_s24_qp_13_sc_3.b
The monitor/control device context itself
The bullet reads “show understanding of how bit manipulation can be used to monitor/control a device”. Every 9618 question asks about an abstract 8-bit register — set a bit, clear a register, test for odd. No question has placed the register in a device, e.g. “each bit of this register corresponds to a sensor; write the instruction that tests whether sensor 3 has triggered”, despite that being the literal wording and the obvious link to monitoring and control in Chapter 3.
Using a mask to clear one specific bit
Setting a bit (
OR), clearing the whole register (AND #0) and testing a bit (AND+ compare) have all been examined. Clearing one bit while leaving the others unchanged —ANDwith a mask of all 1s except a 0 in that position, e.g.AND B11110111— has not been asked, and is the natural fourth member of the set.
Flipping a bit with XOR
XOR appears constantly as a traced instruction, but no question asks candidates to use it purposefully —
XORwith a 1 in one position toggles that bit and leaves the rest alone. Given that set, clear and test all have “explain and write the instruction” questions, toggle is the missing one.
The three mask operations, as rules
OR with a 1 sets that bit to 1; OR with a 0 leaves it unchanged. AND with a 0 clears that bit to 0; AND with a 1 leaves it unchanged. XOR with a 1 flips that bit; XOR with a 0 leaves it unchanged. The standard answer structure that the 9618 mark schemes reward is three-part: say which bit(s) matter · say that a mask is applied to isolate or change them · say that the result is compared with an expected value to give a true/false outcome. Then give the instruction.