Skip to main content
EnglandComputer ScienceSyllabus dot point

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.

Generated by Claude Opus 4.813 min answer

Reviewed by: AI editorial process; not yet individually human-reviewed

Have a quick question? Jump to the Q&A page

Jump to a section
  1. What this dot point is asking
  2. The answer
  3. Examples in context
  4. Try this

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 5050 to illustrate each.
Show worked answer →

Immediate addressing (up to 2 marks): the operand is the actual value to use. So with operand 5050, the value 5050 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 5050 means "use the value stored in memory location 5050".

Indirect addressing (up to 2 marks): the operand is the address of a location that itself holds the address of the value. So operand 5050 means "go to location 5050, 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 5050.

Related dot points

Sources & how we know this