Symphony Stdlib
This is a standard library for symphony. It is both intended as a practical toolkit to develop more complex software as well as a teaching resource.
If you just want to use the standard library stdlib.asm is your main header, include it after your code. You'll also need to include globals.asm in the first line of your main assembly file.
If you are using it as a learning resource have a look at the teaching folder.
If you are intersted in contributing have a look at CONTRIBUTING.md
ABI
Calling Convention
| class | registers |
|---|---|
| n.a. | zr |
| preserved | sp, r8 - r12 |
| scratch | flags, r1 - r7 |
| arguments | r1 - r5, r6 = stack args, r7 = stack res |
| result | r1 = low word, r2 = high word |
| return address | r13 |
Stack
grows downwards from top of memory arguments are passed in reverse order with the stack so: lowest address = 1st stack arg highest address = last stack arg
Types
String
Strings are stored in memory as null terminated sequences of bytes encoding ascii characters. They should be passed by reference.