How does assembly language map onto machine operations, and what do the addressing modes mean?
Assembly language: the instruction set with its opcode and operand, common operations (load, store, add, jump, compare), the relationship between assembly and machine code, and immediate, direct and indirect addressing modes.
An Eduqas Component 2 answer on assembly language: the opcode and operand structure of an instruction, common operations such as load, store, add, jump and compare, how assembly maps to machine code via the assembler, and immediate, direct and indirect addressing modes.
Reviewed by: AI editorial process; not yet individually human-reviewed
Have a quick question? Jump to the Q&A page
Jump to a section
What this dot point is asking
Eduqas wants you to explain the structure of an assembly instruction (opcode and operand), describe common operations, explain how assembly relates to machine code and the role of the assembler, and distinguish the immediate, direct and indirect addressing modes.
The answer
The instruction set: opcode and operand
Assembly, machine code and the assembler
Addressing modes
Examples in context
Assembly and the addressing modes are the human-readable view of exactly what the fetch-decode-execute cycle manipulates: a LOAD instruction is the cycle moving a value into the accumulator via the MAR and MDR. Indirect addressing is how high-level pointers and array indexing work under the hood. The assembler is one of the translators from Component 1, the low-level counterpart of the compiler. While most programmers rarely write assembly today, understanding it explains how all higher-level code ultimately runs on the processor.
Try this
Q1. What are the two parts of an assembly instruction? [2 marks]
- Cue. The opcode (the operation) and the operand (the data or its address).
Q2. In immediate addressing, what does the operand represent? [1 mark]
- Cue. The actual value to be used (not an address).
Q3. State the role of the assembler. [1 mark]
- Cue. It translates assembly-language mnemonics into the equivalent machine code.
Exam-style practice questions
Practice questions written in the style of WJEC Eduqas exam questions on this dot point, with worked answer explainers. The year tag is the paper they imitate, not the source.
Eduqas 20195 marksAn assembly instruction consists of an opcode and an operand. Explain what each part is, describe the difference between assembly language and machine code, and state the role of the assembler.Show worked answer →
Opcode and operand (up to 2 marks): the opcode is the part of the instruction that specifies the operation to perform (such as ADD or LOAD); the operand is the data the operation acts on, or the address of that data.
Assembly versus machine code (up to 2 marks): assembly language uses human-readable mnemonics (LOAD, ADD, STO) with a near one-to-one correspondence to machine instructions; machine code is the binary the processor actually executes. Assembly is easier for people to read and write than raw binary.
Assembler (up to 1 mark): the assembler is the translator that converts assembly-language mnemonics into the equivalent machine code.
Markers reward the operation-versus-data distinction, the mnemonic-versus-binary distinction, and the assembler as the translator.
Eduqas 20216 marksExplain the difference between immediate, direct and indirect addressing, using the operand value to illustrate each.Show worked answer →
Immediate addressing (up to 2 marks): the operand is the actual value to use. So with operand , the value itself is loaded or operated on directly, no memory access for the operand.
Direct addressing (up to 2 marks): the operand is the address of the value to use. So operand means "use the value stored in memory location ".
Indirect addressing (up to 2 marks): the operand is the address of a location that itself holds the address of the value. So operand means "go to location , read the address stored there, and use the value at that further address".
Markers reward the value-is-the-operand idea for immediate, address-of-the-value for direct, and address-of-the-address for indirect, illustrated with .
Related dot points
- The fetch-decode-execute cycle: the special-purpose registers (PC, MAR, MDR, CIR, ACC) and their use in fetching, decoding and executing an instruction, and the effect of the cycle on the registers.
An Eduqas Component 2 answer on the fetch-decode-execute cycle: the special-purpose registers (program counter, MAR, MDR, current instruction register, accumulator) and exactly how each is used to fetch, decode and execute an instruction.
- Computer architecture: the components of the CPU (the ALU, the control unit, the registers and the system buses), the Von Neumann stored-program concept, and the difference between Von Neumann and Harvard architectures.
An Eduqas Component 2 answer on computer architecture: the components of the CPU (ALU, control unit, registers), the address, data and control buses, the Von Neumann stored-program concept, and how Von Neumann differs from Harvard architecture.
- Program construction and translators: compilers, interpreters and assemblers and their differences, the distinction between source, object and executable code, and the stages of compilation (lexical analysis, syntax analysis, semantic analysis, code generation and optimisation).
An Eduqas Component 1 answer on translators: how compilers, interpreters and assemblers differ, the distinction between source, object and executable code, and the stages of compilation from lexical analysis through syntax and semantic analysis to code generation and optimisation.
- Data representation of numbers: converting between binary, denary and hexadecimal, representing negative numbers with sign and magnitude and two's complement, binary addition and subtraction, and detecting overflow.
An Eduqas Component 2 answer on number representation: converting between binary, denary and hexadecimal, representing negative numbers with sign and magnitude and two's complement, binary addition and subtraction, and detecting overflow.
- Processor performance: the factors affecting CPU performance (clock speed, number of cores, cache size and word length), the difference between RISC and CISC, and the use of pipelining and parallel processing.
An Eduqas Component 2 answer on processor performance: how clock speed, number of cores, cache size and word length affect speed, the difference between RISC and CISC, and how pipelining and parallel processing increase throughput.