section .data
x dd 0
y dd 0
z dd 0
f dd 0
buffer db 11
section .text
global _start
_start:
; Введення значень x, y, z
mov rdi, 0 ; Файловий дескриптор (stdin)
mov rsi, buffer ; Буфер для введення
mov rdx, 11 ; Максимальна довжина введення
mov rax, 0 ; Системний виклик для введення
syscall
; Конвертація рядка в число
mov rsi, buffer ; Вказівник на рядок
call str_to_int ; Виклик процедури конвертації
; Виконання розрахунків
mov eax, [y] ; Завантаження значення y в регістр eax
mov ebx, 7
imul ebx, [x] ; Множення ebx на значення x
sub eax, ebx
mov ebx, 2
imul ebx, [z] ; Множення ebx на значення z
sub eax, ebx
mov ebx, 6
imul ebx, [y] ; Множення ebx на значення y
add ebx, 1
cdq
idiv ebx
mov [f], eax ; Зберігання результату в f
; Конвертація числа в рядок
mov rdi, buffer ; Вказівник на буфер
mov rsi, [f] ; Число для конвертації
call int_to_str ; Виклик процедури конвертації
; Виведення результату
mov rdi, 1 ; Файловий дескриптор (stdout)
mov rax, 1 ; Системний виклик для виведення
mov rsi, buffer ; Вказівник на рядок для виведення
mov rdx, 11 ; Довжина рядка
syscall
; Вихід з програми
mov eax, 60
xor edi, edi
syscall
; Процедура для конвертації рядка в число
str_to_int:
; код конвертації тут
ret
; Процедура для конвертації числа в рядок
int_to_str:
; код конвертації тут
ret
c2VjdGlvbiAuZGF0YQogICAgeCBkZCAwCiAgICB5IGRkIDAKICAgIHogZGQgMAogICAgZiBkZCAwCiAgICBidWZmZXIgZGIgMTEKCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIDsg0JLQstC10LTQtdC90L3RjyDQt9C90LDRh9C10L3RjCB4LCB5LCB6CiAgICBtb3YgcmRpLCAwICAgICAgIDsg0KTQsNC50LvQvtCy0LjQuSDQtNC10YHQutGA0LjQv9GC0L7RgCAoc3RkaW4pCiAgICBtb3YgcnNpLCBidWZmZXIgIDsg0JHRg9GE0LXRgCDQtNC70Y8g0LLQstC10LTQtdC90L3RjwogICAgbW92IHJkeCwgMTEgICAgICA7INCc0LDQutGB0LjQvNCw0LvRjNC90LAg0LTQvtCy0LbQuNC90LAg0LLQstC10LTQtdC90L3RjwogICAgbW92IHJheCwgMCAgICAgICA7INCh0LjRgdGC0LXQvNC90LjQuSDQstC40LrQu9C40Log0LTQu9GPINCy0LLQtdC00LXQvdC90Y8KICAgIHN5c2NhbGwKCiAgICA7INCa0L7QvdCy0LXRgNGC0LDRhtGW0Y8g0YDRj9C00LrQsCDQsiDRh9C40YHQu9C+CiAgICBtb3YgcnNpLCBidWZmZXIgIDsg0JLQutCw0LfRltCy0L3QuNC6INC90LAg0YDRj9C00L7QugogICAgY2FsbCBzdHJfdG9faW50IDsg0JLQuNC60LvQuNC6INC/0YDQvtGG0LXQtNGD0YDQuCDQutC+0L3QstC10YDRgtCw0YbRltGXCgogICAgOyDQktC40LrQvtC90LDQvdC90Y8g0YDQvtC30YDQsNGF0YPQvdC60ZbQsgogICAgbW92IGVheCwgW3ldICAgOyDQl9Cw0LLQsNC90YLQsNC20LXQvdC90Y8g0LfQvdCw0YfQtdC90L3RjyB5INCyINGA0LXQs9GW0YHRgtGAIGVheAogICAgbW92IGVieCwgNwogICAgaW11bCBlYngsIFt4XSAgOyDQnNC90L7QttC10L3QvdGPIGVieCDQvdCwINC30L3QsNGH0LXQvdC90Y8geAogICAgc3ViIGVheCwgZWJ4CgogICAgbW92IGVieCwgMgogICAgaW11bCBlYngsIFt6XSAgOyDQnNC90L7QttC10L3QvdGPIGVieCDQvdCwINC30L3QsNGH0LXQvdC90Y8gegogICAgc3ViIGVheCwgZWJ4CgogICAgbW92IGVieCwgNgogICAgaW11bCBlYngsIFt5XSAgOyDQnNC90L7QttC10L3QvdGPIGVieCDQvdCwINC30L3QsNGH0LXQvdC90Y8geQogICAgYWRkIGVieCwgMQogICAgY2RxCiAgICBpZGl2IGVieAogICAgbW92IFtmXSwgZWF4ICAgOyDQl9Cx0LXRgNGW0LPQsNC90L3RjyDRgNC10LfRg9C70YzRgtCw0YLRgyDQsiBmCgogICAgOyDQmtC+0L3QstC10YDRgtCw0YbRltGPINGH0LjRgdC70LAg0LIg0YDRj9C00L7QugogICAgbW92IHJkaSwgYnVmZmVyIDsg0JLQutCw0LfRltCy0L3QuNC6INC90LAg0LHRg9GE0LXRgAogICAgbW92IHJzaSwgW2ZdICAgIDsg0KfQuNGB0LvQviDQtNC70Y8g0LrQvtC90LLQtdGA0YLQsNGG0ZbRlwogICAgY2FsbCBpbnRfdG9fc3RyIDsg0JLQuNC60LvQuNC6INC/0YDQvtGG0LXQtNGD0YDQuCDQutC+0L3QstC10YDRgtCw0YbRltGXCgogICAgOyDQktC40LLQtdC00LXQvdC90Y8g0YDQtdC30YPQu9GM0YLQsNGC0YMKICAgIG1vdiByZGksIDEgICAgICAgOyDQpNCw0LnQu9C+0LLQuNC5INC00LXRgdC60YDQuNC/0YLQvtGAIChzdGRvdXQpCiAgICBtb3YgcmF4LCAxICAgICAgIDsg0KHQuNGB0YLQtdC80L3QuNC5INCy0LjQutC70LjQuiDQtNC70Y8g0LLQuNCy0LXQtNC10L3QvdGPCiAgICBtb3YgcnNpLCBidWZmZXIgIDsg0JLQutCw0LfRltCy0L3QuNC6INC90LAg0YDRj9C00L7QuiDQtNC70Y8g0LLQuNCy0LXQtNC10L3QvdGPCiAgICBtb3YgcmR4LCAxMSAgICAgIDsg0JTQvtCy0LbQuNC90LAg0YDRj9C00LrQsAogICAgc3lzY2FsbAoKICAgIDsg0JLQuNGF0ZbQtCDQtyDQv9GA0L7Qs9GA0LDQvNC4CiAgICBtb3YgZWF4LCA2MAogICAgeG9yIGVkaSwgZWRpCiAgICBzeXNjYWxsCgo7INCf0YDQvtGG0LXQtNGD0YDQsCDQtNC70Y8g0LrQvtC90LLQtdGA0YLQsNGG0ZbRlyDRgNGP0LTQutCwINCyINGH0LjRgdC70L4Kc3RyX3RvX2ludDoKICAgIDsg0LrQvtC0INC60L7QvdCy0LXRgNGC0LDRhtGW0Zcg0YLRg9GCCiAgICByZXQKCjsg0J/RgNC+0YbQtdC00YPRgNCwINC00LvRjyDQutC+0L3QstC10YDRgtCw0YbRltGXINGH0LjRgdC70LAg0LIg0YDRj9C00L7QugppbnRfdG9fc3RyOgogICAgOyDQutC+0LQg0LrQvtC90LLQtdGA0YLQsNGG0ZbRlyDRgtGD0YIKICAgIHJldAo=