Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main()
- {
- int inf = 0; //true, если бесконечно много решений
- int no = 0; //true, если решений нет
- int a, b; //коэффициенты
- int k = -1; //для умножения на -1
- int result, reminder; //частное и остаток
- cout << "Type a" << endl;
- cin >> a;
- cout << "Type b" << endl;
- cin >> b;
- cout << "Your expression: " << a << "x+" << b << "=0" << endl << "Solving..." << 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 << "Answer: Z" << endl;
- else if (no)
- cout << "Answer: no solutions" << endl;
- else
- cout << "Answer: " << result << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement