Learning objectives

Explain the relationship between assembly language and machine code, describe the work of an assembler and the purpose of a symbolic address, and state why a one-pass assembler cannot always resolve a forward reference

Describe the structure of an assembly language instruction as an opcode and an operand, and trace a short program that uses data movement, arithmetic, comparison, branching and input and output instructions

Compare immediate, direct, indirect, indexed and relative addressing, work out the effective address in each case, and choose the mode best suited to stepping through an array

Write and trace a short assembly language routine that loops over a list of values held in consecutive memory locations using an index register

Apply logical, arithmetic and cyclic shifts to a binary value, describe the effect of each on the value represented, and use left and right shifts to multiply and divide by powers of two

Use bitwise AND, OR and XOR operations with a mask to test, set, clear or toggle individual bits of a byte, and describe a practical use such as reading flags from a status register

Continue with a revision plan

These learning objectives are available to everyone. Sign in with an eligible plan to read the full note and worked examples.