Napisać w asemblerze NASM program czterodziałaniowego kalkulatora w systemie sześćdziesiątkowym.
Program wywoływany jest z dwoma lub trzema argumentami. Pierwszy argument określa działanie do wykonania: + dodawanie, - odejmowanie, * mnożenie, / odwrotność. Drugi i ewentualny trzeci argument to dodatnie liczby sześćdziesiątkowe, na których wykonane ma być obliczenie. Trzeci argument nie występuje, gdy żądamy obliczenia odwrotności. Przy odejmowaniu argumenty mają takie wartości, że wynik zawsze jest liczbą dodatnią. Cyfry liczby sześćdziesiątkowej zapisywane są jako liczby dziesiętne od 1 do 59. Sześćdziesiątkowa cyfra zero nie jest zapisywana. Część całkowita liczby od jej części ułamkowej oddzielana jest kropką, a pozostałe cyfry oddzielane są przecinkami. Jeśli liczba nie zawiera części ułamkowej, to kropka w jej zapisie nie występuje. Jeśli liczba jest jednocyfrowa, to przecinek nie musi wystąpić w jej zapisie. Zapis liczby nie zawiera żadnych dodatkowych separatorów. Program wykonuje zadane obliczenie, wypisuje wynik na standardowe wyjście jako liczbę sześćdziesiątkową i kończy działanie. Jeśli w argumentach wejściowych wystąpi błąd, to program wypisuje na standardowy strumień błędów komunikat ERROR i kończy działanie.
Program powinien być napisany całkowicie w asemblerze NASM i nie może korzystać z żadnych bibliotek. W zależności od przyjętej reprezentacji liczb minimalna i/lub maksymalna liczba cyfr lub liczba cyfr znaczących obsługiwanych przez program powinny być konfigurowalne jako łatwe do zmiany stałe w kodzie programu. Wynik powinien być odpowiednio zaokrąglony, gdy nie mieści się w założonej reprezentacji. Nie należy przesadzać z obsługą błędów. Wystarczy reagować na błędy, które mogą doprowadzić do naruszenia ochrony pamięci.
Program będzie oceniany w skali od 0 do 5 punktów. Przy ocenie będą brane pod uwagę: