diff options
Diffstat (limited to 'ecomp-c/tests/procedure_call_too_few_parameters.easm')
-rw-r--r-- | ecomp-c/tests/procedure_call_too_few_parameters.easm | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/ecomp-c/tests/procedure_call_too_few_parameters.easm b/ecomp-c/tests/procedure_call_too_few_parameters.easm new file mode 100644 index 0000000..d7fb8b4 --- /dev/null +++ b/ecomp-c/tests/procedure_call_too_few_parameters.easm @@ -0,0 +1,48 @@ +format binary +use32 +org $1000000 +jmp __global_0 +; DECL i -> integer, 1 +; param x, offset: -8, size: 4 +; PROC proc +__global_proc: +push ebp +push esp +pop ebp +; DECL l -> integer, 0 +; local l, offset: 4, size: 4 +mov eax, 4 +sub esp, eax +push ebp +pop ebx +mov eax, 4 +sub ebx, eax +mov eax, 0 +mov [ebx], eax +; LET l <- x +push ebp +pop ebx +mov eax, -8 +sub ebx, eax +mov eax, [ebx] +push eax +push ebp +pop ebx +mov eax, 4 +sub ebx, eax +pop eax +mov [ebx], eax +; LET i <- l +push ebp +pop ebx +mov eax, 4 +sub ebx, eax +mov eax, [ebx] +push eax +pop eax +mov [i], eax +mov eax, 4 +add esp, eax +pop ebp +ret 4 +__global_0: |