- No base pointer register
- All local vars are referenced relative to the stack pointer
- Stack grows upward
- Arguments are placed in
r0,r1, andr2- More than 3 arguments is not supported
- The
callinstruction pushespc + 1(the address of the instruction after thecallinstruction) and jumps to the callee
- Arguments are stored in local variables if necessary (e.g.
push r0) - Extra space for local variables is made on the stack at the beginning of the function if necessary (e.g.
incr3 2) - The (optional) return value is placed in
r0 - At the end of the function,
r3should be equal to its value at the start of the function - The
retinstruction pops the return address from the stack and jumps there