Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program kalkulator;
- #include("stdlib.hhf");
- static
- var1: int32;
- var2: int32;
- var3: int32;
- res: int64;
- menuChoose: int8;
- negative: boolean := false;
- begin kalkulator;
- menu:
- stdout.put("1. Dodaj dwie liczby",nl);
- stdout.put("2. Odejmij dwie liczby",nl);
- stdout.put("3. Pomnoz dwie liczby",nl);
- stdout.put("4. Podziel dwie liczby",nl);
- stdout.put("5. Potegowanie", nl);
- stdout.put("Wybor: ");
- stdin.get(menuChoose);
- stdout.put("Podaj A: ");
- stdin.get(var1);
- stdout.put("Podaj B: ");
- stdin.get(var2);
- if (menuChoose == 1) then
- mov(var1, eax);
- add(eax, var2);
- stdout.put("Wynik A+B: ", var2, nl);
- elseif (menuChoose == 2) then
- mov(var2, eax);
- sub(eax, var1);
- stdout.put("Wynik A-B: ", var1, nl);
- elseif (menuChoose == 3) then
- mov(var1, edx);
- mov(var2, eax);
- imul(edx, eax);
- mov(edx:eax, res);
- stdout.put("Wynik A*B: ", res, nl);
- elseif (menuChoose == 4) then
- if (var2 == 0) then
- stdout.put("Nie mozna dzielic przez zero!",nl);
- jmp menu;
- endif;
- mov(var1, eax);
- cdq();
- idiv(var2, edx:eax);
- mov(eax, var1);
- mov(edx, var2);
- stdout.put("Wynik A/B: ", var1, nl);
- stdout.put("Reszta: ", var2, nl);
- elseif (menuChoose == 5) then
- if (var2 == 0) then
- stdout.put("Wynik A^B: 1",nl);
- jmp menu;
- endif;
- mov(var1, var3);
- if (var2 < 0) then
- mov(true, negative);
- mov(var2, eax);
- sub(eax, var2);
- sub(eax, var2);
- endif;
- repeat
- mov(var1, edx);
- mov(var3, eax);
- imul(edx, eax);
- mov(eax, var1);
- sub(1, var2);
- until (var2 == 1);
- stdout.put("Wynik A^B: ");
- if (negative == true) then
- stdout.put("1/", var1, nl);
- else
- stdout.put(var1, nl);
- endif;
- mov(false, negative);
- endif;
- jmp menu;
- end kalkulator;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement