From 3ad67b5d13963886a12492d9811a0013f02437fa Mon Sep 17 00:00:00 2001
From: Robert Grancsa <robert.grancsa2002@gmail.com>
Date: Sat, 22 Mar 2025 23:35:42 +0200
Subject: [PATCH] Added refs

Signed-off-by: Robert Grancsa <robert.grancsa2002@gmail.com>
---
 checker/ref/00-transpiler.ref |  10 ++--
 checker/ref/01-transpiler.ref |  16 ++---
 checker/ref/02-transpiler.ref |   6 +-
 checker/ref/03-transpiler.ref |  20 +++----
 checker/ref/04-transpiler.ref |   8 +--
 checker/ref/05-transpiler.ref |  18 +++---
 checker/ref/06-transpiler.ref |  10 ++--
 checker/ref/07-transpiler.ref |  20 +++----
 checker/ref/08-transpiler.ref |  12 +++-
 checker/ref/09-transpiler.ref |  35 ++++++++---
 checker/ref/10-transpiler.ref |  17 ++++--
 checker/ref/11-transpiler.ref |  39 +++++++++---
 checker/ref/12-transpiler.ref |  10 ++--
 checker/ref/13-transpiler.ref |  19 +++---
 checker/ref/14-transpiler.ref |  33 ++++++++--
 checker/ref/15-transpiler.ref |  85 +++++++++++++++++++++++---
 checker/ref/16-transpiler.ref |  38 ++++++++++--
 checker/ref/17-transpiler.ref | 109 ++++++++++++++++++++++++++++++----
 checker/ref/18-transpiler.ref |  41 ++++++++++++-
 checker/ref/19-transpiler.ref |  95 ++++++++++++++++++++++++++---
 20 files changed, 506 insertions(+), 135 deletions(-)

