Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // второй вариант
- #include <iostream>
- int main() {
- char b1, b2, b3, b4;
- short w1, w2, w3;
- int d1, result, res;
- setlocale(LC_ALL, "Russian");
- printf("Данная программа вычисляет значение выражения ((b1 and (w1 xor b2) xor w2 and b3) and not w3 or d1 and not 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));
- /* ((b1 and (w1 xor b2) xor w2 and b3) and not w3 or d1 and not b4) */
- __asm {
- mov ax, w1
- mov bl, b2
- xor al, bl
- mov bl, b1
- and al, bl
- mov bx, w2
- and bl, b3
- xor ax, bx
- mov bx, w3
- not bx
- and ax, bx
- mov bx, word ptr[d1]
- mov cx, word ptr[d1 + 2]
- mov dl, b4
- not dl
- and bl, dl
- or bx, ax
- //result in cx:bx
- mov word ptr result, bx
- mov word ptr result + 2, cx
- }
- printf("Результат вычислений на языке ассемблера: %d\n", result);
- printf("Результат вычислений на языке C/C++: %d\n", res);
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment