|
|||
1.3 Задание 4. 1.4 Задание 5. Новое условие ⇐ ПредыдущаяСтр 5 из 5 1. 3 Задание 4 Дано x. Найти: Код программы: #include < cstdio> #include < clocale> #include < iostream> using namespace std;
void main() { int x, y, y1; setlocale(LC_ALL, " rus" ); cout < < " Введите x "; cin > > x; _asm { MOV EAX, x // занести в регистр AX содержимое ячейки памяти x SAL EAX, 1 // арифметический сдвиг влево на 1 разряд - AX=2X ADD EAX, 3 CMP x, 7 JLE M1 MOV EAX, x SAL EAX, 2 SUB EAX, 3 M1: MOV y, EAX } if (x < = 7) y1 = 2 * x + 3; else y1 = 4 * x - 3; cout < < " y= " < < y < < " y1= " < < y1; getchar(); }
Скриншоты:
1. 4 Задание 5 Разработать программу для вычисления выражения. Исходные данные и результат разместить в памяти (сегменте данных, использовать косвенную адресацию). Код программы: #include < cstdio> #include < clocale> #include < iostream> using namespace std;
void main() { int a, b, res, y, y1; setlocale(LC_ALL, " rus" ); cout < < " Введите a: "; cin > > a; cout < < " Введите b: "; cin > > b; _asm { MOV EAX, a // занести в регистр AX содержимое ячейки памяти a MOV EBX, b // занести в регистр BX содержимое ячейки памяти b
ADD EBX, EAX TEST EAX, 1 JNZ M1 SAR EAX, 2 MOV EBX, EAX
M1: MOV res, EBX } if (a % 2 == 0) y1 = a / 4; else y1 = a + b; cout < < " y= " < < res < < " y1= " < < y1; getchar(); getchar(); } Скриншоты:
Новое условие Изменить условие на следующее: если разряд av установлен (равен 1); v - № варианта. Вариант 4. Код программы: #include < cstdio> #include < clocale> #include < iostream> using namespace std;
void main() { int a, b, res, y, y1; setlocale(LC_ALL, " rus" ); cout < < " Введите a: "; cin > > a; cout < < " Введите b: "; cin > > b; _asm { MOV EAX, a // занести в регистр AX содержимое ячейки памяти a MOV EBX, b // занести в регистр BX содержимое ячейки памяти b
ADD EBX, EAX MOV EDX, EAX SAR EDX, 4 TEST EDX, 1 JZ M1 SAR EAX, 2 MOV EBX, EAX
M1: MOV res, EBX } if ((a / 16) % 2 == 1) y1 = a / 4; else y1 = a + b; cout < < " y= " < < res < < " y1= " < < y1; getchar(); getchar(); } Скриншоты: Заключение В ходе лабораторной работы разработали программы, реализующие линейный и разветвляющийся вычислительный процесс, на языках Си и Ассемблер. Разработали программы для вычисления выражений согласно варианту и разработали программу для нахождения значения выражения с ветвлением (условием).
Список литературы 1. Лабораторная работа №1: Разработка и отладка управляющих программ, реализующих линейный и разветвляющийся вычислительный процесс, на языке Си и Ассемблер (Дата обращения: 8. 10. 2022)
|
|||
|