Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <cstdio>
- #include <ctime>
- #include <iostream>
- int main()
- {
- char b1, b2, b3, b4;
- short w1, w2, w3;
- int d1, res, temp1, temp2;
- setlocale(LC_ALL, "Russian");
- printf("Данная программа вычисляет значение выражения ((b1*(w1 - b2) - w2 * b3) / w3 + d1 / b4)\n");
- printf("Введите целое число b1: ");
- scanf_s("%hhd", &b1);
- printf("Введите целое число b2: ");
- scanf_s("%hhd", &b2);
- printf("Введите целое число b3: ");
- scanf_s("%hhd", &b3);
- printf("Введите целое число b4: ");
- scanf_s("%hhd", &b4);
- printf("Введите целое число w1: ");
- scanf_s("%hd", &w1);
- printf("Введите целое число w2: ");
- scanf_s("%hd", &w2);
- printf("Введите целое число w3: ");
- scanf_s("%hd", &w3);
- printf("Введите целое число d1: ");
- scanf_s("%d", &d1);
- res = ((b1 * (w1 - b2) - w2 * b3) / w3 + d1 / b4);
- __asm {
- //1- (w1 - b2)
- mov al, b2
- cbw
- sub w1, ax
- //2- b1*1
- mov al, b1
- cbw
- imul w1
- mov word ptr temp1, ax
- mov word ptr temp1 + 2, dx
- //3- w2*b3
- mov al, b3
- cbw
- imul w2
- //4- (2-3)
- mov bx, word ptr temp1
- mov cx, word ptr temp1 + 2
- sub bx, ax
- sbb cx, dx
- mov word ptr temp1, bx
- mov word ptr temp1 + 2, cx
- mov ax, word ptr temp1,
- mov dx, word ptr temp1 + 2
- //5- (4/w3)
- idiv w3
- mov w3, ax
- //6- (d1/b4)
- mov al, b4
- cbw
- mov bx, ax
- mov ax, word ptr d1
- mov dx, word ptr d1 + 2
- idiv bx
- //7- (5+6)
- add ax, w3
- mov w3, ax
- }
- printf("Результат вычислений на языке ассемблера: %d\n", w3);
- printf("Результат вычислений на языке C/C++: %d\n", res);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement