Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Kompilacja: gcc kalk.c kalk.s -m32 -g -o Calc
- =================================================
- Plik s===========================================
- =================================================
- .section .text
- .globl suma
- suma:
- # prolog - nowa ramka stosu
- push %ebp
- movl %esp, %ebp
- # laduj a do st(0)
- fldl 8(%ebp)
- #laduj b do st(0), w st(1) jest b
- fldl 16(%ebp)
- # dodaj st(0) + st(1) -> st(0)
- faddp
- # wynik w st(0)
- # przywracamy stos
- mov %ebp, %esp
- pop %ebp
- # powrot
- ret
- .globl roznica
- roznica:
- push %ebp
- movl %esp, %ebp
- fldl 16(%ebp)
- fldl 8(%ebp)
- fsubp
- mov %ebp, %esp
- pop %ebp
- ret
- .globl mnozenie
- mnozenie:
- push %ebp
- movl %esp, %ebp
- fldl 16(%ebp)
- fldl 8(%ebp)
- fmulp
- mov %ebp, %esp
- pop %ebp
- ret
- .globl dzielenie
- dzielenie:
- push %ebp
- movl %esp, %ebp
- fldl 16(%ebp)
- fldl 8(%ebp)
- fdivp
- mov %ebp, %esp
- pop %ebp
- ret
- .globl pierwiastek
- pierwiastek:
- push %ebp
- movl %esp, %ebp
- fldl 8(%ebp)
- fsqrt
- mov %ebp, %esp
- pop %ebp
- ret
- .globl sinus
- sinus:
- push %ebp
- movl %esp, %ebp
- fldl 8(%ebp)
- fsin
- mov %ebp, %esp
- pop %ebp
- ret
- .globl cosinus
- cosinus:
- push %ebp
- movl %esp, %ebp
- fldl 8(%ebp)
- fcos
- mov %ebp, %esp
- pop %ebp
- ret
- .globl tangens
- tangens:
- push %ebp
- movl %esp, %ebp
- fldl 8(%ebp)
- fptan
- mov %ebp, %esp
- pop %ebp
- ret
- .globl round_num
- round_num:
- push %ebp
- movl %esp, %ebp
- fldl 8(%ebp)
- frndint
- mov %ebp, %esp
- pop %ebp
- ret
- =================================================
- Plik c===========================================
- =================================================
- #include <stdio.h>
- #include <stdlib.h>
- //Def funkcji
- double suma(double a, double b);
- double roznica(double a, double b);
- double mnozenie(double a, double b);
- double dzielenie(double a, double b);
- double pierwiastek(double a);
- double sinus(double a);
- double cosinus(double a);
- double tangens(double a);
- double round_num(double a);
- //Zmienne
- double a,b,wynik_suma, wynik_roznica, wynik_mnozenie, wynik_dzielenie, wynik_pierwiastek, wynik_sinus;
- int main() {
- int running = 1;
- int menu;
- while(running) {
- printf("===Menu===\n");
- printf("1) Dodawanie\n");
- printf("2) Odejmowanie\n");
- printf("3) Mnożenie\n");
- printf("4) Dzielenie\n");
- printf("5) Pierwiastkowanie\n");
- printf("6) Sinus liczby\n");
- printf("7) Cosinus liczby\n");
- printf("8) Tangens liczby\n");
- printf("9) Zaokgrąglenie liczby\n");
- printf("Twoj wybor: ");
- scanf("%d",&menu);
- switch(menu){
- case 1:
- printf("Podaj wartośc liczby A: ");
- scanf("%lf",&a);
- printf("Podaj wartośc liczby B: ");
- scanf("%lf",&b);
- printf(" %f + %f = %f\n",a,b,suma(b,a));
- break;
- case 2:
- printf("Podaj wartośc liczby A: ");
- scanf("%lf",&a);
- printf("Podaj wartośc liczby B: ");
- scanf("%lf",&b);
- printf(" %f - %f = %f\n",a,b,roznica(b,a));
- break;
- case 3:
- printf("Podaj wartośc liczby A: ");
- scanf("%lf",&a);
- printf("Podaj wartośc liczby B: ");
- scanf("%lf",&b);
- printf(" %f * %f = %f\n",a,b,mnozenie(b,a));
- break;
- case 4:
- printf("Podaj wartośc liczby A: ");
- scanf("%lf",&a);
- printf("Podaj wartośc liczby B: ");
- scanf("%lf",&b);
- printf(" %f / %f = %f\n",a,b,dzielenie(b,a));
- break;
- case 5:
- printf("Podaj wartośc liczby: ");
- scanf("%lf",&a);
- printf(" sqrt(%f) = %f\n",a,pierwiastek(b));
- break;
- case 6:
- printf("Podaj wartośc liczby: ");
- scanf("%lf",&a);
- printf(" sin(%f) = %f\n",a,sinus(b));
- break;
- case 7:
- printf("Podaj wartośc liczby: ");
- scanf("%lf",&a);
- printf(" cos(%f) = %f\n",a,cosinus(b));
- break;
- case 8:
- printf("Podaj wartośc liczby: ");
- scanf("%lf",&a);
- printf(" tan(%f) = %f\n",a,tangens(b));
- break;
- case 9:
- printf("Podaj wartośc liczby: ");
- scanf("%lf",&a);
- printf(" %f ~= %f\n",a,round_num(b));
- break;
- printf("Wpisz znak aby przejsc do menu:");
- scanf("%d",&menu);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement