From 4727110c5199635198d86d9cdd42c6454c9b749d Mon Sep 17 00:00:00 2001 From: Maxime Vorwerk Date: Tue, 11 Jun 2024 15:22:18 +0200 Subject: [PATCH] ARMssembly 1 --- ARMssembly_1/chall_1.S | 71 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 ARMssembly_1/chall_1.S diff --git a/ARMssembly_1/chall_1.S b/ARMssembly_1/chall_1.S new file mode 100755 index 0000000..27e4f9d --- /dev/null +++ b/ARMssembly_1/chall_1.S @@ -0,0 +1,71 @@ + .arch armv8-a + .file "chall_1.c" + .text + .align 2 + .global func + .type func, %function +func: + sub sp, sp, #32 + str w0, [sp, 12] + mov w0, 87 + str w0, [sp, 16] + mov w0, 3 + str w0, [sp, 20] + mov w0, 3 + str w0, [sp, 24] + ldr w0, [sp, 20] + ldr w1, [sp, 16] + lsl w0, w1, w0 + str w0, [sp, 28] + ldr w1, [sp, 28] + ldr w0, [sp, 24] + sdiv w0, w1, w0 + str w0, [sp, 28] + ldr w1, [sp, 28] + ldr w0, [sp, 12] + sub w0, w1, w0 + str w0, [sp, 28] + ldr w0, [sp, 28] + add sp, sp, 32 + ret + .size func, .-func + .section .rodata + .align 3 +.LC0: + .string "You win!" + .align 3 +.LC1: + .string "You Lose :(" + .text + .align 2 + .global main + .type main, %function +main: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + str w0, [x29, 28] + str x1, [x29, 16] + ldr x0, [x29, 16] + add x0, x0, 8 + ldr x0, [x0] + bl atoi + str w0, [x29, 44] + ldr w0, [x29, 44] + bl func + cmp w0, 0 + bne .L4 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl puts + b .L6 +.L4: + adrp x0, .LC1 + add x0, x0, :lo12:.LC1 + bl puts +.L6: + nop + ldp x29, x30, [sp], 48 + ret + .size main, .-main + .ident "GCC: (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0" + .section .note.GNU-stack,"",@progbits