Advertisement
ifinox

Kalkulator

Nov 21st, 2018
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. program kalkulator;
  2. #include("stdlib.hhf");
  3. static
  4. var1: int32;
  5. var2: int32;
  6. var3: int32;
  7. res: int64;
  8. menuChoose: int8;
  9. negative: boolean := false;
  10.  
  11. begin kalkulator;
  12. menu:
  13. stdout.put("1. Dodaj dwie liczby",nl);
  14. stdout.put("2. Odejmij dwie liczby",nl);
  15. stdout.put("3. Pomnoz dwie liczby",nl);
  16. stdout.put("4. Podziel dwie liczby",nl);
  17. stdout.put("5. Potegowanie", nl);
  18. stdout.put("Wybor: ");
  19. stdin.get(menuChoose);
  20.  
  21. stdout.put("Podaj A: ");
  22. stdin.get(var1);
  23. stdout.put("Podaj B: ");
  24. stdin.get(var2);
  25.  
  26. if (menuChoose == 1) then
  27. mov(var1, eax);
  28. add(eax, var2);
  29. stdout.put("Wynik A+B: ", var2, nl);
  30.  
  31. elseif (menuChoose == 2) then
  32. mov(var2, eax);
  33. sub(eax, var1);
  34. stdout.put("Wynik A-B: ", var1, nl);
  35.  
  36. elseif (menuChoose == 3) then
  37. mov(var1, edx);
  38. mov(var2, eax);
  39. imul(edx, eax);
  40. mov(edx:eax, res);
  41. stdout.put("Wynik A*B: ", res, nl);
  42.  
  43. elseif (menuChoose == 4) then
  44. if (var2 == 0) then
  45. stdout.put("Nie mozna dzielic przez zero!",nl);
  46. jmp menu;
  47. endif;
  48.  
  49. mov(var1, eax);
  50. cdq();
  51. idiv(var2, edx:eax);
  52. mov(eax, var1);
  53. mov(edx, var2);
  54. stdout.put("Wynik A/B: ", var1, nl);
  55. stdout.put("Reszta: ", var2, nl);
  56.  
  57. elseif (menuChoose == 5) then
  58. if (var2 == 0) then
  59. stdout.put("Wynik A^B: 1",nl);
  60. jmp menu;
  61. endif;
  62. mov(var1, var3);
  63.  
  64. if (var2 < 0) then
  65. mov(true, negative);
  66. mov(var2, eax);
  67. sub(eax, var2);
  68. sub(eax, var2);
  69. endif;
  70.  
  71. repeat
  72. mov(var1, edx);
  73. mov(var3, eax);
  74. imul(edx, eax);
  75. mov(eax, var1);
  76. sub(1, var2);
  77. until (var2 == 1);
  78.  
  79. stdout.put("Wynik A^B: ");
  80. if (negative == true) then
  81. stdout.put("1/", var1, nl);
  82. else
  83. stdout.put(var1, nl);
  84. endif;
  85. mov(false, negative);
  86. endif;
  87. jmp menu;
  88. end kalkulator;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement