Assembly Language Basics (Cambridge (CIE) A Level Computer Science) : Revision Note
Machine code vs assembly
What is machine code?
Machine code is a first-generation language
Instructions are directly executable by the processor
Written in binary code

What is assembly?
Assembly code is a second-generation language
The code is written using mnemonics, abbreviated text commands such as LDA (Load), STA(Store)
Using this language programmers can write human-readable programs that correspond almost exactly to machine code
One assembly language instruction translates to one machine code instruction
Needs to be translated into machine code for the computer to be able to execute it
Each type of computer CPU has a specific instruction set
Instruction set
An instruction set is a list of all the commands that can be processed by a CPU
Each command has a binary code which is the machine code
In assembly the binary code is written using mnemonics and split into an opcode and operand
The opcode is the part of an instruction that tells the CPU what operation to perform
It's short for "operation code"
Example operations: LDA (load), STA (store), ADD, INP, OUT, BRZ, BRA
The operand is the data or memory address the opcode will work with
It gives the extra detail the CPU needs to complete the instruction
Often used to specify a memory address, a value, or a label
Opcode | Operand | Explanation |
---|---|---|
|
| Immediate addressing. Load the number |
|
| Direct addressing. Load the contents of the location at the given address to ACC. |
|
| Indirect addressing. Use the value at the given address as a new address. Load contents to ACC. |
|
| Indexed addressing. Use |
|
| Immediate addressing. Load the number |
|
| Move the contents of ACC to the given register (e.g. IX). |
|
| Store the contents of ACC at the given memory address. |
|
| Add the contents of the given address to ACC. |
|
| Subtract the contents of the given address from ACC. |
|
| Increment the contents of the register (ACC or IX) by 1. |
|
| Decrement the contents of the register (ACC or IX) by 1. |
|
| Unconditional jump to the given address. |
|
| Compare the contents of ACC with the contents of the given address. |
|
| Compare the contents of ACC with the number |
|
| Indirect addressing. Compare ACC with the contents at the address stored in |
|
| Jump to |
| <address> | Jump to |
| Take input from the keyboard and store its ASCII value in ACC. | |
| Output to the screen the character stored in ACC. | |
| End the program and return control to the operating system | |
All questions will assume there is only one general purpose register available (Accumulator)
|
You've read 0 of your 5 free revision notes this week
Unlock more, it's free!
Did this page help you?