stem/CS/ABI.md
andy be05b7905d vault backup: 2023-05-22 17:32:00
Affected files:
.obsidian/community-plugins.json
.obsidian/graph.json
.obsidian/plugins/table-editor-obsidian/data.json
.obsidian/plugins/table-editor-obsidian/main.js
.obsidian/plugins/table-editor-obsidian/manifest.json
.obsidian/plugins/table-editor-obsidian/styles.css
.obsidian/workspace.json
Charities.md
Health/BWS.md
History/Britain.md
Lab/DNS.md
Lab/Deleted Packages.md
Lab/Ebook Laundering.md
Lab/Home.md
Lab/Mac.md
Lab/Photo Migration.md
Languages/Arabic.md
Money/Assets/Derivative.md
Money/Assets/Financial Instruments.md
Money/Assets/Security.md
Money/Econ.md
Money/Equity.md
Money/Giving.md
Money/Markets/Commodity.md
Money/Markets/Markets.md
Money/Markets/Types.md
STEM/AI/Literature.md
STEM/AI/Properties.md
STEM/CS/ABI.md
STEM/CS/Code Types.md
STEM/CS/Compilers.md
STEM/CS/Language Binding.md
STEM/CS/Languages/dotNet.md
STEM/CS/Quantum.md
STEM/CS/Resources.md
STEM/CS/Turing Machines.md
STEM/Maths/Algebra.md
STEM/Semiconductors/Equations.md
STEM/Signal Proc/Convolution.md
STEM/Signal Proc/Fourier Transform.md
STEM/Speech/Literature.md
STEM/img/ai-io.png
STEM/img/ai-nested-subjects.png
STEM/img/cli-infrastructure.png
Tattoo/Plans.md
Tattoo/img/chest.png
2023-05-22 17:32:00 +01:00

1.2 KiB

  • How data structures & computational routines are accessed in machine code (Code Types)
    • Machine code therefore hardware-dependent
  • API defines this structure in source code
  • Adherence usually responsibility of

Components

  • Processor instruction set
    • Register file structure
    • Stack organisation
    • Memory access types
  • Size, layouts and alignments of basic data types
  • Calling Conventions
    • How function arguments are passed
      • Stack or register
      • Which registers for which function param
      • Parameter order
    • Return values retrieved
  • How app makes sys calls to OS
    • If ABI specifies direct sys calls over procedure calls to sys call stubs then sys call numbers
  • Binary format of object files, program files
    • For complete OS ABIs

Complete ABI

  • Allows program from one OS to run on any other without change
    • Provided all shared libraries and prerequisites etc

Embedded ABI

  • File format, data types, register usage, stack frame organisation, function parameter passing conventions
    • For embedded OS
  • Compilers create object code compatible with code from other compilers
    • Link libraries from different compilers