summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-04-19 15:47:41 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2020-04-19 15:47:41 +0200
commita3651fe629769ee81acfd86d934a53866a688df0 (patch)
tree6fd6cc94c31722d3924d3f59128fa78d7d95dd47
parent6f12b8af26e0e63830eb3cefda50b7421f92d001 (diff)
downloadcompilertests-a3651fe629769ee81acfd86d934a53866a688df0.tar.gz
compilertests-a3651fe629769ee81acfd86d934a53866a688df0.tar.bz2
added a boolean and test
-rw-r--r--ecomp-c/test1.e4
-rw-r--r--ecomp-c/tests/bool_conditions.e19
-rw-r--r--ecomp-c/tests/bool_conditions.easm80
-rw-r--r--ecomp-c/tests/bool_conditions.easm_err0
-rw-r--r--ecomp-c/tests/bool_conditions.ecomp_err0
-rw-r--r--ecomp-c/tests/bool_conditions.erun1478
-rwxr-xr-xecomp-c/tests/run_tests.sh11
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