Добавил:
cfe_o
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:LR_4
.txt/ ConsoleApplication11.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "");
short a, b, c, d;
std::cout << "Введите первое число (число а): ";
cin >> a;
std::cout << "Введите второе число (число b): ";
cin >> b;
std::cout << "Введите третье число (число c): ";
cin >> c;
std::cout << "Введите четвёртое число (число d): ";
cin >> d;
_asm {
mov ax, b
cmp ax, c
jl label1
add ax, c
jmp label2
label1:
sub ax, c
label2:
mov a, ax
}
cout << "1. a = " << a << endl;
_asm {
mov ax, b
cmp ax, c
jl label1
add ax, c
jmp label2
label1:
}
/*
//a+b
short sum = a + b;
std::cout << "Сумма чисел a и b (C++) = " << sum << endl;
short sumAsm;
__asm {
mov ax, a
add ax, b
mov sumAsm, ax
}
std::cout << "Сумма чисел a и b (Asm) = " << sumAsm << endl;
//a-b
short sub = a - b;
std::cout << "Разность чисел a и b (C++) = " << sub << endl;
short subAsm;
__asm {
mov ax, a
sub ax, b
mov subAsm, ax
}
std::cout << "Разность чисел a и b (Asm) = " << subAsm << endl;
//a+b-c
short sum1 = a + b;
short sub1 = sum1 - c;
short sum1Asm;
short sub1Asm;
__asm {
mov ax, a
add ax, b
mov sum1Asm, ax
sub ax, c
mov sub1Asm, ax;
}
std::cout << "Результат a+b-c (C++) = " << sub1 << endl;
std::cout << "Результат a+b-c (Asm) = " << sub1Asm << endl;
//(a+b)*(c+a)
short mul = (a + b)*(c + a);
short mulAsm;
__asm {
mov ax, a
mov bx, c
add ax, b
add bx, a
mul bx
mov mulAsm, ax;
}
std::cout << "Результат (a+b)*(c+a) (C++) = " << mul << std::endl;
std::cout << "Результат (a+b)*(c+a) (Asm) = " << mulAsm << std::endl;
//(a+b+c)*(c-a+b)
short mul1 = (a + b + c) * (c - a + b);
short mul1Asm;
__asm {
mov ax, a
add ax, b
add ax, c
mov bx, c
sub bx, a
add bx, b
mul bx
mov mul1Asm, ax;
}
std::cout << "Результат (a+b+c)*(c-a+b) (C++) = " << mul1 << std::endl;
std::cout << "Результат (a+b+c)*(c-a+b) (Asm) = " << mul1Asm << std::endl;
//(a+b)*c4
short mul2 = (a + b) * pow(c, 4);
short mul2Asm;
__asm {
mov ax, c
mov bx, ax
mul bx
mul bx
mul bx
mov cx, a
add cx, b
mul cx
mov mul2Asm, ax;
}
std::cout << "Результат (a+b)*c4 (C++) = " << mul2 << endl;
std::cout << "Результат (a+b)*c4 (Asm) = " << mul2Asm << endl;
//((a+b)*c-(d+c)*b)*a
short mul3 = ((a + b)*c - (d + c)*b)*a;
short mul3Asm;
__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 mul3Asm, ax;
}
std::cout << "Результат ((a+b)*c-(d+c)*b)*a (C++) = " << mul3 << std::endl;
std::cout << "Результат ((a+b)*c-(d+c)*b)*a (Asm) = " << mul3Asm << std::endl;
//(((a-c)*b+d)*a-c)*b
short mul4 = (((a - c)*b + d)*a - c)*b;
short mul4Asm;
__asm {
mov ax, a
sub ax, c
mul b
add ax, d
mul a
sub ax, c
mul b
mov mul4Asm, ax;
}
std::cout << "Результат (((a-c)*b+d)*a-c)*b (C++) = " << mul4 << std::endl;
std::cout << "Результат (((a-c)*b+d)*a-c)*b (Asm) = " << mul4Asm << std::endl;
//a and b
short OperAND = a & b;
std::cout << "Результат a and b (C++) = " << OperAND << endl;
short OperANDAsm;
__asm {
mov ax, a
mov bx, b
and ax, bx
mov OperANDAsm, ax
}
std::cout << "Результат a and b (Asm) = " << OperANDAsm << endl;
//a or b
short OperOR = a | b;
std::cout << "Результат a or b (C++) = " << OperOR << endl;
short OperORAsm;
__asm {
mov ax, a
mov bx, b
or ax, bx
mov OperORAsm, ax
}
std::cout << "Результат a or b (Asm) = " << OperORAsm << endl;
//a not b
short OperNOT = ~a;
std::cout << "Результат not a (C++) = " << OperNOT << endl;
short OperNOTAsm;
__asm {
mov ax, a
not ax
mov OperNOTAsm, ax
}
std::cout << "Результат not a (Asm) = " << OperNOTAsm << endl;
//a xor b
short OperXOR = a ^ b;
std::cout << "Результат a xor b (C++) = " << OperXOR << endl;
short OperXORAsm;
__asm {
mov ax, a
mov bx, b
xor ax, bx
mov OperXORAsm, ax
}
std::cout << "Результат a xor b (Asm) = " << OperXORAsm << endl;
*/
return 0;
}