Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

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 @150 loads 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

您的邮箱地址不会被公开。 必填项已用 * 标注