From 623ab2ed2532196cf52755a5dfe195b6b5f2e104 Mon Sep 17 00:00:00 2001 From: Hayden Chow <kin3.chow@live.uwe.ac.uk> Date: Thu, 5 Dec 2024 16:01:30 +0000 Subject: [PATCH] edited2 --- Worksheet2/source/loader.asm | 32 ++++++++++++++++++++++++++++++++ Worksheet2/source/loader.o | Bin 0 -> 544 bytes Worksheet2/source/task2.c | 19 +++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 Worksheet2/source/loader.asm create mode 100644 Worksheet2/source/loader.o create mode 100644 Worksheet2/source/task2.c diff --git a/Worksheet2/source/loader.asm b/Worksheet2/source/loader.asm new file mode 100644 index 0000000..c20fc49 --- /dev/null +++ b/Worksheet2/source/loader.asm @@ -0,0 +1,32 @@ +global loader ; +MAGIC_NUMBER equ 0x1BADB002 ; +FLAGS equ 0x0 ; +CHECKSUM equ -MAGIC_NUMBER ; +extern main ; +; (magic number + checksum + flags should equal 0) + +section .text ; +align 4 ; + +; Multiboot header +dd MAGIC_NUMBER ; +dd FLAGS ; +dd CHECKSUM ; + +loader: ; + mov eax, 0xCAFEBABE ; +.loop: + jmp .loop ; + +; Second part of the code + global _start ; + extern sum_of_three ; + +_start: + ; + push dword 3 ; + push dword 2 ; + push dword 1 ; + call sum_of_three ; + hlt ; + diff --git a/Worksheet2/source/loader.o b/Worksheet2/source/loader.o new file mode 100644 index 0000000000000000000000000000000000000000..5b5c1644f300d04eee04e2a2006d7518572bc924 GIT binary patch literal 544 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpH?8JNH<QVEcmAPmzjz{tQLjARH4l+D4w zz`zV;gD3+=1_mV%1ByXrfS5uI3@9#1U}RuuU|?VXnZpjH1sE6@q|nTJz{tR04Ke_V zVdg=(3``r=N`u({{DYqC*thH7sn`ENTm;rDNv$ZcV$dtjC@v`~NlaqUE3V9i&=5XC zDK-|eeJl(g|0Ambg**?)Ur;wNFns(kiL8L(<9~Su1_qGZAi^L2>oYJg2tqgv3=E76 z8Vn2!ATvNh0-%`8$xlp4Ez(OY&Smg*boX?Q_Y3uPat&f|^Ko<!W^nd!b@mPp^<{u4 PgHn1q`S}GP6Brl(BRx2f literal 0 HcmV?d00001 diff --git a/Worksheet2/source/task2.c b/Worksheet2/source/task2.c new file mode 100644 index 0000000..35075df --- /dev/null +++ b/Worksheet2/source/task2.c @@ -0,0 +1,19 @@ +/* The C function */ +int sum_of_three(int arg1, int arg2, int arg3) +{ +return arg1 + arg2 + arg3; +} + +int multiply_two(int arg1, int arg2) +{ + return arg1 * arg2; +} + +void main() { + int result1 = sum_of_three(1,2,3); + int result2 = multiply_two(10,20); + + while (1) + {} + +} -- GitLab