Lecture 32. Mixing C and Assembly
3-Second Blueprint (English)
- Standalone __asm functions must obey the ARM Procedure Call Standard, preserving callee-saved registers like r4 and returning values in r0.
- Inline __asm blocks inside C functions treat C variables as virtual registers while the compiler handles register preservation automatically.
- Cross-file calls link symbols via extern and IMPORT, while WEAK exports provide default interrupt handlers overridden by custom C definitions.
ARM Cortex-M AssemblyAAPCS Calling StandardInline __asm BlocksWEAK Linker Symbols
3-Sekunden-Fazit (Deutsch)
- Reine __asm-Funktionen müssen dem ARM-Aufrufstandard folgen, Register wie r4 auf dem Stack sichern und Ergebnisse im Register r0 liefern.
- Inline-__asm-Blöcke in C-Funktionen nutzen C-Variablen als virtuelle Register, wobei der Compiler die Registersicherung übernimmt.
- Dateiübergreifende Aufrufe nutzen extern sowie IMPORT, während WEAK-Symbole Standard-Interrupt-Handler bei Bedarf gezielt überschreiben.
ARM Cortex-M AssemblerAAPCS-AufrufkonventionInline-__asm-BlöckeWEAK-Linker-Symbole
Note / Hinweis: Blueprints are AI-generated educational summaries (0% Politics · 0% Religion · 0% Brainrot) and do not constitute medical, legal, or financial advice. / KI-generierte Zusammenfassung zu Bildungszwecken – ersetzt keine medizinische, rechtliche oder finanzielle Fachberatung.