5. cvičení

Cílem následujících úkolu je procvičit práci s pamětí.

Úkoly

  1. Napište funkci void swap(int *a, int *b), která prohodí hodnoty, které jsou dány ukazateli a a b.
  2. Napište funkci void division(unsigned int x, unsigned int y, unsigned int *result, unsigned int *remainder), která celočíselně vydělí hodnotu x hodnotou y a výsledek uloží na místo v paměti dané ukazatelem result a zbytek po dělení uloží do paměti dané ukazatelem remainder.
  3. Napište funkci void countdown(int *values), která do daného pole values uloží posloupnost 10, 9, 8, ..., 1 (v tomto pořadí).
  4. Napište funkci void nasobky(short *multiples, short n), která do pole multiples uloží prvních deset násobků čísla n.
  5. Napište funkci int minimum(int count, int *values), která vrací nejmenší prvek pole values obsahující count hodnot. Vyzkoušejte, že funkce funguje správně pro kladná i záporná čísla.
  6. Napište funkci unsigned int my_strlen(char *s), která se bude chovat jako funkce strlen ze standardní knihovny jazyka C.
  7. Napište funkci void my_strcat(char *dest, char *src), která se bude chovat jako funkce strcat ze standardní knihovny jazyka C.

Všechny funkce naprogramujte v assembleru a voláním z jazyka C ověřte, že fungují dle očekávání.


Last update on 10. 3. 2025 16:22
Powered by Schemik.

© Petr Krajča, 2010, 2012
petr.krajca (at) upol.cz