Zadania z terminu zerowego
1. Napisać funkcję asemblerową:
int asm_main(int pierwszy, int drugi)
która sprawdzi, czy oba parametry funkcji są tego samego znaku. Jeżeli pierwszy i drugi są jednocześnie dodatnie lub jednocześnie ujemne funkcja powinna zwrócić wartość 1. Jeżeli pierwszy i drugi mają przeciwne znaki (na przykład pierwszy jest dodatni a drugi ujemny) to funkcja powinna zwrócić 0. Dla ułatwienia zakładamy, że pierwszy i drugi nie będą przyjmowały wartości 0.
2. Napisać funkcję asemblerową:
unsigned int asm_main()
która zwróci liczbę, odpowiadającą tablicy znaków cyfry. Zakładamy – do wyboru – że w tablicy tej znajduje się ile znaków, lub że ciąg cyfr kończy się bajtem o wartości 0. Jeżeli przykładowo cyfry[] = „901” to tablica ta zawiera w praktyce bajty o wartościach 57, 48, 49, 0. Tym samym aby obliczyć liczbę odpowiadającą tej tablicy należy systematycznie pobierać bajty z tablicy, odejmować od nich 48 i tę różnicę dodawać do uprzedniego pośredniego wyniku pomnożonego przez 10, tak aby ostatecznie otrzymać wynik o wartości 901.
(rozwiązanie by R.Radzisz)
3. Napisać funkcję asemblerową:
int asm_main()
która sprawdzi, ile zer kończy binarną reprezentację zmiennej liczba. Jeżeli przykładowo liczba = 96 to jej binarna reprezentacja ma postać:
0000000001100000
Ponieważ liczba ta ma na końcu 5 zer, funkcja powinna zwrócić wartość 5.