Cambridge O Level Computer Science · Syllabus 2210 · Software
Low-Level Language
What is Low-Level Language?
A low-level language is a programming language close to the processor's machine instructions. It includes machine code and assembly language, is machine-dependent and harder for people to read, write and debug, but allows direct manipulation of hardware such as registers and memory locations.
This definition is part of the Software chapter in Cambridge O Level Computer Science.
Low-Level Language in context
A low-level language is a programming language that is close to the processor's own machine instructions. The two forms are machine code — the binary instructions a CPU executes directly — and assembly language, which replaces those binary patterns with mnemonics. Low-level code is machine-dependent, and it is harder for people to read, write and debug; in exchange it offers direct manipulation of the hardware, including explicit control of registers and memory locations.
Assembly language is a form of low-level language that replaces the binary patterns of machine code with mnemonics — short, memorable words such as LOAD, ADD and STORE. Each assembly instruction corresponds closely to one machine operation, and registers and memory locations are referred to explicitly. Assembly language remains processor-specific, and because a CPU cannot execute a mnemonic, an assembler is needed to translate an assembly language program into machine code.
Questions students ask about Low-Level Language
What is the difference between a high-level language and a low-level language?
A high-level language uses instructions closer to human language than to a processor's own instruction set, so it is easier to read, write and debug, and is generally machine-independent — but it must be translated before a CPU can execute it and gives less direct control of the hardware. A low-level language, such as assembly language or machine code, is close to the processor's own instructions, machine-dependent and harder to read, write and debug, but allows direct manipulation of registers and memory locations.

