andy
be05b7905d
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
1.2 KiB
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
- Compilers
- OS
- Library author
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 function arguments are passed
- 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