_asm
{
FOR_START: // начало
mov edx, 1; // I = 1; инициализация счетчика
mov ecx, n; // N
mov ebx, 1;
FOR_LOOP: // метка цикла
//тело цикла//
mov eax, edx;
imul eax, eax;
imul ebx, eax;
//тело цикла//
Лист
АТПР.090201.18.116
5
Изм Лист № документа Подпись Дата
2. Вычислить сумму чисел для заданного М
2+4+6+…+(2М)
Данные для проверки: М=4
Ответ: 20
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "rus");
int m;
cout << "Введите m: "; cin >> m;
_asm
{
FOR_START: // начало
mov edx, 2; // I = 2; инициализация счетчика
mov ecx, m;
mov eax, 0;
imul ecx, 2; // M
FOR_LOOP: // метка цикла
//тело цикла//
mov ebx, edx;
add eax, ebx;
//тело цикла//
Лист
АТПР.090201.18.116
5
Изм Лист № документа Подпись Дата
3. Вычислить произведение чисел для заданного М
3*5*7*…*(2М+1)
Данные для проверки: М=3
Ответ: 105
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "rus");
int m;
cout << "Введите m: "; cin >> m;
_asm
{
FOR_START: // начало
mov edx, 0; // I = 0; инициализация счетчика
mov ecx, m;
mov eax, 1; // p = 1;
FOR_LOOP: // метка цикла
//тело цикла//
mov ebx, edx;
imul ebx, 2;
add ebx, 1;
imul eax, ebx; // p=p*(2*i+1);
//тело цикла//
}
cout << m << endl;
system("pause");
return false;
}
Лист
АТПР.090201.18.116
5
Изм Лист № документа Подпись Дата
4. Вычислить произведение только четных чисел натурального ряда от 1 до
заданного N (использовать DWORD).
Данные для проверки: N=7
Ответ: 48
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "rus");
int n;
cout << "Введите n: "; cin >> n;
_asm
{
FOR_START: // начало
mov edx, 1; // I = 1; инициализация счетчика
mov eax, 1;
mov ecx, n;
FOR_LOOP: // метка цикла
//тело цикла//
//тело цикла//
Лист
АТПР.090201.18.116
5
Изм Лист № документа Подпись Дата
cout << n << endl;
system("pause");
return false;
}
Лист
АТПР.090201.18.116
5
Изм Лист № документа Подпись Дата