section .data
X4 dd 4 ; Значение X4
X5 dd 5 ; Значение X5
X8 dd 8 ; Значение X8
X2 dd 2 ; Значение X2
X6 dd 6 ; Значение X6
X1 dd 1 ; Значение X1
X3 dd 3 ; Значение X3
result dd 0 ; Переменная для хранения результата
msg db "Result: ", 0 ; Префикс для вывода
msg_len equ $ - msg ; Длина префикса
section .bss
buf resb 12 ; Буфер для строки результата (максимум 11 символов + \0)
section .text
global _start
_start:
; Загружаем значения X4, X5, X8 и суммируем
mov eax, dword [X4] ; eax = X4
add eax, dword [X5] ; eax = X4 + X5
add eax, dword [X8] ; eax = X4 + X5 + X8
; Загружаем значения X2, X6 и суммируем
mov ebx, dword [X2] ; ebx = X2
add ebx, dword [X6] ; ebx = X2 + X6
; Перемножаем результаты
imul eax, ebx ; eax = (X4 + X5 + X8) * (X2 + X6)
; Выполняем XOR с X1 и X3
xor eax, dword [X1] ; eax = eax ⊕ X1
xor eax, dword [X3] ; eax = eax ⊕ X3
; Сохраняем результат в памяти
mov dword [result], eax
; Преобразуем результат в строку
(itoa) mov ecx, buf ; Указываем буфер для строки
call int_to_ascii ; Преобразуем eax в строку
; Выводим сообщение "Result: "
mov eax, 1 ; syscall write
mov edi, 1 ; stdout
mov rsi, msg ; адрес сообщения
mov edx, msg_len ; длина сообщения
syscall
; Выводим значение результата
mov eax, 1 ; syscall write
mov edi, 1 ; stdout
mov rsi, buf ; адрес результата
mov edx, 12 ; макс. длина строки (результат всегда уместится)
syscall
; Завершаем программу
mov eax
, 60 ; syscall
exit xor edi, edi ; Код возврата = 0
syscall
; Процедура преобразования числа в строку
(itoa) int_to_ascii:
xor edx, edx ; Очистить edx для деления
mov ebx, 10 ; Основа системы счисления (10)
convert_loop:
xor edx, edx ; Очистить остаток
div ebx
; edx
= eax
% 10, eax
= eax
/ 10 add dl, '0' ; Преобразуем цифру в ASCII
dec ecx ; Сдвигаем указатель влево
mov [ecx], dl ; Сохраняем символ в буфере
test eax, eax ; Проверяем, если eax == 0
jnz convert_loop ; Если нет, продолжаем
ret
c2VjdGlvbiAuZGF0YQogICAgWDQgZGQgNCAgICAgICAgICAgIDsg0JfQvdCw0YfQtdC90LjQtSBYNAogICAgWDUgZGQgNSAgICAgICAgICAgIDsg0JfQvdCw0YfQtdC90LjQtSBYNQogICAgWDggZGQgOCAgICAgICAgICAgIDsg0JfQvdCw0YfQtdC90LjQtSBYOAogICAgWDIgZGQgMiAgICAgICAgICAgIDsg0JfQvdCw0YfQtdC90LjQtSBYMgogICAgWDYgZGQgNiAgICAgICAgICAgIDsg0JfQvdCw0YfQtdC90LjQtSBYNgogICAgWDEgZGQgMSAgICAgICAgICAgIDsg0JfQvdCw0YfQtdC90LjQtSBYMQogICAgWDMgZGQgMyAgICAgICAgICAgIDsg0JfQvdCw0YfQtdC90LjQtSBYMwogICAgcmVzdWx0IGRkIDAgICAgICAgIDsg0J/QtdGA0LXQvNC10L3QvdCw0Y8g0LTQu9GPINGF0YDQsNC90LXQvdC40Y8g0YDQtdC30YPQu9GM0YLQsNGC0LAKICAgIG1zZyBkYiAiUmVzdWx0OiAiLCAwIDsg0J/RgNC10YTQuNC60YEg0LTQu9GPINCy0YvQstC+0LTQsAogICAgbXNnX2xlbiBlcXUgJCAtIG1zZyA7INCU0LvQuNC90LAg0L/RgNC10YTQuNC60YHQsAoKc2VjdGlvbiAuYnNzCiAgICBidWYgcmVzYiAxMiAgICAgICAgOyDQkdGD0YTQtdGAINC00LvRjyDRgdGC0YDQvtC60Lgg0YDQtdC30YPQu9GM0YLQsNGC0LAgKNC80LDQutGB0LjQvNGD0LwgMTEg0YHQuNC80LLQvtC70L7QsiArIFwwKQoKc2VjdGlvbiAudGV4dAogICAgZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgOyDQl9Cw0LPRgNGD0LbQsNC10Lwg0LfQvdCw0YfQtdC90LjRjyBYNCwgWDUsIFg4INC4INGB0YPQvNC80LjRgNGD0LXQvAogICAgbW92IGVheCwgZHdvcmQgW1g0XSA7IGVheCA9IFg0CiAgICBhZGQgZWF4LCBkd29yZCBbWDVdIDsgZWF4ID0gWDQgKyBYNQogICAgYWRkIGVheCwgZHdvcmQgW1g4XSA7IGVheCA9IFg0ICsgWDUgKyBYOAoKICAgIDsg0JfQsNCz0YDRg9C20LDQtdC8INC30L3QsNGH0LXQvdC40Y8gWDIsIFg2INC4INGB0YPQvNC80LjRgNGD0LXQvAogICAgbW92IGVieCwgZHdvcmQgW1gyXSA7IGVieCA9IFgyCiAgICBhZGQgZWJ4LCBkd29yZCBbWDZdIDsgZWJ4ID0gWDIgKyBYNgoKICAgIDsg0J/QtdGA0LXQvNC90L7QttCw0LXQvCDRgNC10LfRg9C70YzRgtCw0YLRiwogICAgaW11bCBlYXgsIGVieCAgICAgICA7IGVheCA9IChYNCArIFg1ICsgWDgpICogKFgyICsgWDYpCgogICAgOyDQktGL0L/QvtC70L3Rj9C10LwgWE9SINGBIFgxINC4IFgzCiAgICB4b3IgZWF4LCBkd29yZCBbWDFdIDsgZWF4ID0gZWF4IOKKlSBYMQogICAgeG9yIGVheCwgZHdvcmQgW1gzXSA7IGVheCA9IGVheCDiipUgWDMKCiAgICA7INCh0L7RhdGA0LDQvdGP0LXQvCDRgNC10LfRg9C70YzRgtCw0YIg0LIg0L/QsNC80Y/RgtC4CiAgICBtb3YgZHdvcmQgW3Jlc3VsdF0sIGVheAoKICAgIDsg0J/RgNC10L7QsdGA0LDQt9GD0LXQvCDRgNC10LfRg9C70YzRgtCw0YIg0LIg0YHRgtGA0L7QutGDIChpdG9hKQogICAgbW92IGVjeCwgYnVmICAgICAgICA7INCj0LrQsNC30YvQstCw0LXQvCDQsdGD0YTQtdGAINC00LvRjyDRgdGC0YDQvtC60LgKICAgIGNhbGwgaW50X3RvX2FzY2lpICAgOyDQn9GA0LXQvtCx0YDQsNC30YPQtdC8IGVheCDQsiDRgdGC0YDQvtC60YMKCiAgICA7INCS0YvQstC+0LTQuNC8INGB0L7QvtCx0YnQtdC90LjQtSAiUmVzdWx0OiAiCiAgICBtb3YgZWF4LCAxICAgICAgICAgIDsgc3lzY2FsbCB3cml0ZQogICAgbW92IGVkaSwgMSAgICAgICAgICA7IHN0ZG91dAogICAgbW92IHJzaSwgbXNnICAgICAgICA7INCw0LTRgNC10YEg0YHQvtC+0LHRidC10L3QuNGPCiAgICBtb3YgZWR4LCBtc2dfbGVuICAgIDsg0LTQu9C40L3QsCDRgdC+0L7QsdGJ0LXQvdC40Y8KICAgIHN5c2NhbGwKCiAgICA7INCS0YvQstC+0LTQuNC8INC30L3QsNGH0LXQvdC40LUg0YDQtdC30YPQu9GM0YLQsNGC0LAKICAgIG1vdiBlYXgsIDEgICAgICAgICAgOyBzeXNjYWxsIHdyaXRlCiAgICBtb3YgZWRpLCAxICAgICAgICAgIDsgc3Rkb3V0CiAgICBtb3YgcnNpLCBidWYgICAgICAgIDsg0LDQtNGA0LXRgSDRgNC10LfRg9C70YzRgtCw0YLQsAogICAgbW92IGVkeCwgMTIgICAgICAgICA7INC80LDQutGBLiDQtNC70LjQvdCwINGB0YLRgNC+0LrQuCAo0YDQtdC30YPQu9GM0YLQsNGCINCy0YHQtdCz0LTQsCDRg9C80LXRgdGC0LjRgtGB0Y8pCiAgICBzeXNjYWxsCgogICAgOyDQl9Cw0LLQtdGA0YjQsNC10Lwg0L/RgNC+0LPRgNCw0LzQvNGDCiAgICBtb3YgZWF4LCA2MCAgICAgICAgIDsgc3lzY2FsbCBleGl0CiAgICB4b3IgZWRpLCBlZGkgICAgICAgIDsg0JrQvtC0INCy0L7Qt9Cy0YDQsNGC0LAgPSAwCiAgICBzeXNjYWxsCgo7INCf0YDQvtGG0LXQtNGD0YDQsCDQv9GA0LXQvtCx0YDQsNC30L7QstCw0L3QuNGPINGH0LjRgdC70LAg0LIg0YHRgtGA0L7QutGDIChpdG9hKQppbnRfdG9fYXNjaWk6CiAgICB4b3IgZWR4LCBlZHggICAgICAgIDsg0J7Rh9C40YHRgtC40YLRjCBlZHgg0LTQu9GPINC00LXQu9C10L3QuNGPCiAgICBtb3YgZWJ4LCAxMCAgICAgICAgIDsg0J7RgdC90L7QstCwINGB0LjRgdGC0LXQvNGLINGB0YfQuNGB0LvQtdC90LjRjyAoMTApCmNvbnZlcnRfbG9vcDoKICAgIHhvciBlZHgsIGVkeCAgICAgICAgOyDQntGH0LjRgdGC0LjRgtGMINC+0YHRgtCw0YLQvtC6CiAgICBkaXYgZWJ4ICAgICAgICAgICAgIDsgZWR4ID0gZWF4ICUgMTAsIGVheCA9IGVheCAvIDEwCiAgICBhZGQgZGwsICcwJyAgICAgICAgIDsg0J/RgNC10L7QsdGA0LDQt9GD0LXQvCDRhtC40YTRgNGDINCyIEFTQ0lJCiAgICBkZWMgZWN4ICAgICAgICAgICAgIDsg0KHQtNCy0LjQs9Cw0LXQvCDRg9C60LDQt9Cw0YLQtdC70Ywg0LLQu9C10LLQvgogICAgbW92IFtlY3hdLCBkbCAgICAgICA7INCh0L7RhdGA0LDQvdGP0LXQvCDRgdC40LzQstC+0Lsg0LIg0LHRg9GE0LXRgNC1CiAgICB0ZXN0IGVheCwgZWF4ICAgICAgIDsg0J/RgNC+0LLQtdGA0Y/QtdC8LCDQtdGB0LvQuCBlYXggPT0gMAogICAgam56IGNvbnZlcnRfbG9vcCAgICA7INCV0YHQu9C4INC90LXRgiwg0L/RgNC+0LTQvtC70LbQsNC10LwKICAgIHJldAoK