1. U asembleru, implementirati funkciju void min_max(short *a, unsigned n, short *min, short *max); koja racuna najmanji i najveci element niza a koji sadrzi n elemenata tipa short. Najmanji element funkcija upisuje na adresu min, a najveci element na adresu max. Moze se pretpostaviti da ce uneti broj elemenata n biti veci ili jednak 1. Zatim, napisati i C program koji testira ovu funkciju. 2. U asembleru, implementirati funkciju void flip(long *a, unsigned n); koja obrce redosled elemenata u nizu a koji sadrzi n elemenata tipa long. Zatim, napisati i C program koji testira ovu funkciju. 3. U asembleru, implementirati funkciju int linear_search(unsigned *a, unsigned n, unsigned x); koja, algoritmom linearne pretrage, trazi neoznacen ceo broj x u nizu a neoznacenih celih brojeva sa n elemenata. - Ukoliko funkcija utrvrdi da u nizu a postoji broj x, i to sa indeksom i, funkcija vraca indeks i (indeksiranje elemenata, standardno, pocinje nulom). - Ukoliko funkcija utvrdi da se broj x ne nalazi u nizu a, ona vraca -1. Zatim, napisati i C program koji testira ovu funkciju. 4. U asembleru, implementirati funkciju int binary_search(unsigned *a, unsigned n, unsigned x); koja, algoritmom binarne pretrage, trazi neoznacen ceo broj x u nizu a neoznacenih celih brojeva sa n elemenata. - Ukoliko funkcija utrvrdi da u nizu a postoji broj x, i to sa indeksom i, funkcija vraca indeks i (indeksiranje elemenata, standardno, pocinje nulom). - Ukoliko funkcija utvrdi da se broj x ne nalazi u nizu a, ona vraca -1. Zatim, napisati i C program koji testira ovu funkciju. 5. Funkcije iz prethodnih zadataka modifikovati tako da rade sa nizovima elemenata drugih tipova (na primer, ako je funkcija radila nad nizom elemenata tipa short, modifikovati je tako da radi sa elementima tipa int ili long).