From 738149efe363636b16762d1d8511d6820c632805 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 01:05:04 +0000
Subject: [PATCH] Update file README_2.md

---
 Worksheet_1/README_2.md | 136 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 136 insertions(+)
 create mode 100644 Worksheet_1/README_2.md

diff --git a/Worksheet_1/README_2.md b/Worksheet_1/README_2.md
new file mode 100644
index 0000000..82e7c38
--- /dev/null
+++ b/Worksheet_1/README_2.md
@@ -0,0 +1,136 @@
+
+# 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.
-- 
GitLab