summaryrefslogtreecommitdiff
path: root/ecomp-c/tests/procedure_call_too_few_parameters.easm
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-c/tests/procedure_call_too_few_parameters.easm')
-rw-r--r--ecomp-c/tests/procedure_call_too_few_parameters.easm48
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: