From a4e7f37dfbeedc1d18743716367f2b0ea09aa868 Mon Sep 17 00:00:00 2001 From: "Hazal2.Veziroglu@live.uwe.ac.uk" <hazal2.veziroglu@live.uwe.ac.uk> Date: Wed, 4 Dec 2024 03:28:48 +0000 Subject: [PATCH] Update 23 files - /Worksheet_1/src/asm_io.o - /Worksheet_1/src/driver.o - /Worksheet_1/src/print_int.o - /Worksheet_1/src/task1 - /Worksheet_1/src/task1.o - /Worksheet_1/src/task2 - /Worksheet_1/src/task2.o - /Worksheet_1/src/task3 - /Worksheet_1/src/task3.o - /Worksheet_1/README_2.md - /Worksheet_1/task2.o - /Worksheet_1/task1 - /Worksheet_1/task1.o - /Worksheet_1/driver.o - /Worksheet_1/print_int.o - /Worksheet_1/README.md - /Worksheet_1/task3 - /Worksheet_1/task2 - /Worksheet_1/asm_io.o - /Worksheet_1/task3.o - /Worksheet_1/src/task2.asm - /Worksheet_1/src/task3.asm - /Worksheet_1/src/asm_io.asm --- Worksheet_1/README.md | 200 +++++++++++++++++++++++++++--- Worksheet_1/README_2.md | 136 -------------------- Worksheet_1/asm_io.o | Bin 0 -> 3712 bytes Worksheet_1/{src => }/driver.o | Bin Worksheet_1/{src => }/print_int.o | Bin Worksheet_1/src/asm_io.asm | 4 +- Worksheet_1/src/asm_io.o | Bin 3648 -> 0 bytes Worksheet_1/src/task2.asm | 5 +- Worksheet_1/src/task2.o | Bin 2160 -> 0 bytes Worksheet_1/src/task3.asm | 7 +- Worksheet_1/src/task3.o | Bin 1728 -> 0 bytes Worksheet_1/{src => }/task1 | Bin 15208 -> 15120 bytes Worksheet_1/{src => }/task1.o | Bin 768 -> 768 bytes Worksheet_1/{src => }/task2 | Bin 17824 -> 17900 bytes Worksheet_1/task2.o | Bin 0 -> 2256 bytes Worksheet_1/{src => }/task3 | Bin 17532 -> 17608 bytes Worksheet_1/task3.o | Bin 0 -> 1824 bytes 17 files changed, 193 insertions(+), 159 deletions(-) delete mode 100644 Worksheet_1/README_2.md create mode 100644 Worksheet_1/asm_io.o rename Worksheet_1/{src => }/driver.o (100%) rename Worksheet_1/{src => }/print_int.o (100%) delete mode 100644 Worksheet_1/src/asm_io.o delete mode 100644 Worksheet_1/src/task2.o delete mode 100644 Worksheet_1/src/task3.o rename Worksheet_1/{src => }/task1 (68%) rename Worksheet_1/{src => }/task1.o (66%) rename Worksheet_1/{src => }/task2 (51%) create mode 100644 Worksheet_1/task2.o rename Worksheet_1/{src => }/task3 (53%) create mode 100644 Worksheet_1/task3.o diff --git a/Worksheet_1/README.md b/Worksheet_1/README.md index 6b75544..0bc8c47 100644 --- a/Worksheet_1/README.md +++ b/Worksheet_1/README.md @@ -73,44 +73,210 @@ apt install -y libc6-dev ``` --- -## Tasks and Implementations -### Task 1: Adding Two Integers +# Tasks: Detailed Code Explanations + +## Task 1: Adding Two Integers - **File**: `task1.asm` -- **Description**: This task involves writing an assembly program that: - 1. Adds two integers stored in global memory. - 2. Prints the result using the helper function `print_int`. +- **Description**: This task adds two integers stored in global memory and prints the result. + +### Code Explanation: + +#### Defining Variables: +```assembly +SECTION .data +num1 dd 5 ; First integer +num2 dd 10 ; Second integer +result dd 0 ; Memory location to store the result +``` +- Defines two integers, `num1` and `num2`, with initial values. +- Allocates a memory location for `result` to store the sum. + +#### Main Logic: +```assembly +mov eax, [num1] ; Load num1 into register eax +add eax, [num2] ; Add num2 to eax +mov [result], eax ; Store the result in memory +``` +- Loads `num1` into the `eax` register. +- Adds `num2` to the value in `eax`. +- Stores the result back into the `result` memory location. + +#### Printing the Result: +```assembly +push dword [result] +call _print_int +``` +- Pushes the value of `result` onto the stack. +- Calls the `_print_int` function to display the result. -#### How to Run: -1. Compile and link: +#### How to Compile and Run: +1. Compile the assembly file: ```bash - make task1 + nasm -f elf32 src/task1.asm -o task1.o ``` -2. Run the program: +2. Link with `driver.o` and `print_int.o`: + ```bash + gcc -m32 task1.o src/driver.o src/print_int.o -o src/task1 + ``` +3. Run the executable: ```bash ./src/task1 ``` +# Task 1 Output: Assembly Programming with Docker Integration + +## Screenshot and Explanation + +**Description**: This screenshot demonstrates the result of Task 1, where two integers (`10` and `20`) are added using assembly code. The result (`30`) is displayed in the terminal. + + --- -### Task 2: Loops and Conditionals +## Task 2: Loops and Conditionals - **File**: `task2.asm` -- **Description**: This task involves implementing: - 1. A loop to sum an array of integers. - 2. User input validation (e.g., checking if a number is between 50 and 100). +- **Description**: Implements a loop to sum an array of integers and validates user input. -#### How to Run: -1. Compile and link: +### Code Explanation: + +#### Defining Variables: +```assembly +SECTION .data +array dd 1, 2, 3, 4, 5 ; Array of integers +length equ 5 ; Length of the array +sum dd 0 ; To store the sum +``` +- Defines an array of integers `array`. +- Uses `length` to store the size of the array. +- Allocates a memory location for `sum` to store the total. + +#### Summing the Array: +```assembly +mov ecx, length ; Set loop counter +xor eax, eax ; Clear accumulator +xor edi, edi ; Array index +sum_loop: + add eax, [array + edi*4] ; Add array element to eax + inc edi ; Increment index + loop sum_loop ; Decrement ecx and repeat +mov [sum], eax ; Store the sum in memory +``` +- Initializes the loop counter with the array length. +- Iterates through the array, adding each element to `eax`. +- Stores the total in `sum`. + +#### Validating Input: +```assembly +cmp eax, 50 +jl invalid_input +cmp eax, 100 +jg invalid_input +``` +- Compares the total with a valid range (50 to 100). +- Jumps to `invalid_input` if the total is out of range. + +#### Printing the Sum: +```assembly +push dword [sum] +call _print_int +``` +- Pushes the value of `sum` onto the stack. +- Calls the `_print_int` function to display the sum. + +#### How to Compile and Run: +1. Compile the assembly file: + ```bash + nasm -f elf32 src/task2.asm -o task2.o + ``` +2. Link with `driver.o`: ```bash - make task2 + gcc -m32 task2.o driver.o asm_io.o -o task2 ``` -2. Run the program: +3. Run the executable: ```bash ./src/task2 ``` +# Task 2 Output + +## Screenshot of Task 2 +The following screenshot demonstrates the successful execution of Task 2. It showcases the program's ability to validate user input and sum an array of integers within a specified range. + + + +## Explanation +In Task 2, the program performs two main functions: +1. Validates user input to ensure the entered number is within a specified range (50–100). +2. Sums integers from an array and displays the result. + --- +### Task 3: Loops and Conditionals +- **File**: `task3.asm` +- **Description**: This task sums integers within a specified range using loops in assembly. + It calculates the total sum of all numbers between two user-provided inputs. + +#### Defining Variables: +1. Compile the assembly file: + ```bash + SECTION .data + start dd 0 ; Start of the range + end dd 0 ; End of the range + total dd 0 ; Total sum of the range + + ``` +-Defines memory locations for the start and end of the range, as well as the total sum. + +2. Main Logic: + ```assembly + mov eax, [start] ; Load the start value + mov ecx, [end] ; Load the end value + xor edx, edx ; Clear the total + sum_loop: + add edx, eax ; Add the current number to the total + inc eax ; Increment to the next number + cmp eax, ecx ; Compare current with end + jle sum_loop ; If less or equal, continue + mov [total], edx ; Store the total sum in memory + + ``` +Uses a loop to add all integers between start and end inclusively. +3. Printing the Total Sum: + ```assembly + push dword [total] + call _print_int + + ``` +-Defines memory locations for the start and end of the range, as well as the total sum. + +#### How to Compile and Run: +1. Compile the assembly file: + ```bash + nasm -f elf32 src/task3.asm -o task3.o + ``` +2. Link with driver.o to create the executable: + ```bash + gcc -m32 task3.o driver.o asm_io.o -o task3 + ``` +3. Run the program: + ```bash + ./src/task3 + ``` +# Task 3 Output + +## Screenshot of Task 3 +The following screenshot demonstrates the successful execution of Task 3. It shows the program prompting the user to enter the size of an array and values one by one. It calculates the maximum, minimum, and sum of all values. + + + +## Explanation +In Task 3, the program performs the following operations: +1. Prompts the user to enter the size of an array. +2. Accepts individual integers to populate the array. +3. Computes the maximum, minimum, and sum of the array values. +4. Displays the results. + +--- ## Project Structure ``` diff --git a/Worksheet_1/README_2.md b/Worksheet_1/README_2.md deleted file mode 100644 index 82e7c38..0000000 --- a/Worksheet_1/README_2.md +++ /dev/null @@ -1,136 +0,0 @@ - -# Worksheet 1: Assembly Programming with Docker Integration - -This project is part of the **Worksheet 1** task, focusing on assembly programming and integration with Docker for build and run processes. Due to connectivity issues with `csctcloud`, Docker was used as a workaround to set up a Linux environment directly from Visual Studio Code. This approach allowed for seamless development, testing, and debugging of assembly programs. - ---- - -## Project Overview - -This repository contains assembly language programs and supporting files to demonstrate basic programming concepts in assembly language. The workflow involves: -- Writing assembly code. -- Integrating it with C for execution. -- Automating builds with a `Makefile`. -- Running the tasks in a containerized Linux environment using Docker. - ---- - -## Docker Integration - -### Why Docker? -`csctcloud` environment was unavailable due to connectivity issues. To continue working efficiently, Docker was used to: -- Set up a 32-bit Linux environment required for assembly programming. -- Provide a consistent environment directly accessible through Visual Studio Code for editing, building, and running tasks. - -### Using Docker -1. **Build the Docker Image**: - ```bash - docker build -t asm_project . - ``` - - Creates a Docker image with all necessary tools installed (NASM, GCC, Make, etc.). - -2. **Run the Docker Container**: - ```bash - docker run -it --rm -v $(pwd):/workspace -w /workspace asm_project - ``` - - Starts a container with the current project directory mounted for access inside the container. - -3. **Inside the Container**: - - Compile all tasks: - ```bash - make - ``` - - Run each task: - - Task 1: - ```bash - ./src/task1 - ``` - - Task 2: - ```bash - ./src/task2 - ``` - - Task 3: - ```bash - ./src/task3 - ``` - - Clean up object files and executables: - ```bash - make clean - ``` - ---- - -## Project Structure - -``` -worksheet_1/ -├── README.md # Project documentation -├── Makefile # Automates the build process -├── Dockerfile # Configures the Linux environment -├── src/ # Directory containing all source files -│ ├── asm_io.asm # Provided Assembly IO code -│ ├── asm_io.inc # Provided IO include file -│ ├── driver.c # Main C program calling assembly functions -│ ├── print_int.c # Helper C program for printing integers -│ ├── task1.asm # Assembly code for Task 1 -│ ├── task2.asm # Assembly code for Task 2 -│ ├── task3.asm # Assembly code for Task 3 -``` - ---- - -## Screenshots and Outputs - -To fulfill the documentation requirements, include screenshots of: -1. **Task 1 Output**: Showing the result of adding two integers. -2. **Task 2 Output**: Demonstrating user input validation and array summation. -3. **Task 3 Build**: Displaying the successful build process using the `Makefile`. - -Include brief explanations for each screenshot. - ---- - -## How to Run Locally (Optional) - -If not using Docker, you can also run the project on a local Linux machine: -1. **Install the necessary tools**: - ```bash - sudo apt update - sudo apt install nasm gcc make - ``` -2. **Compile the tasks**: - ```bash - make - ``` -3. **Run each task**: - - Task 1: - ```bash - ./src/task1 - ``` - - Task 2: - ```bash - ./src/task2 - ``` - - Task 3: - ```bash - ./src/task3 - ``` - ---- - -## Authors - -- Hazal Veziroglu - ---- - -## License - -This project is licensed under the MIT License. See the `LICENSE` file for details. - ---- - -## Acknowledgments - -- UWE Course Material on Assembly Programming. -- Online assembly programming resources and communities. diff --git a/Worksheet_1/asm_io.o b/Worksheet_1/asm_io.o new file mode 100644 index 0000000000000000000000000000000000000000..e248916a2951ceb632a476cd1fb26cc61bb52a13 GIT binary patch literal 3712 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 literal 0 HcmV?d00001 diff --git a/Worksheet_1/src/driver.o b/Worksheet_1/driver.o similarity index 100% rename from Worksheet_1/src/driver.o rename to Worksheet_1/driver.o diff --git a/Worksheet_1/src/print_int.o b/Worksheet_1/print_int.o similarity index 100% rename from Worksheet_1/src/print_int.o rename to Worksheet_1/print_int.o diff --git a/Worksheet_1/src/asm_io.asm b/Worksheet_1/src/asm_io.asm index 96c5e49..b9b46f6 100644 --- a/Worksheet_1/src/asm_io.asm +++ b/Worksheet_1/src/asm_io.asm @@ -499,4 +499,6 @@ cont_tag_loop: popf popa leave - ret 4 \ No newline at end of file + ret 4 + +section .note.GNU-stack noalloc noexec nowrite progbits diff --git a/Worksheet_1/src/asm_io.o b/Worksheet_1/src/asm_io.o deleted file mode 100644 index d2921f0c774600089db73d581638199c58d10228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3648 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpJY8JNK=QVEcmAPm!;z{tSR0}_B5!~&(+ z85qF!vqAYEm>3v-FhMyC3=9HLCNBd6ic3DQGB6lI<v<k7XmJJx1|;na1|Wl37#LU? z7#NHg7#KkIg3OdhGtYpFfnhn4Mwof(3=9mMAPb=Q0S^O11S7;8kaCcD98ftBrJBj0 zTFelXnx0u)l3JwTQkq+!psb*p!sY51p<t_^s%H_Q;Oc~6IwP1aFeaC4uqRxt3xeqs z02d90F}YklVN3-#A4m6Kuo9C91=V6q#Kqw3#t`Mk5bVYf;KtzZ#^B<{;ONGnpupgp znwwu#iEyrhV@gU<YH=~xG>Zr>2C%~!RP~G^6c~a_5|gtLYPnpoI*dV8+ayH+;$tw$ z#o(J*lA++7Ur>~voLXF*j}$x#&iQ#IMfo`j;rT@=U`tIR6oN|<OG=B8g}4}kLsV0& z6jb#L4bov8&%Cn4oXix3;1HOIYi>bFB^M|<7*4P-FeJ?Bb^Q~N0ph>-^Z)<<$jG^g z-L8L59zMYUl0=h12!qltT*Jx35Tn2XovwdSjR1>A&P{}A&f-E60Xw0aMWxgA&q`3b zDq-I-pMinlHS3No3=9kb-(CNJQc(%}juoh)pmbWozGEY*C@6=Pu<uxeD%!xnz)-@z zV=1aAD7lxg?^uT>$^llp8cFnj>7Q;_mgW~+0lls~0sl)G!oz|Bga4QQ_+QGA0m?#P z?=&CrnVWd>5DNn&;Cfv}KuSSMo-i;lK$Qq|$1-%g3LJdE#CW(nRG{-BvoDWhP~d;# z;LZyNA20=Ea5Ey*Mn*NiX7PIT0Awr=)Y$)}JpW4tGPWa(<moQuX@2&h+n2*JFf8K+ zLW0Baw&8&;7P)|odq{%L&A$a|p6^fs3B~;T{~xNzMxlnyrmmjpHR}$0kd))U|Np^C zA3~HG{`>#`h3&up|C^5qL_V4Zby5i^iOjxRI;GonhU)+S3=9F?u2UckkjG__Jd@V# zJ0tDjOYXGhhwN$Hv2!jwOuKw~KPcJtmTuSyDkTEbb}%!fDc(rqJW!&L*8GF9L@cfO z2UCfDct$<KAdc6%H{ZQxx~+FNw&#E8g#V>I;TfRv6BfX)`NA`Dk(8$$Jk8|Ze2gpd z(fqrqQ$X$pr6-WR3=9l<DTyVC40<K06(tOM#TmsVMJ0(z40^?txeyx4FG|gUsDWz3 zMS;>UOpb-&<9`?%M5ERupz@lDfd?c3$BYc1@)?w`AVQ1`stgPap!5af8!#|1fHDV+ zZ_U8K07~jGzAFO*11OQh`2GwG44`ZS<3}?vFn|&^jGxKCzyM1AFn$pO0|O{S!T5~~ z3=E)L2;=uKFff2p9*jSOfq?;(;9&eE3=9mQv<BmEU|?VXC4LxxF9QPuD1pQH=NT9n zKxqWVzXK|A;DN}<@P>hb0Th=o`F{)y44|X{<CilsFwBK;z%^SPBXW2!F|;u<Fl<JW z?`33Q*nz~K%E-WQ5{W;Dk%8eH5`PIJ1H*kJ{%S^K|1dFZW@KRaiX^{_k%8eC68{h* zvVWNvPBJnu2*CZv#Bh<3fk6?8e}j>MK@Exjo{@o}9f{Aw#K3R?i7(B>!0-@>uffE? zzy_*#!ERt;Fk@n15Jlp<FflMlA@MVr7#RAH_(e<%4BL_TRZI*FyOH?KObiTrk@z6J z*O2%#nHU(JAo2O&ZiBQ{M9}!sXnbWfzBUS<iNS=Cfk77RH;{Qu40enR43M@MgzwGB zz~GG}AIiwUkbuMol@o<X{7gm$hGr!G14aghFsPjZ3``9F85tPXBJrb{7#JL&{sYM~ zBo^n!XXfiA7Uwc#=9R>!<rn29mM|2T6lLb6!+1rhaAtC1QBh@lT25j*Lse=~K7>`A znVtt>6(kmAmO$n6%TkNda`MX|GAWrw5JqBYMLd!zrFq4vB@mh1)Lf{Ih71U{5fa;& zp%~OQfvSRXax(K$VIsMSB^gk*Ap^MC5MK=UR3@Y$fh3X&YDggQi<1-c(ijSgGV@B( z7}8Tqk~0#E7z#=ubWv(zN_=Ks2}B-=1qmz$uslQu$bfhxW?l|MacNR~N@;FEd{Jt8 zF+*}%e12LQLqTbAMtpJ_Lje-EAdMjriJO?lP=&;;N@FNS;ufbdq#$uq(irlQxcO-a zYrz4B9AY{7`2`5++|*ofIOms^q!z`4<v>x8ky?S^fII}@<>lwagF`7XDJK=I4=xv< zoS#>cnOB;MWOian217|=Iz%rx*%X(+V+R_XMX8B742T$F02vbx*91-B3=G_${sa>! zuP`t$88LwC7e*!q1}#wOY0SW21C@7#@`FIM2?GPDb;xAOz)%I^n=&v=hpL+grPo4f zP+b8s?=X~q3QFIE(hs2Ydno-4O0zODFo5*&Kxt690OBh_`7Th}laYae$(Vs59m>yv z@+U+2GoXA>ISkUjAIiTBl?RotApI|({I^i~1SW|6sZ0>_S3>#gp!^e1{#hvh29$pn I%7+Co060G;Hvj+t diff --git a/Worksheet_1/src/task2.asm b/Worksheet_1/src/task2.asm index 841981a..f124a38 100644 --- a/Worksheet_1/src/task2.asm +++ b/Worksheet_1/src/task2.asm @@ -20,9 +20,9 @@ section .bss range_sum resd 1 section .text - global main + global _asm_main -main: +_asm_main: ; Prompt for and read user name mov eax, prompt_name call print_string @@ -130,3 +130,4 @@ read_char_loop: end_read_name: mov byte [edi], 0 ; Null-terminate the string ret +section .note.GNU-stack noalloc noexec nowrite progbits diff --git a/Worksheet_1/src/task2.o b/Worksheet_1/src/task2.o deleted file mode 100644 index 1350a839d50964848196e916937d40860000b6cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2160 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpHi7+An8QVEcmAj}Na*ucoZum;KoQ7}{4 z85kHi7#J8}>I|3|7%qV{f)p_@z-{MYU;w+54Jr;&Cy%5~04gqoWEMy$fSG~848(w9 zm=+lZ1_mam7>Js{%)k)9#J~VDUmj{N$V?S9^B%A=FvP(Ofw~E#Ux$H#ffK}lVh45x z1_MS023Dwkkbgn`bj>SCEmEk=FD+8YOUzBRQec3HBr4>U<|d^UDQK7)=o%UrXo6&l zit>xB6#O6(xuwM=3Q4I75P3Z=hVay!<ow)J9R&t1s3FBAiA5y}nRzLx6$%=LaAUw$ zrskz!$av<JCFW$NC=?~;rKjp~F$9<9D&(g@xK;{apX>mUFaG@h|Nq5j1_p*5pzwuo zL1K%I7#J9ue;C!MH2+Acm+w5d!<&JD0W6QC5v20b)7Jt!K!F671QUmMrZ6xt82<14 z;n2yl7ZgeEk3PQu*|#GcW(rv0;$w^q3_FTZ#ZECYFf0T~H2+|%@djD%)-4MXZ2rwy zW8M5arQXc)M!k{Y$<E`<JbOXzbho@;&-D6JC+|6sadTnDEd+7F_JE1QJ9=R<5dMCU zi@;19t`hDJcK62rAk#|U9AjrV%)p?Rl30?+pqEr!%%E42T2aEFSDaB?QdE+d#GqGP znG2zz{G!wxh#HWQ*fCPlVqjtT_#asnYEA{^8RQfU;xjYYA!}e@Wbk5OU;xD#M3|8w zl!1W(6b&$bJOcv*D9&K~Yz79f8W<lG>Y&(w@f#Qz7(ik$em4UH11P{?{OJq~44|Ne z@#jMrP?CvZB?AKkDEJ@(ObnYCkn<-K11Q;mVihKTgn@wp6ss`)IR*v>P=vwwcNrKM z^dTH@PJ6|`z~F<#|H{C?5QD@A6(Y$<d@e=?hEgQH2qOan$WDk5GlMK61H&Z<2W-A3 zBLl-HB)&N#0|OI0(wG?>85tPZk@x|O3=Gmpd~Ud21_n_1B7(-3L*r|s@lDbAH&FP@ z3=AcS#o0!BiN(1LMX8A?@tJug3<X7*c_m1!;*z4wymW|saz<hiR6$-2LqSn~Zb3;r zsAPh(OLG}gK?PBKZgDz8Ii$=1v-48Rb29T%VG6;84~&zVm%;!pRpP;V8H!7D!Fo!I zQ;Q(RLs+G`42eZWiIogs-SOa}iy<`+<nENz3aAmqrMV2biJ5tD+jH{s3mA$s^2?#7 zr)B2k#6!#hGa>S&x$$5pfGr0LrDPTt<Rn(cgAB}slzmVo;IIOF8_WWQN<3H#$Sq(Y zuq31oVuaQcOp1^=1o1^d^@$<_gA|CCXJ7!;A&krn3<jV&f{B3v6mKB)Rv<nz1A{$C zogxE+3y4-`VDJTrGchm(f%u9H44^#6q|CsO2@+>!U?>C8ObiUwP<c>3WRhoKXa$Kg zGca_4XeI`ReyIEu5G~KZFcT!s%)l@YO0R>`$D#BUD18$|GchpS1L;#_V0aATGcz!N w%3~%428OpFab*SuP$dBJ?+*}Pk%8eah*oA`U}j`s0Qr{#lpmBB7(}6b0FwBaWdHyG diff --git a/Worksheet_1/src/task3.asm b/Worksheet_1/src/task3.asm index 8846cb9..ed42fcc 100644 --- a/Worksheet_1/src/task3.asm +++ b/Worksheet_1/src/task3.asm @@ -16,9 +16,9 @@ section .bss total resd 1 ; Store the sum of the array elements section .text - global main + global _asm_main -main: +_asm_main: ; Prompt user for array size mov eax, prompt_size call print_string @@ -93,6 +93,7 @@ sum_loop: inc edi loop sum_loop mov [total], eax - ret + ret +section .note.GNU-stack noalloc noexec nowrite progbits diff --git a/Worksheet_1/src/task3.o b/Worksheet_1/src/task3.o deleted file mode 100644 index 82d98d4c2bf567bc1b89f1f5b354fa9ad290bb0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1728 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpHi7+An8QVEcmAj}Na*ucoZPzGg#D4412 z3=9k$3=9k~bqq`l3=2RSL5dg{;I{KHFo5031{DXXyANYCFfa%}*+R%>F)%PZU}9h} zgUW#@n9(u}3?L&wLSU@G%)oGfk%0kZzBtrgkeMpz=CLp^+y?7_5HRy}7#J8hAwppC z04v17APVF+kbgn`bj>SCEmFuU%}q)zDpt_Q&r4NEs#M6&OVzYeV1P&#XI7;u<fkc= zWTYx278NB{S}8F2CRSwTmgXvyCFYc-Dr6RegfjEcg@Q|SK^hZtav%zeAu74RE`ks{ zWEmJ3Ui|t0|38>mJb{scp_>;(8vfq_QUVqR6P+x3K?3fNp1%kLX=-L*VAx>}Vu7?T zoWh7~&<-!S#0*r4Sh&O-6p6zSYxjffSO_9I4|g8whS+I&qmHTbu;qnXrp`m|k6v}k zf-LJ41(}Sj&F}y-M7{f?Z;L^uA7)_COGzwAWY9}0E@sdxNv$Yh&@0X;E-5NWOk&V0 zuFQqdP<~Nr4nz&edh8e$zaUu_hL8V2Gz_EW98el&f=PjCW(H;kNIn8{!3n~Vfq?-O z1rQNN244mS22hy7_@N9844|Nd@j;;n!Z3a+0|P?|gabA&7tRJTm>7x~7#KjY3F3iL zcm)Fk11Rud{00UF22e1<_#F%k44{yM@h3AdFo5y~gwM<{kAZ=q8^QtSgw+fT4D*rr zTNxM_)*$gg(YXnUe}sX7;Sdu45(5Lnc_cnJoDIptB4~U$G`=<(zYm4a%)n5RSe$LF zmsp(3P?VaO5}%n@!cb6@nOB0uDlRF?%u9y~=jAXI6y@g@l*EJc8jJ(VgbcZf74f;n z=?uA<d0@J@G#5<grIzPp=A|+~bikFCCFX#Yg6NX`5)dyjGmjxHGbaaXcv@y&N<7$9 zuy|fdd`^CT0Yh>|YI1gbZe|`s9w@~oC*~xV<|LM+#uu07GJq@vs{;EJlpYzGAmtR3 zBm)B|{FuZcVaLeKz#s-n70i${22!U4D(55_7}P<uI0J(oR322$gXCR7;*yXw2h#5k z;!7|vgn(!%28KwGdL{;jI1pcwfgu^hXJ%l?0P!Ul7(nTdNs57?2qezLz)%hnmt<h5 w0r8m`7#cx*2?mBX5G}>P&<hox4y6}C>FrP&ROEo%0ZKO@8kAl@^ew170DbErD*ylh diff --git a/Worksheet_1/src/task1 b/Worksheet_1/task1 similarity index 68% rename from Worksheet_1/src/task1 rename to Worksheet_1/task1 index 88a523743d9b9167a35ac9ede884eca3220a38f2..1d221cc992064e61813f168e01cd3336c813737b 100644 GIT binary patch delta 1434 zcmaD+Hlb{Sf^df!0~nYvC@^p{XfVh!$V@a|%6UPLf#HH31H*-h55+le=rJ(duw!7j zF`1FETo5j0$G~8~$iQGQxsy>}#QuM-6yNf%o!8~wpRs?&pfNdcLc!!Sj0J**VB;Z# z5Ca2)(qvzzMA7*8<ch@jw9LH3oXo0JhJvEZyppuZhna5rfo$bqU|_gn$G`xhf7nB4 z76%CZ#-4$JjfsKb1Bhl}VE6)}Ss57qfM_-bh9~w64D5^y3@<=5^JYOIF`h{R++64N z85p{oWf&M3CW{K#8b~lOFr-a@xQc<n@NHb@!{#R+0z!gbfMgmEXXrC9WHDqh1cv?J ztN_x~B%oSvtk1yE+hxPRz|h+SA}vpp$aXi0FfcH*9w-qG?R?t&MkMh6h2|pyClBlO zmZ&it?%kpWvg5@P1_p-4L!b2+7(zRr1|yr%{DwvIMCajyFXRvYW@5Z?@kfbB_aqgN zk(Wxin%{5)1pdF&d_<r-_Rq=s!+KEjCVb|X`wcSbMezUs{~Hg_)?;93e#6qR8{{g6 zQuXd;kS|&fln6Gz;rYK=hk=3N#mj&H|2H2IcwzYe|NmpnAcc$|Lm>_YnfEgM|NsBp zA}WW|CQMk!;lRMa%*x}yz_3`rfq^05g(?HX<fVc_j7pPt2rBS0f-U6uU&_%t!C>-J zK_$-1x(p1>M>wJnZx$4K&%61*{6)UWH}q5lLD4DAz`(%5z`!5{iq^@z`u2=BCj08! zbMi1SF#P`iKc8{(RDEwDPznPD76_XOFfh0YOunZtCJf?&;+~6vfdLfMpvbT?u$)|C zkRmAJz`(%B0KyUsp<u&b8ptzVn9OM??YNbJfdS+TkbVXRafV$C3=AOu!1((a7#Kia zgYl0+7+{ix;p6}FlT!`l8E;Q+HI%P^$pFa!AW23BQHD<-vp~rLB)}lZz{<$LaKj$V zVPIqsV~_?p3c_UorFjb^K1f>#BLl+(0Z5<-G4V0%2FW`>G$=5LGh~7I5H3i6Jwr7k z0|UsjATa?3afT*F28KU^ARYsQ5EDN`2O|SRC!Ej6Fb~N9B?bnDoghBc0+9Y=AU;Gp z1IR&F85tNrfeaE7WD;k11mY_|94N?8FTn5-<YK4=0t|c%zZn@AB;W>0Fzjb!U`P;P zU;rgGAqGAM1||jukjbEE7i17%U}r-1fCR%gMh1pef(#6@3=9k)^}<XH49B77gF-}; ziGks?AOnLQNM413kHG}V0FVnEKo)?U3$ceGYO<^GHkRU|Wc|&*jps2<USwvy`GHvr zBcs^nREuy%R!};;F!`XRGApQHxia~nrT8Q(9#&AIyD?eNN|_TBe>e0Q7&Io^TFL7& zfc$0vPjO(2Kz;!+-homU0|NsyC`CFjFo;avXeBQC8JrFo7z{v4Kr#jl3~H0_S}Akd n7%(t=U}9j9p3G@2&#Gh0z>qLm*IHSk$CQEL4^%aXg2f2{yE`g3 delta 1506 zcmbPG_M&Wpg76MA1~4#TP+;I@&|r{bkez6}l=Frj1H%nF28J6GABuB6&|_eDV8_7l zU@{|PxgcE1j)6ggk%2*Dawns{NT9=d_89$b@o&~H`7(8@2A9<xO|{8q7z+fIz{W!e zAqEBp&B?w@iJ}EXnRz8?4Ds>F6^Zd_nR$shnN_Ki4>R5L1KG;Kz`$_Fj)4J0zp;nV zJPr{0fjt8Q8xsS=6A;b9!0-Y@vobJz0MTp=3=9qo4D5^y3@jj;d9$F97|$dDZm!q* z3=G}PU;h99KUq}3*5Jec|Nqk_KwQPZVE8t!^I`Lo4*?-TFC-Wk7#a_^=rb^6F=R0W zhW+3C1Ei@*K(*dqpMjybOM`)dp|=S{TAnD8?QVMW|NsBi10}+toll$Jhy?z>(0oMT z<l){DHHHa?d$*{8?0B&RWauG&eFlcm&Zoi1W;DNH(LB+4_}~lqgTI*=Z(RIQBGNtS z56H+%C0xyKI06FyUur%g&>j2dWIfEdv<aX2<$i-qdJ+8p|Nq9r+w~Y2n%}TA>;}1t zp;W!Q8RWm#10{mZZ+QN126^el%YXm>Hy;srVfg?5|6|P{g^VCWAr1wZ_cHwd|Nq@0 zDu>f1Ojs!3z`(%FD&oMvuvo%@fg#|9Dg(phrGi3?c9VAqD)7pJE#&xL%F#PPWb#u% zCC>M{3=GXjIHC`478H8VyZOKTMZQTa9Fs5TsR)8%RGNW-frWvAK?)SJlUeoc8NW<+ z)wkyaiT(cnKc8W8ufF#r79PJ<f}j9{q&EnQfx%3Gfx%4x!UH7(E(Qh$5eS#T-Pzen zLBl0ADKjxo!O%$0NY6mm&_ol;oGff$IoaDFRZzx(fq{_$ge4h5!EQKcAkTPX@<Rh@ z$BhgO3?TnPOq5{Q1~T3O!ed~NVA##TzyJyah=>HkAqWFZvM_x7e|oa5p*-XD$+3p= z^-mcPPG@8gWq8NHz`&ybR?5J@AjrVT$iVQ$9>Qm25N8kvISRsM0Obx7BtA%603!p# z1OZ6c2{G|8Y-eO(;DEYKfkA>H4N1Ka14BJSIU@rD$g?0b1sEh4>KGXq{y@W2h>4$} zg^_`w6VB&jn1y5jD64KovH+z25RyE|K^GYr7(j6VGGCBMg5e%0t0_PnD9BJR!0;C2 zVyFcI415gV85tN9pe`0*kYw1+$iR>wz`&rxz`!8Hz{l_hWC7d&0S0C!WDiI(d}3r^ z03`}psCs@T28QEM^Fbk^%EZ8MT9AQ34<xU`z{g;KWB|y8HcTM5LNLe&VUuNzw{5;| zJdcSzJ-<Y+Ag5$<v6=1WwPx*%jN+S3Ey5XDK`Hje<cXHbte{fp&g6-f;*&2}@~}b* z!H1U0oS;(Zfj$F+$YfqCdEGDe3=CgDJcun|5|pw*_#-&gF)%PQKw^$#vZ0l@=ywp0 z0U`>DE*S#`2A0W=2Ew9$pz004rZ6yoWLzh=S}Aj;7%(t=0C{fmMk{&N5Mu_0n8{bI SlqEKpGBB`$LJ_J1#smNqZ%z#W diff --git a/Worksheet_1/src/task1.o b/Worksheet_1/task1.o similarity index 66% rename from Worksheet_1/src/task1.o rename to Worksheet_1/task1.o index 0fdf34bad3608b40d06e60add49bf528077429b4..6a7a4269940ae6b09753eee291b9fb071e4a0b8d 100644 GIT binary patch delta 108 zcmZo*Yhc^p!pLa4*_Dx-F_fPH889-4FfcH%z=aqYBpDbOIFR@Xa5e*j00RSqHVU7K SfuXo4S%30EChN%$m=pl6Y6!;w delta 108 zcmZo*Yhc^p!pLa2*_Dx-F_4=9889*kFfcH%z=aqYL>U+uIFR@<a5e*2tvU*yiGgAA QQYP!kJWL#upD@V)0HNmx;Q#;t diff --git a/Worksheet_1/src/task2 b/Worksheet_1/task2 similarity index 51% rename from Worksheet_1/src/task2 rename to Worksheet_1/task2 index 46d2d578c808f6fe51cb84355814143a0094b4c5..c49fc7e86669300ab26b842fa868822260757a24 100644 GIT binary patch delta 4314 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 delta 3967 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 DGsonu diff --git a/Worksheet_1/task2.o b/Worksheet_1/task2.o new file mode 100644 index 0000000000000000000000000000000000000000..729f3797fae73c0f128fb7d0fcc4863424f71882 GIT binary patch literal 2256 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpHi8CbzAQVEcmAj}NaxPg&@VGWcGqF6u# z0|Ns)0|NsG0|Nt0T>=vW!zGYLs60#^4+8_(oorBXkUDuJbplXvA*ebim!Sb>FjN4h zMG47HkQ7Lr8;AkLFm*Z%3=B+AF%WfunSlXhH^|)z3=9k)_krvNg%`3_25bxr=`cf( z++@SRz`zMI2#Oc5GcXu1GBAMr1=0^P4-_6yX$IH4lGGxF%KXwIg}lVvR4WCjNTNbs zX>L+#k%ES)fv%x}fhI_%s3^b4O2H2zky~0^qL7rT0Fl?@VhB&oNzTtr)lp#Jf*Mj> zl2}xtkeQc~TA`p}2sZ|7WoljuhKy%kSz=CRib7FhUV5q?7ejDqu0nnqglh!~4F-lC zAcw#B^Z)<<7oQmz7<Pc-1HuJ~EjD6cU}*kfRHM@TBc)!x^WY9|1_lPOJd#F`%12LM z3+w;|K3Eb=9NwA2z`$Vmzw?JfC(B+l1_lQAN1tDS?As9zGX<=0@i9gQh8@MIVy74x z7#4ygntw3Xc!R8W>y`xxHveX<v2OmIQg3E?qu$8yWan{ap1mM<x?A3_XL|jqllL6R zxVbRn7J|57d%(ou9lbCa2!B7wMPQ~4R|$6qyL;n*kZGlFj<GWwW?;}uNi0cZ&`T;V zX3#51ttes8%gZlG)pPd?)h#YbOwMM|E6yk`DJn@!V$dtD%!SZUeo<-;L=VUc>=-G@ zF|aUv{Ew^(HK&8}9CFGA@j)pNp@W%$g~18I1*c*^1_lODoI->d86p`N7(mek<0msP zFo5C|#?NP9U<ie9!1~J>7#KjY1rcIoXklPr0L2uH-_O9n018kTe>MXH11RWW{KXIk zlw@L9%fP?@3SNi+6T>zJ1_n^lfbsV*Fff2(9mYSwz`y{Cbr}B=0|NsnLSg)83=9nV z5DvJ603~7{B>q1J28I|UJ|`ms1IW)1A!Y_)Mh1pb2nVcRmXU$s2ohh7k%0kZCq#&u z!HAK8;S+=dR`0;bz`z8LL}msrMg|6UBz`0#1A{aYpC7K5fdNzwNucpT<s3{1B#-bL zM7<?Uk^#cMgTiNKU??t1)-Opc&Nk9ZEY4*pN=;0O&&(@fC@9LzD?wrvmlS2@r9<SC zGZKrS3i5Io3X1Y`3rgZar5BuCn#+(1Dy-sji_;m(A>|U7otIjklbM$aQwT1gV4T#v z6b5j~6A#wQP+Xb|)>B%XS_Cm3!Ya*WNGvK!tYiS|jt3WS45@h_cc-LQK#eFa&1HyB zEY6M3P0Y-LJ0T}Ozks1QBflJKMOtP~PCUdgFcTtQni~&x2iOH*p_I(xf}F(4c#x@? zkU|ow1RP*szk^wzpos@-0XYaP1eSz{Iw)!xnIQE6lM*COKzvb9J*33IAO)fo7#QS1 zxrv#9!2m=vF))~d#FZErtU!Eb1_pa5-vvagFfjOn#F-cvf<SyFNFHQTVPMDvi8C`W zl!0g_28L>=d;^G9U|?tki8C`Wbb)9l1_n_61i5PpRDLE%oSA`P9+X}OrH@1DD^U6- zh-PA7xChdw#K7<v#Ajw;0F~cNiVO^ILE<V5450i5^6w82Ux|U?FNjuQU|?osU|?is PVBi4d4`l`hQ79h(<vgRH literal 0 HcmV?d00001 diff --git a/Worksheet_1/src/task3 b/Worksheet_1/task3 similarity index 53% rename from Worksheet_1/src/task3 rename to Worksheet_1/task3 index 875aa5b4cd87366df0cf448446624b48bddae443..ea2533f331c34a404d87e47704b91fd2fcfdf2fb 100644 GIT binary patch delta 4148 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 FVF39r4+{VQ delta 3758 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 R#Bn<YaD@rg1gh%5OaK$HtCau% diff --git a/Worksheet_1/task3.o b/Worksheet_1/task3.o new file mode 100644 index 0000000000000000000000000000000000000000..7dfc7551e6fa30642e85cea7eb702e6b5a6c007e GIT binary patch literal 1824 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpHi8CbzAQVEcmAj}NaxPg&@p$y6fQ7j;W zfq{XYfq{X8fq?<0&VY%5VF5@ZR34^|hk*g?PBy4GNZoxX8$=0!2nGfQA*ebimq7q# zFjN3$v=Wk?ASsYKHxL7gVd``k7#NtKVjwDknStQ~BgEYj3=9k)_krvNg%`3_2CNJW zPe2-=7-pUg0|NsmR18EZfIP&=zyP8^`a$M_!UH4+!mfEGsYMETrMXF|Ma2pl`FW`d zNtFuud8wLK3Jeg*;>@a4h5R&yl8jV^#G<0aN-G5h-^7Z{+|pcyvc#OyRE5l9kWgkG zx=?UwE=XfyP7Xw2F+?R7$YLnoA<MwP@Z!(^|Np_n;t7ll4BfmS((wNdkQ%TsnCN8L z3leaD^!!C2NK-Qd1H%q;5DTPz;S@$>gLZhqC1#*X#KI-!phz5sSi2u&$3hU%dARdX zH^ffM8+A;bhb=GEGIbtufAp$T7GzncD9B`FZH5P!A?n>9eOnAN{V)TAUP@v~B7<I1 zaWR8lNoqw2gI->KNvfW^U#M<zNn&y~gI;k)aY<20ViJR1ab+%qhVqM2b0B&^&cTjh z@eYz@VfgqTM8hy@&I9EE<dg>DgHi-cHHgo`V1eL*Q@Sey0|O|EAi|6cppXZJIgB64 zz`y_sY8XF}fq?-O!Z3a&0|P?|gabCO5Y7fMm>9|#7#KjY4dQ`vLJb2011NA|{1yfV z22e1=_&p2^44{yO@#iowFvvhS;2gJ{fq|hLiNA$`fnh!pe;)$_!x|+12?hp+O-TH+ z3=9m1kodP57#PkY@%iCw1_n^R1m#hf5Qq=T_sD#G7>5C(ei90wnSr6WC|SQGu{hgU zFR?h6p(r&mB|bB+grT4)Gp_`RRa{b(nU@X~&dXsaD9X<*D2WH>M;Hf`Q5kX*E8=sD z(;0Fz^T2d*X)c(~OD)gI%u8i}=zuFNOUwZ)1<@t>C5br<@rlK`@wthac?@ZpIXO@p z(lYZ>;=x9P#q(0)bMo^G7?Lwmle6P<GxHeoKuJ3}F(<h+C$S_ozPL1(0c0~+6_S_1 zWh^5Tq&#AhVqo9~m46bDuwi6oU=RbP5@tx61E~XrCrF(-RGl7F9#oHj<U#2ZBo9i1 zApQOzb&?DWAs||sfdQ00LF(c_d?^NoWT^fO5MPpkAs0kTGcXi^#F-et=@DceC>?^# rYXr$lGBC7(XlVw9UXVIw28QWSdJ&Y~4y8dw6iD9@DE|_az6GTL9pfpx literal 0 HcmV?d00001 -- GitLab