diff --git a/checker/ref/00-transpiler.ref b/checker/ref/00-transpiler.ref
index 7a83f3b..11d4237 100644
--- a/checker/ref/00-transpiler.ref
+++ b/checker/ref/00-transpiler.ref
@@ -1,5 +1,5 @@
-d = 77;
-b = 23;
-a = 96;
-a = 23;
-c = 58;
+MOV edx, 77
+MOV ebx, 23
+MOV eax, 96
+MOV eax, 23
+MOV ecx, 58
diff --git a/checker/ref/01-transpiler.ref b/checker/ref/01-transpiler.ref
index 5853bf9..ad51ed3 100644
--- a/checker/ref/01-transpiler.ref
+++ b/checker/ref/01-transpiler.ref
@@ -1,8 +1,8 @@
-a = c;
-d = d;
-d = 59;
-b = b;
-c = b;
-a = c;
-b = 76;
-b = 89;
+MOV eax, ecx
+MOV edx, edx
+MOV edx, 59
+MOV ebx, ebx
+MOV ecx, ebx
+MOV eax, ecx
+MOV ebx, 76
+MOV ebx, 89
diff --git a/checker/ref/02-transpiler.ref b/checker/ref/02-transpiler.ref
index cd7257b..63c9a79 100644
--- a/checker/ref/02-transpiler.ref
+++ b/checker/ref/02-transpiler.ref
@@ -1,3 +1,3 @@
-d = d & 42;
-b = b ^ 41;
-a = a ^ 39;
+AND edx, 42
+XOR ebx, 41
+XOR eax, 39
diff --git a/checker/ref/03-transpiler.ref b/checker/ref/03-transpiler.ref
index 7b6461b..4423f23 100644
--- a/checker/ref/03-transpiler.ref
+++ b/checker/ref/03-transpiler.ref
@@ -1,10 +1,10 @@
-c = c & 73;
-d = d & 45;
-a = a & 6;
-d = d & a;
-a = a | 19;
-b = b ^ a;
-a = a & 44;
-d = d ^ 89;
-d = d & 20;
-a = a & 41;
+AND ecx, 73
+AND edx, 45
+AND eax, 6
+AND edx, eax
+OR eax, 19
+XOR ebx, eax
+AND eax, 44
+XOR edx, 89
+AND edx, 20
+AND eax, 41
diff --git a/checker/ref/04-transpiler.ref b/checker/ref/04-transpiler.ref
index 6ceb215..3a34427 100644
--- a/checker/ref/04-transpiler.ref
+++ b/checker/ref/04-transpiler.ref
@@ -1,4 +1,4 @@
-a = a + d;
-c = c + 26;
-b = b + b;
-b = b + 63;
+ADD eax, edx
+ADD ecx, 26
+ADD ebx, ebx
+ADD ebx, 63
diff --git a/checker/ref/05-transpiler.ref b/checker/ref/05-transpiler.ref
index 20e9efd..f43f18a 100644
--- a/checker/ref/05-transpiler.ref
+++ b/checker/ref/05-transpiler.ref
@@ -1,9 +1,9 @@
-c = c + 65;
-b = b + d;
-b = b + 20;
-d = d + a;
-b = b + d;
-d = d + 23;
-c = c + b;
-c = c + 52;
-a = a + 83;
+ADD ecx, 65
+ADD ebx, edx
+ADD ebx, 20
+ADD edx, eax
+ADD ebx, edx
+ADD edx, 23
+ADD ecx, ebx
+ADD ecx, 52
+ADD eax, 83
diff --git a/checker/ref/06-transpiler.ref b/checker/ref/06-transpiler.ref
index c7b8a3d..ccb9dc8 100644
--- a/checker/ref/06-transpiler.ref
+++ b/checker/ref/06-transpiler.ref
@@ -1,5 +1,5 @@
-a = a - a;
-d = d - b;
-c = c - b;
-a = a - 55;
-b = b - 16;
+SUB eax, eax
+SUB edx, ebx
+SUB ecx, ebx
+SUB eax, 55
+SUB ebx, 16
diff --git a/checker/ref/07-transpiler.ref b/checker/ref/07-transpiler.ref
index 64403ff..e6d0c07 100644
--- a/checker/ref/07-transpiler.ref
+++ b/checker/ref/07-transpiler.ref
@@ -1,10 +1,10 @@
-b = b - 55;
-b = b - 22;
-b = b - 70;
-b = b - 90;
-b = b - 50;
-d = d - 82;
-a = a - 67;
-d = d - 83;
-b = b - 28;
-b = b - b;
+SUB ebx, 55
+SUB ebx, 22
+SUB ebx, 70
+SUB ebx, 90
+SUB ebx, 50
+SUB edx, 82
+SUB eax, 67
+SUB edx, 83
+SUB ebx, 28
+SUB ebx, ebx
diff --git a/checker/ref/08-transpiler.ref b/checker/ref/08-transpiler.ref
index ebe47d2..ebced95 100644
--- a/checker/ref/08-transpiler.ref
+++ b/checker/ref/08-transpiler.ref
@@ -1,3 +1,9 @@
-c = c * 8;
-c = c * 1;
-c = c * 6;
+MOV eax, edx
+MUL 8
+MOV edx, eax
+MOV eax, ecx
+MUL ecx
+MOV ecx, eax
+MOV eax, ecx
+MUL ebx
+MOV ecx, eax
diff --git a/checker/ref/09-transpiler.ref b/checker/ref/09-transpiler.ref
index 65f02da..3a415e2 100644
--- a/checker/ref/09-transpiler.ref
+++ b/checker/ref/09-transpiler.ref
@@ -1,8 +1,27 @@
-b = b * 10;
-b = b * 4;
-b = b * 9;
-c = c * c;
-c = c * 6;
-c = c * a;
-c = c * 7;
-b = b * 0;
+MOV eax, ebx
+MUL 4
+MOV ebx, eax
+MOV eax, edx
+MUL 7
+MOV edx, eax
+MOV eax, ecx
+MUL 8
+MOV ecx, eax
+MOV eax, ecx
+MUL edx
+MOV ecx, eax
+MOV eax, ebx
+MUL 0
+MOV ebx, eax
+MOV eax, ebx
+MUL 1
+MOV ebx, eax
+MOV eax, ebx
+MUL ecx
+MOV ebx, eax
+MOV eax, edx
+MUL ebx
+MOV edx, eax
+MOV eax, ebx
+MUL edx
+MOV ebx, eax
diff --git a/checker/ref/10-transpiler.ref b/checker/ref/10-transpiler.ref
index 51a8e03..8357161 100644
--- a/checker/ref/10-transpiler.ref
+++ b/checker/ref/10-transpiler.ref
@@ -1,4 +1,13 @@
-d = d / d;
-b = b / c;
-d = d / b;
-c = c / a;
+MOV eax, ebx
+DIV 8
+MOV ebx, eax
+MOV eax, ebx
+DIV 4
+MOV ebx, eax
+Error
+MOV eax, ecx
+DIV 5
+MOV ecx, eax
+MOV eax, ecx
+DIV ecx
+MOV ecx, eax
diff --git a/checker/ref/11-transpiler.ref b/checker/ref/11-transpiler.ref
index c15b1a1..527c0a3 100644
--- a/checker/ref/11-transpiler.ref
+++ b/checker/ref/11-transpiler.ref
@@ -1,9 +1,30 @@
-d = d / b;
-d = d / c;
-c = c / 7;
-d = d / d;
-c = c / 5;
-b = b / 5;
-c = c / c;
-d = d / 8;
-d = d / 4;
+MOV eax, ecx
+DIV 2
+MOV ecx, eax
+MOV eax, ecx
+DIV 9
+MOV ecx, eax
+MOV eax, ebx
+DIV 8
+MOV ebx, eax
+MOV eax, ebx
+DIV 6
+MOV ebx, eax
+MOV eax, ecx
+DIV ebx
+MOV ecx, eax
+MOV eax, ecx
+DIV ecx
+MOV ecx, eax
+MOV eax, ebx
+DIV ebx
+MOV ebx, eax
+MOV eax, ebx
+DIV 5
+MOV ebx, eax
+MOV eax, ebx
+DIV 2
+MOV ebx, eax
+MOV eax, ecx
+DIV ebx
+MOV ecx, eax
diff --git a/checker/ref/12-transpiler.ref b/checker/ref/12-transpiler.ref
index 301c032..8d906ea 100644
--- a/checker/ref/12-transpiler.ref
+++ b/checker/ref/12-transpiler.ref
@@ -1,5 +1,5 @@
-a = a >> 23;
-a = a << 28;
-a = a >> 2;
-a = a << 14;
-d = d >> 14;
+SHR edx, 20
+SHR eax, 24
+SHR ebx, 4
+SHR ebx, 7
+SHL edx, 2
diff --git a/checker/ref/13-transpiler.ref b/checker/ref/13-transpiler.ref
index 3c14a39..14b8b54 100644
--- a/checker/ref/13-transpiler.ref
+++ b/checker/ref/13-transpiler.ref
@@ -1,10 +1,9 @@
-b = b >> 1;
-b = b >> 31;
-c = c << 21;
-d = d << 26;
-a = a << 31;
-a = a >> 10;
-a = a >> 21;
-d = d >> 3;
-d = d << 19;
-d = d >> 25;
+SHR ecx, 17
+SHR eax, 2
+SHR ecx, 16
+SHR edx, 11
+SHR edx, 10
+SHL eax, 0
+SHL ebx, 29
+SHL edx, 8
+SHL ecx, 29
diff --git a/checker/ref/14-transpiler.ref b/checker/ref/14-transpiler.ref
index aac4e33..c8f7be9 100644
--- a/checker/ref/14-transpiler.ref
+++ b/checker/ref/14-transpiler.ref
@@ -1,5 +1,28 @@
-if (c >= 23)
-if (d == 20)
-if (a < 0)
-if (b > 58)
-if (d < 17)
+CMP edx, 8
+JL end_label
+MOV eax, ebx
+MUL edx
+MOV ebx, eax
+end_label:
+CMP edx, 14
+JNE end_label
+OR ebx, ebx
+MOV eax, edx
+MUL ebx
+MOV edx, eax
+SHL edx, 1
+SUB eax, eax
+end_label:
+CMP edx, 67
+JG end_label
+Error
+end_label:
+CMP eax, 96
+JG end_label
+SUB edx, ecx
+end_label:
+CMP edx, 82
+JNE end_label
+SUB eax, 10
+SUB ebx, 72
+end_label:
diff --git a/checker/ref/15-transpiler.ref b/checker/ref/15-transpiler.ref
index 929f796..391a150 100644
--- a/checker/ref/15-transpiler.ref
+++ b/checker/ref/15-transpiler.ref
@@ -1,9 +1,76 @@
-if (a <= 88)
-if (d >= 8)
-if (a >= 76)
-if (a > 75)
-if (d >= 73)
-if (d == 14)
-if (d > 20)
-if (d > 98)
-if (b >= 7)
+CMP edx, 95
+JG end_label
+SUB ebx, 72
+MOV eax, edx
+MUL edx
+MOV edx, eax
+ADD ebx, ecx
+XOR ebx, 65
+ADD eax, ebx
+end_label:
+CMP edx, 87
+JL end_label
+SHL edx, 26
+MOV eax, ebx
+MUL 10
+MOV ebx, eax
+ADD edx, edx
+MOV ecx, edx
+MOV eax, ebx
+MUL ecx
+MOV ebx, eax
+end_label:
+CMP eax, 82
+JNE end_label
+ADD eax, 37
+SUB ecx, ebx
+MOV eax, ecx
+XOR edx, 51
+SUB ebx, 50
+end_label:
+CMP ebx, 14
+JGE end_label
+ADD edx, 13
+SHR ebx, 27
+ADD eax, 57
+SUB eax, 65
+end_label:
+CMP eax, 33
+JNE end_label
+ADD edx, 61
+ADD eax, 86
+MOV eax, ebx
+DIV 10
+MOV ebx, eax
+end_label:
+CMP ebx, 46
+JL end_label
+Error
+SHR edx, 29
+SUB ecx, 2
+SHL eax, 6
+end_label:
+CMP edx, 99
+JLE end_label
+MOV eax, 40
+MOV eax, ecx
+MUL 4
+MOV ecx, eax
+SUB eax, 82
+SHR ebx, 27
+AND eax, 87
+end_label:
+CMP eax, 75
+JNE end_label
+SHR edx, 10
+end_label:
+CMP ecx, 97
+JNE end_label
+MOV eax, edx
+MUL 2
+MOV edx, eax
+end_label:
+CMP edx, 50
+JLE end_label
+SUB eax, 24
+end_label:
diff --git a/checker/ref/16-transpiler.ref b/checker/ref/16-transpiler.ref
index 6c36c0f..77b2cfc 100644
--- a/checker/ref/16-transpiler.ref
+++ b/checker/ref/16-transpiler.ref
@@ -1,5 +1,33 @@
-while (a > 99)
-while (d > 74)
-while (a <= 15)
-while (a < 59)
-while (d >= 11)
+start_loop:
+CMP ebx, 9
+JNE end_label
+SUB ecx, ebx
+JMP start_loop
+end_label:
+start_loop:
+CMP ecx, 23
+JGE end_label
+OR ecx, 11
+AND edx, edx
+XOR ecx, 43
+JMP start_loop
+end_label:
+start_loop:
+CMP edx, 50
+JNE end_label
+XOR edx, 69
+MOV ebx, ecx
+JMP start_loop
+end_label:
+start_loop:
+CMP eax, 53
+JLE end_label
+MOV eax, ecx
+DIV 3
+MOV ecx, eax
+MOV ebx, edx
+SHR ecx, 20
+ADD edx, edx
+MOV eax, 49
+JMP start_loop
+end_label:
diff --git a/checker/ref/17-transpiler.ref b/checker/ref/17-transpiler.ref
index 2150b3d..81809ac 100644
--- a/checker/ref/17-transpiler.ref
+++ b/checker/ref/17-transpiler.ref
@@ -1,12 +1,97 @@
-while (b <= 3) {
-    a = a + 23;
-}
-while (a <= 96)
-while (a <= 56)
-while (b == 58)
-while (c > 49)
-while (a <= 10)
-while (d > 76)
-while (d <= 95)
-while (d > 95)
-while (d >= 69)
+start_loop:
+CMP edx, 85
+JNE end_label
+MOV eax, ecx
+MUL 7
+MOV ecx, eax
+MUL 9
+SHR ebx, 27
+SUB edx, 5
+JMP start_loop
+end_label:
+start_loop:
+CMP eax, 64
+JL end_label
+ADD ebx, eax
+MOV eax, ecx
+DIV ecx
+MOV ecx, eax
+SHR ebx, 23
+ADD eax, edx
+MOV edx, edx
+JMP start_loop
+end_label:
+start_loop:
+CMP edx, 47
+JLE end_label
+AND ebx, 57
+JMP start_loop
+end_label:
+start_loop:
+CMP ebx, 15
+JG end_label
+MOV eax, ecx
+DIV 8
+MOV ecx, eax
+MOV edx, 77
+OR ebx, edx
+ADD edx, 4
+JMP start_loop
+end_label:
+start_loop:
+CMP ecx, 29
+JNE end_label
+MOV eax, eax
+ADD eax, 32
+MOV ebx, 30
+MOV eax, ebx
+DIV 7
+MOV ebx, eax
+SUB edx, 59
+JMP start_loop
+end_label:
+start_loop:
+CMP ebx, 47
+JNE end_label
+SHR eax, 28
+MOV eax, ecx
+DIV 9
+MOV ecx, eax
+ADD ebx, 34
+MOV eax, ebx
+MUL eax
+MOV ebx, eax
+JMP start_loop
+end_label:
+start_loop:
+CMP ebx, 25
+JNE end_label
+ADD ecx, 52
+MOV eax, ebx
+DIV 7
+MOV ebx, eax
+JMP start_loop
+end_label:
+start_loop:
+CMP eax, 18
+JG end_label
+MOV ecx, ebx
+SUB eax, ebx
+JMP start_loop
+end_label:
+start_loop:
+CMP ecx, 70
+JG end_label
+MOV eax, 22
+MOV eax, ecx
+DIV 5
+MOV ecx, eax
+MOV eax, ecx
+DIV ecx
+MOV ecx, eax
+SHR ebx, 23
+MOV eax, ebx
+MUL 0
+MOV ebx, eax
+JMP start_loop
+end_label:
diff --git a/checker/ref/18-transpiler.ref b/checker/ref/18-transpiler.ref
index ad629ca..8c4b0bf 100644
--- a/checker/ref/18-transpiler.ref
+++ b/checker/ref/18-transpiler.ref
@@ -1,3 +1,38 @@
-while (a <= 32)
-while (b < 99)
-while (c > 28)
+MOV edx, 0
+start_loop:
+CMP edx, 65
+SHL ecx, 13
+ADD edx, 1
+JMP start_loop
+end_loop:
+MOV eax, 0
+start_loop:
+CMP eax, = 70
+SUB edx, 23
+MOV eax, ecx
+DIV 5
+MOV ecx, eax
+MOV ebx, ebx
+OR ecx, 80
+MOV ecx, eax
+ADD eax, 1
+JMP start_loop
+end_loop:
+MOV edx, 0
+start_loop:
+CMP edx, 14
+SHR edx, 5
+SUB edx, eax
+ADD edx, 1
+JMP start_loop
+end_loop:
+MOV ecx, 0
+start_loop:
+CMP ecx, = 23
+MOV eax, ecx
+DIV 5
+MOV ecx, eax
+AND edx, 93
+ADD ecx, 1
+JMP start_loop
+end_loop:
diff --git a/checker/ref/19-transpiler.ref b/checker/ref/19-transpiler.ref
index 330994d..dc32ac4 100644
--- a/checker/ref/19-transpiler.ref
+++ b/checker/ref/19-transpiler.ref
@@ -1,8 +1,87 @@
-while (c >= 47)
-while (a > 25)
-while (d >= 87)
-while (d < 52)
-while (d > 61)
-while (c >= 67)
-while (d < 70)
-while (d < 39)
+MOV edx, 0
+start_loop:
+CMP edx, = 54
+XOR eax, 24
+SHR edx, 10
+MOV eax, ebx
+MUL 6
+MOV ebx, eax
+ADD edx, 1
+JMP start_loop
+end_loop:
+MOV ebx, 0
+start_loop:
+CMP ebx, 75
+ADD ecx, 11
+XOR ebx, 80
+SUB edx, ecx
+MOV edx, 69
+ADD ebx, 1
+JMP start_loop
+end_loop:
+MOV ebx, 0
+start_loop:
+CMP ebx, = 86
+MUL 2
+ADD ebx, 1
+JMP start_loop
+end_loop:
+MOV eax, 0
+start_loop:
+CMP eax, 66
+ADD ebx, 28
+MOV eax, 92
+SHR ebx, 21
+ADD eax, 1
+JMP start_loop
+end_loop:
+MOV edx, 0
+start_loop:
+CMP edx, 79
+MOV eax, ebx
+MUL ebx
+MOV ebx, eax
+SUB eax, 25
+XOR ecx, eax
+MOV eax, edx
+MUL 5
+MOV edx, eax
+SHL ecx, 11
+ADD edx, 1
+JMP start_loop
+end_loop:
+MOV edx, 0
+start_loop:
+CMP edx, 47
+MOV eax, ecx
+MUL 10
+MOV ecx, eax
+ADD edx, 1
+JMP start_loop
+end_loop:
+MOV ecx, 0
+start_loop:
+CMP ecx, 29
+OR edx, eax
+ADD ebx, 93
+SHL edx, 30
+MOV ecx, 9
+ADD ecx, 1
+JMP start_loop
+end_loop:
+MOV ecx, 0
+start_loop:
+CMP ecx, 94
+MOV eax, ecx
+DIV 7
+MOV ecx, eax
+ADD ecx, 59
+MOV eax, ecx
+DIV ecx
+MOV ecx, eax
+MOV eax, edx
+MUL 8
+MOV edx, eax
+ADD ecx, 1
+JMP start_loop
+end_loop:
-- 
GitLab