From 4debd0c1e5bbab99e53dc212020e6a02016ccbc7 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Sun, 31 Dec 2023 15:32:46 +0100 Subject: [PATCH] =?UTF-8?q?1,=202,=203=20de=20=C3=A9tape=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flap/questions/retrolixToX86_64/01.retrolix | 3 +++ flap/questions/retrolixToX86_64/02.retrolix | 26 +++++++++++++++++++++ flap/questions/retrolixToX86_64/03.retrolix | 16 +++++++++++++ flap/questions/retrolixToX86_64/Makefile | 9 +++++++ 4 files changed, 54 insertions(+) create mode 100644 flap/questions/retrolixToX86_64/01.retrolix create mode 100644 flap/questions/retrolixToX86_64/02.retrolix create mode 100644 flap/questions/retrolixToX86_64/03.retrolix create mode 100644 flap/questions/retrolixToX86_64/Makefile diff --git a/flap/questions/retrolixToX86_64/01.retrolix b/flap/questions/retrolixToX86_64/01.retrolix new file mode 100644 index 0000000..33b5fee --- /dev/null +++ b/flap/questions/retrolixToX86_64/01.retrolix @@ -0,0 +1,3 @@ +globals () + exit; +end diff --git a/flap/questions/retrolixToX86_64/02.retrolix b/flap/questions/retrolixToX86_64/02.retrolix new file mode 100644 index 0000000..04134a4 --- /dev/null +++ b/flap/questions/retrolixToX86_64/02.retrolix @@ -0,0 +1,26 @@ +globals (x, y, z, k) + x <- copy 6; + %rdi <- copy x; + print_int(); + %rdi <- copy "\n"; + print_string(); + + y <- copy 7; + %rdi <- copy y; + print_int(); + %rdi <- copy "\n"; + print_string(); + + z <- mul y, x; + %rdi <- copy z; + print_int(); + %rdi <- copy "\n"; + print_string(); + + k <- sub z, x; + %rdi <- copy k; + print_int(); + %rdi <- copy "\n"; + print_string(); + +end diff --git a/flap/questions/retrolixToX86_64/03.retrolix b/flap/questions/retrolixToX86_64/03.retrolix new file mode 100644 index 0000000..82d8927 --- /dev/null +++ b/flap/questions/retrolixToX86_64/03.retrolix @@ -0,0 +1,16 @@ +def fact () + %rax <- copy 1; + boucle: jumpif lte %rdi, 1 -> fin, suite; + suite: %rax <- mul %rax, %rdi; + %rdi <- sub %rdi, 1; + jump boucle; + fin: ret; +end + +globals (res) + %rdi <- copy 5; + fact(); + res <- copy %rax; + %rdi <- copy res; + print_int(); +end diff --git a/flap/questions/retrolixToX86_64/Makefile b/flap/questions/retrolixToX86_64/Makefile new file mode 100644 index 0000000..de64643 --- /dev/null +++ b/flap/questions/retrolixToX86_64/Makefile @@ -0,0 +1,9 @@ +FLAP = ../../_build/default/src/flap.exe +TARGET = retrolix + +main: + @for f in $(wildcard *.$(TARGET)); do \ + printf "%s:\n" $$f; \ + ./$(FLAP) -s $(TARGET) -d true -r true $$f; \ + printf "\n"; \ + done