Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main()
- {
- bool inf=0; //true, если бесконечно много решений
- bool no=0; //true, если решений нет
- int a,b; //коэффициенты
- int k=-1; //для умножения на -1
- int result,reminder; //частное и остаток
- cout<<"Введите a"<<endl;
- cin>>a;
- cout<<"Введите b"<<endl;
- cin>>b;
- cout<<"Ваше выражение: "<<a<<"x+"<<b<<"=0"<<endl<<"Решение..."<<endl;
- __asm
- {
- mov ebx,a
- mov eax,b
- //if "a=0 || a!=0"
- cmp ebx,0
- je aEQL0
- //"a!=0"
- //if "b=0 || b!=0"
- cmp eax,0
- je bEQL0
- //"b!=0"
- cwd //расширяем слово до двойного слова
- imul k //меняем знак b
- idiv a //делим на a
- //if "reminder==0 || reminder!=0"
- cmp edx,0
- je remEQL0
- //"reminder!=0"
- mov eax,1 //нет решений
- mov no,eax //
- jmp end_
- remEQL0:
- //"reminder==0"
- mov result,eax //заносим результат деления
- jmp end_
- bEQL0:
- //"b==0"
- mov result,0
- jmp end_
- //"a==0"
- aEQL0:
- //if "b=0 || b!=0"
- cmp eax,0
- je bEQL0_
- //"b!=0"
- mov eax,1 //нет решений
- mov no,eax //
- jmp end_
- bEQL0_:
- //"b==0"
- mov eax,1 //бесконечно много решений
- mov inf,eax //
- jmp end_
- end_:
- }
- if(inf)
- cout<<"Ответ: Z"<<endl;
- else if(no)
- cout<<"Ответ: нет решений"<<endl;
- else
- cout<<"Ответ: "<<result<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement