5. cvičení
Cílem následujících úkolu je procvičit práci s pamětí.
Úkoly
- Napište funkci
void swap(int *a, int *b), která prohodí hodnoty, které jsou dány ukazateliaab. - Napište funkci
void division(unsigned int x, unsigned int y, unsigned int *result, unsigned int *remainder), která celočíselně vydělí hodnotuxhodnotouya výsledek uloží na místo v paměti dané ukazatelemresulta zbytek po dělení uloží do paměti dané ukazatelemremainder. - Napište funkci
void countdown(int *values), která do daného polevaluesuloží posloupnost 10, 9, 8, ..., 1 (v tomto pořadí). - Napište funkci
void nasobky(short *multiples, short n), která do polemultiplesuloží prvních deset násobků číslan. - Napište funkci
int minimum(int count, int *values), která vrací nejmenší prvek polevaluesobsahujícícounthodnot. Vyzkoušejte, že funkce funguje správně pro kladná i záporná čísla. - Napište funkci
unsigned int my_strlen(char *s), která se bude chovat jako funkcestrlenze standardní knihovny jazyka C. - Napište funkci
void my_strcat(char *dest, char *src), která se bude chovat jako funkcestrcatze 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í.