From 621bad52a05a294592d9ae20647fb7ec2cdf4cd6 Mon Sep 17 00:00:00 2001
From: Lazar Cristian-Stefan <lazar.cristian.stefan243@gmail.com>
Date: Sun, 12 May 2024 22:47:59 +0300
Subject: [PATCH] Added story for task 3

---
 README.md             | 12 +++++-------
 src/task-3/task_3.asm |  3 ++-
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index 356c090..e2a51f6 100644
--- a/README.md
+++ b/README.md
@@ -92,11 +92,9 @@ binary_search(int32_t *buff, uint32_t needle, uint32_t start, uint32_t end);
 
 ## Task 3 - Depth first search
 
-În acest task veți implementa un algoritm cunoscut de la SDA de cautare pe grafuri, depth first search.
+Pentru ca Zoly să verifice că drumul pe care e transmis un pachet este legitim, se va realiza o cautare in topologia rețelei. Protocolul de comunicație garantează trimiterea pachetelor folosind algoritmul de căutare în adâncime. Astfel, știind sursa pachetului, putem găsi calea legitimă către toate celelalte gazde din rețea.
 
-*Note:* implementarea trebuie să fie recursivă, NU iterativă.
-
-Pentru acest task aveți de implementat funcția `dfs()` în fișierul `dfs.asm`.
+În acest task veți implementa algoritmul cunoscut de la SDA de cautare pe grafuri, depth first search.
 
 ### Algoritmul dfs
 
@@ -117,7 +115,7 @@ Dacă nodul sursă este 1, atunci o posibilă cautare dfs ar fi urmatoarea:
 * Nodul 3 nu mai are vecini, ne ĂŽntoarcem la nodul 1.
 * Nodul 1 nu mai are vecini, se Încheie căutarea.
 
-Dfs-ul poate avea mai multe căutari valide, în funcție de ordinea în care alegem să vizităm vecinii. În cazul nostru, Celelalte posibilități de căutare ar fi {1, 3, 2, 4} și {1, 3, 4, 2}.
+Dfs-ul poate avea mai multe căutari valide, în funcție de ordinea în care alegem să vizităm vecinii. În cazul nostru, celelalte posibilități de căutare ar fi {1, 3, 2, 4} și {1, 3, 4, 2}.
 
 ### API
 
@@ -133,7 +131,7 @@ Aceasta returnează **adresa** unei structuri care conține vecinii nodului în
 ```x86asm
 struc neighbours_t
     .num_neighs resd 1  ; Numărul de vecini.
-    .neighs resd 1      ; Vectorul cu `num_neighs` vecini.
+    .neighs resd 1      ; Adresa vectorul cu `num_neighs` vecini.
 endstruc
 ```
 
@@ -148,7 +146,7 @@ void dfs(uint32_t node, neighbours_t *(*expand)(uint32_t node));
 Aceasta primește ca parametru nodul sursă și adresa funcției `expand` și se cere să implementați algoritmul de dfs și să printați nodurile în momentul în care le viziați.
 
 Printarea se va realiza prin apelara funcției `printf`. Se depunctează folosirea macro-ului `PRINTF32`.
-
+Implementarea trebuie să fie recursivă, **NU** iterativă.
 
 ## Bonus
 
diff --git a/src/task-3/task_3.asm b/src/task-3/task_3.asm
index f0f6e2e..056dba8 100644
--- a/src/task-3/task_3.asm
+++ b/src/task-3/task_3.asm
@@ -1,9 +1,10 @@
+%include "../include/io.mac"
 
 ; The `expand` function returns an address to the following type of data
 ; structure.
 struc neighbours_t
     .num_neighs resd 1  ; The number of neighbours returned.
-    .neighs resd 1      ; Vector containing the `num_neighs` neighbours.
+    .neighs resd 1      ; Address of the vector containing the `num_neighs` neighbours.
                         ; A neighbour is represented by an unsigned int (dword).
 endstruc
 
-- 
GitLab