start readme
This commit is contained in:
@@ -1,3 +1,36 @@
|
||||
# symphony_stdlib
|
||||
# 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](teaching).
|
||||
|
||||
If you are intersted in contributing have a look at [CONTRIBUTING.md]
|
||||
|
||||
---
|
||||
|
||||
## ABI
|
||||
|
||||
### Calling Convention
|
||||
n.a. zr
|
||||
preserved: sp, r8 - r12
|
||||
scratch: flags, r1 - r7
|
||||
arguments: r1 - r7 (r1 = 1st argument, r6 = 6th arg/stack args, r7 = 7th arg/stack res)
|
||||
result: r1, r2 (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.
|
||||
|
||||
standard library for symphony
|
||||
Reference in New Issue
Block a user