Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication7.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
- //
- #include "pch.h"
- #include <iostream>
- #include <conio.h>
- using namespace std;
- void main()
- {
- setlocale(LC_ALL, "rus");
- int a, b, b2, c, D, p, x1, x2, x,D1;
- printf("Введите a ");
- scanf_s("%i", &a);
- printf("Введите b ");
- scanf_s("%i", &b);
- printf("Введите c ");
- scanf_s("%i", &c);
- _asm {
- mov eax, b //Возведение в b^2
- mov ebx, eax
- mov ecx, 1
- m1:
- mul ebx
- inc ecx
- cmp ecx, 2
- jb m1
- mov b2, eax //b2 это b^2
- mov ecx, a// вычисление 4*a*c
- mov edx, c
- imul ecx, edx
- imul ecx, 4
- mov p, ecx //p это 4*a*c
- sub eax, ecx //вычисление дискриминанта
- mov D, eax
- cmp D, 0
- je nol
- jg nenol
- nol :
- mov eax, b
- mov ebx, a
- imul eax, -1
- imul ebx, 2
- cdq
- idiv ebx
- mov x, eax
- nenol :
- finit //Вычисление корня
- fild D
- fsqrt
- fistp D1//
- mov eax, b //Вычисление x1
- mov ebx, a
- imul eax, -1
- imul ebx, 2
- add eax,D1
- cdq
- idiv ebx
- mov x1,eax //
- mov eax, b //Вычисление x2
- mov ebx, a
- imul eax, -1
- imul ebx, 2
- sub eax, D1
- cdq
- idiv ebx
- mov x2,eax //
- }
- printf("Дискриминант: %i\n", D);
- if (D == 0) {
- printf("x = %i", x);
- }
- if (D>0) {
- printf("x1 = %i\n", x1);
- printf("x2 = %i\n", x2);
- }
- if (D < 0) {
- printf("Дискриминант меньше нуля");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement