diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2020-04-19 15:47:41 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2020-04-19 15:47:41 +0200 |
commit | a3651fe629769ee81acfd86d934a53866a688df0 (patch) | |
tree | 6fd6cc94c31722d3924d3f59128fa78d7d95dd47 | |
parent | 6f12b8af26e0e63830eb3cefda50b7421f92d001 (diff) | |
download | compilertests-a3651fe629769ee81acfd86d934a53866a688df0.tar.gz compilertests-a3651fe629769ee81acfd86d934a53866a688df0.tar.bz2 |
added a boolean and test
-rw-r--r-- | ecomp-c/test1.e | 4 | ||||
-rw-r--r-- | ecomp-c/tests/bool_conditions.e | 19 | ||||
-rw-r--r-- | ecomp-c/tests/bool_conditions.easm | 80 | ||||
-rw-r--r-- | ecomp-c/tests/bool_conditions.easm_err | 0 | ||||
-rw-r--r-- | ecomp-c/tests/bool_conditions.ecomp_err | 0 | ||||
-rw-r--r-- | ecomp-c/tests/bool_conditions.erun | 1478 | ||||
-rwxr-xr-x | ecomp-c/tests/run_tests.sh | 11 |
7 files changed, 1587 insertions, 5 deletions
diff --git a/ecomp-c/test1.e b/ecomp-c/test1.e index a85f469..88a6d26 100644 --- a/ecomp-c/test1.e +++ b/ecomp-c/test1.e @@ -35,7 +35,7 @@ begin f := a - b; // should be 8-7=1 flag := INIT_STATE; // should be false flag := a = b; // flag should be false - flag := a <> b; // flag should be true + //flag := a <> b; // flag should be true //flag := a < b; // flag should be false //flag := a <= b; // flag should be false //flag := a > b; // flag should be true @@ -47,7 +47,7 @@ begin end; i := 0; - while i < 10 and not flag do + while ( i < 10 ) and not flag do i := i + 1; end; end diff --git a/ecomp-c/tests/bool_conditions.e b/ecomp-c/tests/bool_conditions.e new file mode 100644 index 0000000..2c30cf9 --- /dev/null +++ b/ecomp-c/tests/bool_conditions.e @@ -0,0 +1,19 @@ +/* + * simple if with boolean conditions + */ + +module bool_conditions; + +var + a, b, c, d : integer; + +begin + a := 2; + b := 1; + c := 3; + if ( a > b ) and ( a <= c ) do + d := 42; + else + d := 0; + end +end diff --git a/ecomp-c/tests/bool_conditions.easm b/ecomp-c/tests/bool_conditions.easm new file mode 100644 index 0000000..466f445 --- /dev/null +++ b/ecomp-c/tests/bool_conditions.easm @@ -0,0 +1,80 @@ +format binary +use32 +org $1000000 +; DECL a -> integer +; DECL b -> integer +; DECL c -> integer +; DECL d -> integer +; LET a <- 2 +mov eax, 2 +push eax +pop eax +mov [a], eax +; LET b <- 1 +mov eax, 1 +push eax +pop eax +mov [b], eax +; LET c <- 3 +mov eax, 3 +push eax +pop eax +mov [c], eax +; TEST a b > a c <= and +; expr left +mov eax, [a] +push eax +mov eax, [b] +push eax +pop ebx +pop eax +cmp eax, ebx +ja __global_3 +mov eax, 0 +jmp __global_4 +__global_3: mov eax, 1 +__global_4: +push eax +pop eax +mov ebx, 0 +cmp eax, ebx +je __global_2 +; expr right +mov eax, [a] +push eax +mov eax, [c] +push eax +pop ebx +pop eax +cmp eax, ebx +jbe __global_5 +mov eax, 0 +jmp __global_6 +__global_5: mov eax, 1 +__global_6: +push eax +pop eax +__global_2: +push eax +pop eax +mov ebx, 0 +cmp eax, ebx +je __global_0 +; LET d <- 42 +mov eax, 42 +push eax +pop eax +mov [d], eax +jmp __global_1 +__global_0: +; LET d <- 0 +mov eax, 0 +push eax +pop eax +mov [d], eax +__global_1: +hlt +d: dd $00000000 +c: dd $00000000 +b: dd $00000000 +a: dd $00000000 diff --git a/ecomp-c/tests/bool_conditions.easm_err b/ecomp-c/tests/bool_conditions.easm_err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ecomp-c/tests/bool_conditions.easm_err diff --git a/ecomp-c/tests/bool_conditions.ecomp_err b/ecomp-c/tests/bool_conditions.ecomp_err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ecomp-c/tests/bool_conditions.ecomp_err diff --git a/ecomp-c/tests/bool_conditions.erun b/ecomp-c/tests/bool_conditions.erun new file mode 100644 index 0000000..5e3dbfe --- /dev/null +++ b/ecomp-c/tests/bool_conditions.erun @@ -0,0 +1,1478 @@ +Read 163 bytes of code.. +1000000: B802000000 mov eax, 2 +1000005: 50 push eax +1000006: 58 pop eax +1000007: A39F000001 mov dword ptr [0x100009f], eax +100000C: B801000000 mov eax, 1 +1000011: 50 push eax +1000012: 58 pop eax +1000013: A39B000001 mov dword ptr [0x100009b], eax +1000018: B803000000 mov eax, 3 +100001D: 50 push eax +100001E: 58 pop eax +100001F: A397000001 mov dword ptr [0x1000097], eax +1000024: A19F000001 mov eax, dword ptr [0x100009f] +1000029: 50 push eax +100002A: A19B000001 mov eax, dword ptr [0x100009b] +100002F: 50 push eax +1000030: 5B pop ebx +1000031: 58 pop eax +1000032: 39D8 cmp eax, ebx +1000034: 7707 ja 0x100003d +1000036: B800000000 mov eax, 0 +100003B: EB05 jmp 0x1000042 +100003D: B801000000 mov eax, 1 +1000042: 50 push eax +1000043: 58 pop eax +1000044: BB00000000 mov ebx, 0 +1000049: 39D8 cmp eax, ebx +100004B: 7420 je 0x100006d +100004D: A19F000001 mov eax, dword ptr [0x100009f] +1000052: 50 push eax +1000053: A197000001 mov eax, dword ptr [0x1000097] +1000058: 50 push eax +1000059: 5B pop ebx +100005A: 58 pop eax +100005B: 39D8 cmp eax, ebx +100005D: 7607 jbe 0x1000066 +100005F: B800000000 mov eax, 0 +1000064: EB05 jmp 0x100006b +1000066: B801000000 mov eax, 1 +100006B: 50 push eax +100006C: 58 pop eax +100006D: 50 push eax +100006E: 58 pop eax +100006F: BB00000000 mov ebx, 0 +1000074: 39D8 cmp eax, ebx +1000076: 740E je 0x1000086 +1000078: B82A000000 mov eax, 0x2a +100007D: 50 push eax +100007E: 58 pop eax +100007F: A393000001 mov dword ptr [0x1000093], eax +1000084: EB0C jmp 0x1000092 +1000086: B800000000 mov eax, 0 +100008B: 50 push eax +100008C: 58 pop eax +100008D: A393000001 mov dword ptr [0x1000093], eax +1000092: F4 hlt +1000093: 0000 data +1000095: 0000 data +1000097: 0000 data +1000099: 0000 data +100009B: 0000 data +100009D: 0000 data +100009F: 0000 data +10000A1: 0000 data +core start 1000000 +data start 1000093 +stack start 1800000 +Single step execution: +-- iteration 1 +1000000: B802000000 mov eax, 2 +EIP: 01000005 +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000000 +0100009F: 00000000 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 2 +1000005: 50 push eax +EIP: 01000006 +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000000 +0100009F: 00000000 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 3 +1000006: 58 pop eax +EIP: 01000007 +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000000 +0100009F: 00000000 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 4 +1000007: A39F000001 mov dword ptr [0x100009f], eax +EIP: 0100000C +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000000 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 5 +100000C: B801000000 mov eax, 1 +EIP: 01000011 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000000 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 6 +1000011: 50 push eax +EIP: 01000012 +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000001 +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000000 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 7 +1000012: 58 pop eax +EIP: 01000013 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000000 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 8 +1000013: A39B000001 mov dword ptr [0x100009b], eax +EIP: 01000018 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 9 +1000018: B803000000 mov eax, 3 +EIP: 0100001D +ESP: 01800000 +EBP: 00000000 +EAX: 00000003 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 10 +100001D: 50 push eax +EIP: 0100001E +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000003 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000003 +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 11 +100001E: 58 pop eax +EIP: 0100001F +ESP: 01800000 +EBP: 00000000 +EAX: 00000003 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000000 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 12 +100001F: A397000001 mov dword ptr [0x1000097], eax +EIP: 01000024 +ESP: 01800000 +EBP: 00000000 +EAX: 00000003 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 13 +1000024: A19F000001 mov eax, dword ptr [0x100009f] +EIP: 01000029 +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 14 +1000029: 50 push eax +EIP: 0100002A +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 15 +100002A: A19B000001 mov eax, dword ptr [0x100009b] +EIP: 0100002F +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 16 +100002F: 50 push eax +EIP: 01000030 +ESP: 017FFFF8 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFF8: 00000001 +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 17 +1000030: 5B pop ebx +EIP: 01000031 +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000001 +EBX: 00000001 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 18 +1000031: 58 pop eax +EIP: 01000032 +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000001 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 19 +1000032: 39D8 cmp eax, ebx +EIP: 01000034 +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000001 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 20 +1000034: 7707 ja 0x100003d +EIP: 0100003D +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000001 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 21 +100003D: B801000000 mov eax, 1 +EIP: 01000042 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000001 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 22 +1000042: 50 push eax +EIP: 01000043 +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000001 +EBX: 00000001 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000001 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 23 +1000043: 58 pop eax +EIP: 01000044 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000001 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 24 +1000044: BB00000000 mov ebx, 0 +EIP: 01000049 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 25 +1000049: 39D8 cmp eax, ebx +EIP: 0100004B +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 26 +100004B: 7420 je 0x100006d +EIP: 0100004D +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 27 +100004D: A19F000001 mov eax, dword ptr [0x100009f] +EIP: 01000052 +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 28 +1000052: 50 push eax +EIP: 01000053 +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000002 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 29 +1000053: A197000001 mov eax, dword ptr [0x1000097] +EIP: 01000058 +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000003 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 30 +1000058: 50 push eax +EIP: 01000059 +ESP: 017FFFF8 +EBP: 00000000 +EAX: 00000003 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFF8: 00000003 +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 31 +1000059: 5B pop ebx +EIP: 0100005A +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000003 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000002 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 32 +100005A: 58 pop eax +EIP: 0100005B +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 33 +100005B: 39D8 cmp eax, ebx +EIP: 0100005D +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 34 +100005D: 7607 jbe 0x1000066 +EIP: 01000066 +ESP: 01800000 +EBP: 00000000 +EAX: 00000002 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 35 +1000066: B801000000 mov eax, 1 +EIP: 0100006B +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 36 +100006B: 50 push eax +EIP: 0100006C +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000001 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000001 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 37 +100006C: 58 pop eax +EIP: 0100006D +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 38 +100006D: 50 push eax +EIP: 0100006E +ESP: 017FFFFC +EBP: 00000000 +EAX: 00000001 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 00000001 +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 39 +100006E: 58 pop eax +EIP: 0100006F +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000003 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 40 +100006F: BB00000000 mov ebx, 0 +EIP: 01000074 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 41 +1000074: 39D8 cmp eax, ebx +EIP: 01000076 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 42 +1000076: 740E je 0x1000086 +EIP: 01000078 +ESP: 01800000 +EBP: 00000000 +EAX: 00000001 +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 43 +1000078: B82A000000 mov eax, 0x2a +EIP: 0100007D +ESP: 01800000 +EBP: 00000000 +EAX: 0000002A +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 44 +100007D: 50 push eax +EIP: 0100007E +ESP: 017FFFFC +EBP: 00000000 +EAX: 0000002A +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +017FFFFC: 0000002A +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 45 +100007E: 58 pop eax +EIP: 0100007F +ESP: 01800000 +EBP: 00000000 +EAX: 0000002A +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 00000000 +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 46 +100007F: A393000001 mov dword ptr [0x1000093], eax +EIP: 01000084 +ESP: 01800000 +EBP: 00000000 +EAX: 0000002A +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 0000002A +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 47 +1000084: EB0C jmp 0x1000092 +EIP: 01000092 +ESP: 01800000 +EBP: 00000000 +EAX: 0000002A +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 0000002A +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 +-- iteration 48 +1000092: F4 hlt +EIP: 01000093 +ESP: 01800000 +EBP: 00000000 +EAX: 0000002A +EBX: 00000000 +ECX: 00000000 +EDX: 00000000 +ESI: 00000000 +EDI: 00000000 +stack: +data: +01000093: 0000002A +01000097: 00000003 +0100009B: 00000001 +0100009F: 00000002 +010000A3: 00000000 +010000A7: 00000000 +010000AB: 00000000 +010000AF: 00000000 +010000B3: 00000000 +010000B7: 00000000 +010000BB: 00000000 +010000BF: 00000000 +010000C3: 00000000 +010000C7: 00000000 +010000CB: 00000000 +010000CF: 00000000 diff --git a/ecomp-c/tests/run_tests.sh b/ecomp-c/tests/run_tests.sh index 51c9d0f..884821c 100755 --- a/ecomp-c/tests/run_tests.sh +++ b/ecomp-c/tests/run_tests.sh @@ -16,6 +16,7 @@ variable_assign_from_variable variable_assign_from_expression boolean_variable if_statement +bool_conditions while_statement example_divisors " @@ -72,6 +73,10 @@ cd "$(dirname "$0")" rm -f *.asm *.comp_err *.bin *.ebin *.run -for test in $TESTS; do - run_test $test -done +if test "x$1" != "x"; then + run_test "$1" +else + for test in $TESTS; do + run_test $test + done +fi |