Overview
| Aspect | Convention |
| Parameter passing | Stack, right-to-left (C convention) |
| Evaluation order | Right-to-left (two-pass fseek, no reversal step) |
| Stack cleanup | Caller cleans |
| Return value | HL (Z80/8080/8085) / AX (8086) |
Z80 Stack Frame
Higher addresses:
[param N] ← ix+4+N*2 (rightmost on stack)
...
[param 0] ← ix+4 (leftmost in source)
[return addr] ← ix+2
[saved ix] ← ix+0 (IX points here)
[local 0] ← ix-2
[local 1] ← ix-4
...
Lower addresses (SP):
8086 Stack Frame
Higher addresses:
[param N] ← bp+4+N*2 (or +4+N*4 for far)
...
[param 0] ← bp+4
[return addr] ← bp+2
[saved bp] ← bp+0 (BP points here)
[local 0] ← bp-2
[local 1] ← bp-4
Lower addresses (SP):
Caller Cleanup
| Target | Cleanup Code |
| Z80 | ex de,hl; ld hl,N*2; add hl,sp; ld sp,hl; ex de,hl |
| 8086 | add sp, N*2 (near) / add sp, N*4 (far) |
| 8080 | xchg; lxi h,N*2; dad sp; sphl; xchg |