AQA · GCSE · Computer Science

    Course version: 8525 · Version from Sept 2020

    Classification of programming languages and translators: assembler.

    An assembler is a translator that converts assembly language into machine code.

    Checked against the AQA 8525 specification (opens in a new tab) on .

    • Point 18 of 19

    Study notes

    From the checked teaching notes for this specification point.

    The idea

    An assembler is a translator that converts assembly language into machine code. Assembly language uses short mnemonic instructions, each mapping closely to one machine-code instruction, so the assembler's job is largely a one-to-one translation into the binary patterns the processor executes. For example, a mnemonic such as LDA (load accumulator) is turned into the specific opcode the CPU recognises. Because assembly is tied to one processor family, the assembler must produce code for that instruction set. Distinguish it from a compiler, which translates a whole high-level program before running it, and an interpreter, which translates and executes high-level code line by line at run time. In a multiple-choice question, match the definition to the translator named, and reject options describing compilers or interpreters.

    What earns the marks

    • An assembler translates assembly language (low-level code using mnemonics) into machine code.
    • Assembly language instructions generally correspond closely to individual machine-code instructions, so translation is largely one-to-one.
    • An assembler produces object/machine code for a specific processor instruction set.
    • An assembler is not a compiler or interpreter: it does not translate high-level languages such as Python or Java.
    • The output of an assembler is binary machine code that the CPU can execute directly.

    Common mistakes and how to put them right

    • Confusing an assembler with a compiler.

      Put it right: A compiler translates high-level source code, whereas an assembler translates assembly language into machine code.

    • Thinking an assembler executes the program line by line.

      Put it right: An interpreter executes code as it translates, while an assembler only produces machine code for later execution.

    • Believing assembly language is a high-level language.

      Put it right: Assembly is low-level, using mnemonics that map closely to machine instructions.

    • Assuming one assembler works for every processor.

      Put it right: Assembly is specific to a processor's instruction set, so the assembler targets that architecture.

    Exam tips

    • Read the question stem to identify which translator is being asked about before looking at the options.
    • Eliminate options that describe compilers or interpreters, since these are the common distractors.
    • Link the key term 'assembly language' to 'assembler' and 'machine code' as a quick memory hook.
    • Check whether the option mentions high-level languages; if so, it is unlikely to describe an assembler.

    Try the lesson

    The start of the Classification of programming languages and translators: assembler. lesson, made from checked teaching notes for this specification point.

    Have a go first

    Which type of translator converts assembly language into machine code?

    There is more to this lesson

    The full lesson goes on to check your understanding and help you earn the marks. Create a free account to carry on, with your progress saved.

    Carry on with the full lesson

    A week of Premium from your first lesson · Then the free plan continues · No card, no charge

    Test your understanding of Classification of programming languages and translators: assembler.

    Active recall beats re-reading. Take an instant quiz now to test what you’ve learned and lock it into long-term memory.

    Take topic quiz

    A week of Premium from your first lesson · Then the free plan continues · No card, no charge