Computer-science_A-level_Cie
-
computers-and-components6 主题
-
logic-gates-and-logic-circuits2 主题
-
central-processing-unit-cpu-architecture6 主题
-
assembly-language-4 主题
-
bit-manipulation1 主题
-
operating-systems3 主题
-
language-translators2 主题
-
data-security3 主题
-
data-integrity1 主题
-
ethics-and-ownership3 主题
-
database-concepts3 主题
-
database-management-systems-dbms-1 主题
-
data-definition-language-ddl-and-data-manipulation-language-dml1 主题
-
computational-thinking-skills1 主题
-
algorithms14 主题
-
data-types-and-records2 主题
-
arrays2 主题
-
files1 主题
-
introduction-to-abstract-data-types-adt1 主题
-
programming-basics1 主题
-
constructs2 主题
-
structured-programming1 主题
-
program-development-life-cycle2 主题
-
program-design-2 主题
-
program-testing-and-maintenance3 主题
-
user-defined-data-types1 主题
-
file-organisation-and-access-3 主题
-
floating-point-numbers-representation-and-manipulation3 主题
-
protocols2 主题
-
circuit-switching-packet-switching1 主题
-
processors-parallel-processing-and-virtual-machines5 主题
-
boolean-algebra-and-logic-circuits4 主题
-
purposes-of-an-operating-system-os3 主题
-
translation-software3 主题
-
encryption-encryption-protocols-and-digital-certificates3 主题
-
artificial-intelligence-ai4 主题
-
recursion1 主题
-
programming-paradigms4 主题
-
object-oriented-programming7 主题
-
file-processing-and-exception-handling2 主题
-
data-representation5 主题
-
multimedia3 主题
-
compression2 主题
-
networks-and-the-internet11 主题
low-level-programming
Low-level programming
How do I write low-level code using addressing modes?
-
Machine code and assembly language are examples of low-level languages and were introduced in section 4 – Assembly Language Basics
-
Before continuing, make sure you understand the different addressing modes
Immediate addressing
-
Syntax:
LOAD #value -
Meaning: Load a constant value directly into the accumulator
LOAD #5 ; Load the constant value 5 into the accumulator
ADD #3 ; Add 3 to the accumulator
STORE 200 ; Store result at memory address 200
-
Use when you want to work with literal values, not data in memory
Direct addressing
-
Syntax:
LOAD address -
Meaning: Load the value stored at the specified memory address
LOAD 100 ; Load the value stored at memory address 100
ADD 101 ; Add the value at address 101
STORE 102 ; Store result in address 102
-
Use when the data is stored at known memory addresses
Indirect addressing
-
Syntax:
LOAD @address -
Meaning: The address given points to another address, where the data is stored
LOAD @150 ; Load value from the address stored in location 150
STORE 200 ; Store it in address 200
-
Example:
-
Memory[150] = 300
-
Memory[300] = 42
-
LOAD @150loads 42 into the accumulator.
-
-
Use when data is stored in dynamically referenced locations
Indexed addressing
-
Syntax:
LOAD base[X] -
Meaning: Load from base address + index register (e.g.
X)
LOAD 500[X] ; Load value from address (500 + contents of index register X)
ADD 501[X] ; Add value from another offset
-
Assume:
-
X = 2 -
This will access address 502 and 503
-
-
Use for working with arrays or tables, where the index changes
Relative addressing
-
Syntax:
BRANCH offset -
Meaning: Jump to a new instruction relative to the current instruction
BRZ +3 ; If accumulator is zero, skip 3 lines ahead
BRP -2 ; If positive, jump 2 lines back
-
Used in control flow:
LOOP: LOAD #1 SUB 200 BRZ END BR -3 ; Loop back to LOOP
END: HALT
-
Use for loops and conditional branches without needing absolute addresses
Responses