3 / Lab_3_Kalashnikov (1)
.doc// 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;
}