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