From 51169f5f9ab178a4ddfe9dac461405a71c9c0f94 Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Wed, 22 May 2024 08:49:29 +0200 Subject: organise --- 3/3_data_formats/main.c | 16 ++++++++++++++++ 3/3_data_formats/mstore/mstore.c | 6 ++++++ 3/3_data_formats/mstore/mstore.s | 21 +++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 3/3_data_formats/main.c create mode 100644 3/3_data_formats/mstore/mstore.c create mode 100644 3/3_data_formats/mstore/mstore.s (limited to '3/3_data_formats') diff --git a/3/3_data_formats/main.c b/3/3_data_formats/main.c new file mode 100644 index 0000000..7fac153 --- /dev/null +++ b/3/3_data_formats/main.c @@ -0,0 +1,16 @@ +#include + +void multstore(long, long, long *); + +long mult2(long a, long b) { + long s = a * b; + return s; +} + +int main() { + long d; + multstore(2, 3, &d); + printf("2 * 3 --> %ld\n", d); + return 0; +} + diff --git a/3/3_data_formats/mstore/mstore.c b/3/3_data_formats/mstore/mstore.c new file mode 100644 index 0000000..cdcf205 --- /dev/null +++ b/3/3_data_formats/mstore/mstore.c @@ -0,0 +1,6 @@ +long mult2(long, long); + +void multstore(long x, long y, long *dest) { + long t = mult2(x, y); + *dest = t; +} diff --git a/3/3_data_formats/mstore/mstore.s b/3/3_data_formats/mstore/mstore.s new file mode 100644 index 0000000..e215a2b --- /dev/null +++ b/3/3_data_formats/mstore/mstore.s @@ -0,0 +1,21 @@ + .file "mstore.c" + .text + .globl multstore + .type multstore, @function +multstore: +.LFB0: + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + movq %rdx, %rbx + call mult2@PLT + movq %rax, (%rbx) + popq %rbx + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE0: + .size multstore, .-multstore + .ident "GCC: (GNU) 12.3.0" + .section .note.GNU-stack,"",@progbits -- cgit v1.2.3