Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3 / Lab_3_Kalashnikov (1)

.doc
Скачиваний:
14
Добавлен:
26.10.2022
Размер:
22.53 Кб
Скачать

// ConsoleApplication2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.

//

#include "pch.h"

#include <iostream>

int main()

{

//Эти комментарии можете удалить и названия переменных поменяйте, чтобы не было одинаково.

short a;

short b;

short c;

short d;

std::cout << "Enter a num: ";

std::cin >> a;

std::cout << "Enter b num: ";

std::cin >> b;

std::cout << "Enter c num: ";

std::cin >> c;

std::cout << "Enter d num: ";

std::cin >> d;

//a + b

short sum = a + b;

short sumAsm;

std::cout << "Res a + b: " << sum << std::endl;

_asm {

mov ax, a

add ax, b

mov sumAsm, ax

}

std::cout << "Res a + b asm " << sumAsm << std::endl;

std::cout << " " << std::endl;

//a - b

short sub = a - b;

short subAsm;

std::cout << "Res a - b: " << sub << std::endl;

_asm {

mov ax, a

sub ax, b

mov subAsm, ax

}

std::cout << "Res a - b asm: " << subAsm << std::endl;

std::cout << " " << std::endl;

//d = a + b - c

short var1 = a + b - c;

short var1Asm;

std::cout << "Res a + b - c: " << var1 << std::endl;

_asm {

mov ax, a

add ax, b

sub ax, c

mov var1Asm , ax

}

std::cout << "Res a + b - c asm: " << var1Asm << std::endl;

std::cout << " " << std::endl;

//d=(a+b)*(c+a)

short var2 = (a + b)*(c + a);

short var2Asm;

std::cout << "Res d=(a+b)*(c+a): " << var2 << std::endl;

_asm {

mov ax, a

mov bx, c

add ax, b

add bx, a

mul bx

mov var2Asm, ax

}

std::cout << "Res d=(a+b)*(c+a) asm: " << var2Asm << std::endl;

std::cout << " " << std::endl;

//d=(a+b+c)*(c-a+b)

short var3 = (a + b + c)*(c - a + b);

short var3Asm;

std::cout << "Res d=(a+b+c)*(c-a+b): " << var3 << std::endl;

_asm {

mov ax, a

add ax, b

add ax, c

mov bx, c

sub bx,a

add bx, b

mul bx

mov var3Asm, ax

}

std::cout << "Res d=(a+b+c)*(c-a+b) asm: " << var3Asm << std::endl;

std::cout << " " << std::endl;

//d=(a+b)*c4

short var4 = (a + b)*pow(c, 4);

short var4Asm;

std::cout << "Res d=(a+b)*c4: " << var4 << std::endl;

_asm {

mov ax, c

mov bx, ax

mul bx

mul bx

mul bx

mov cx, a

add cx, b

mul cx

mov var4Asm, ax

}

std::cout << "Res d=(a+b)*c4 asm: " << var4Asm << std::endl;

std::cout << " " << std::endl;

//e=((a+b)*c-(d+c)*b)*a

short var5 = ((a + b)*c - (d + c)*b)*a;

short var5Asm;

std::cout << "Res ((a+b)*c-(d+c)*b)*a: " << var5 << std::endl;

_asm {

mov ax, a

add ax, b

mul c

mov bx, ax

mov ax, d

add ax, c

mul b

mov cx, ax

sub bx, cx

mov ax, bx

mul a

mov var5Asm, ax

}

std::cout << "Res e=((a+b)*c-(d+c)*b)*a: " << var5Asm << std::endl;

std::cout << " " << std::endl;

//e=(((a-c)*b+d)*a-c)*b

short var6 = (((a - c)*b + d)*a - c)*b;

short var6Asm;

std::cout << "Res (((a-c)*b+d)*a-c)*b: " << var6 << std::endl;

_asm {

mov ax, a

sub ax, c

mul b

add ax, d

mul a

sub ax, c

mul b

mov var6Asm, ax

}

std::cout << "Res e=(((a-c)*b+d)*a-c)*b: " << var6Asm << std::endl;

std::cout << " " << std::endl;

}