section .data
a dd 2 ; значение a
x dd 4 ; значение x
result dd 0 ; место для результата
section .text
global _start
_start:
; загрузка a и x
mov eax, [a]
mov ebx, [x]
; вычисление a^2
mov ecx, eax
imul ecx, eax ; ecx = a^2
; вычисление x^2 и x^3
mov edx, ebx
imul edx, ebx ; edx = x^2
mov esi, ebx
imul esi, ebx ; esi = x^3
; вычисление a^2 * x^2
mov edi, ecx
imul edi, edx ; edi = a^2 * x^2
; деление на -2
; деление по знакомому делителю
; для деления на -2 используем деление с учетом знака
; делим edi на 2
mov eax, edi
cdq ; расширение eax в edx:eax
mov ebx, 2
idiv ebx ; eax = (a^2 * x^2) / 2
; учитываем деление на -2
; так как делим на -2, результат будет - (a^2 * x^2) / 2
; то есть делим на 2 и меняем знак
; при делении на -2, делим на 2 и меняем знак результата
neg eax ; результат деления с учетом деления на -2
; сохраняем результат в память
mov [result], eax
; вычисление -3a x^3
mov ebx, [a]
imul ebx, 3 ; ebx = 3a
mov ecx, ebx
imul ecx, [x] ; ecx = 3a x
imul ecx, [x] ; ecx = 3a x^2
imul ecx, [x] ; ecx = 3a x^3
; умножение 3a x^3
; результат в ecx
; умножение на -1
neg ecx ; -3a x^3
; прибавляем к результату
mov ebx, [result]
add ebx, ecx
mov [result], ebx
; вычисление (x + a^3) / 5
mov eax, [a]
mov edx, 0
imul eax, eax
imul eax, eax ; a^3
mov ebx, [x]
add ebx, eax ; x + a^3
; делим на 5
mov ecx, 5
mov edx, 0
div ecx
; eax
= (x
+ a
^3) / 5 ; сохраняем результат
; прибавляем к предыдущему результату
mov ebx, [result]
add ebx, eax
mov [result], ebx
; завершение программы
mov eax, 1
xor ebx, ebx
int 0x80
c2VjdGlvbiAuZGF0YQphICAgICAgIGRkIDIgICAgICAgICAgOyDQt9C90LDRh9C10L3QuNC1IGEKeCAgICAgICBkZCA0ICAgICAgICAgIDsg0LfQvdCw0YfQtdC90LjQtSB4CnJlc3VsdCAgZGQgMCAgICAgICAgICA7INC80LXRgdGC0L4g0LTQu9GPINGA0LXQt9GD0LvRjNGC0LDRgtCwCgpzZWN0aW9uIC50ZXh0Cmdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIDsg0LfQsNCz0YDRg9C30LrQsCBhINC4IHgKICAgIG1vdiBlYXgsIFthXQogICAgbW92IGVieCwgW3hdCgogICAgOyDQstGL0YfQuNGB0LvQtdC90LjQtSBhXjIKICAgIG1vdiBlY3gsIGVheAogICAgaW11bCBlY3gsIGVheCAgICAgICA7IGVjeCA9IGFeMgoKICAgIDsg0LLRi9GH0LjRgdC70LXQvdC40LUgeF4yINC4IHheMwogICAgbW92IGVkeCwgZWJ4CiAgICBpbXVsIGVkeCwgZWJ4ICAgICAgIDsgZWR4ID0geF4yCiAgICBtb3YgZXNpLCBlYngKICAgIGltdWwgZXNpLCBlYnggICAgICAgOyBlc2kgPSB4XjMKCiAgICA7INCy0YvRh9C40YHQu9C10L3QuNC1IGFeMiAqIHheMgogICAgbW92IGVkaSwgZWN4CiAgICBpbXVsIGVkaSwgZWR4ICAgICAgIDsgZWRpID0gYV4yICogeF4yCgogICAgOyDQtNC10LvQtdC90LjQtSDQvdCwIC0yCiAgICA7INC00LXQu9C10L3QuNC1INC/0L4g0LfQvdCw0LrQvtC80L7QvNGDINC00LXQu9C40YLQtdC70Y4KICAgIDsg0LTQu9GPINC00LXQu9C10L3QuNGPINC90LAgLTIg0LjRgdC/0L7Qu9GM0LfRg9C10Lwg0LTQtdC70LXQvdC40LUg0YEg0YPRh9C10YLQvtC8INC30L3QsNC60LAKICAgIDsg0LTQtdC70LjQvCBlZGkg0L3QsCAyCiAgICBtb3YgZWF4LCBlZGkKICAgIGNkcSAgICAgICAgICAgICAgICAgOyDRgNCw0YHRiNC40YDQtdC90LjQtSBlYXgg0LIgZWR4OmVheAogICAgbW92IGVieCwgMgogICAgaWRpdiBlYnggICAgICAgICAgICA7IGVheCA9IChhXjIgKiB4XjIpIC8gMgoKICAgIDsg0YPRh9C40YLRi9Cy0LDQtdC8INC00LXQu9C10L3QuNC1INC90LAgLTIKICAgIDsg0YLQsNC6INC60LDQuiDQtNC10LvQuNC8INC90LAgLTIsINGA0LXQt9GD0LvRjNGC0LDRgiDQsdGD0LTQtdGCIC0gKGFeMiAqIHheMikgLyAyCiAgICA7INGC0L4g0LXRgdGC0Ywg0LTQtdC70LjQvCDQvdCwIDIg0Lgg0LzQtdC90Y/QtdC8INC30L3QsNC6CiAgICA7INC/0YDQuCDQtNC10LvQtdC90LjQuCDQvdCwIC0yLCDQtNC10LvQuNC8INC90LAgMiDQuCDQvNC10L3Rj9C10Lwg0LfQvdCw0Log0YDQtdC30YPQu9GM0YLQsNGC0LAKICAgIG5lZyBlYXggICAgICAgICAgICAgOyDRgNC10LfRg9C70YzRgtCw0YIg0LTQtdC70LXQvdC40Y8g0YEg0YPRh9C10YLQvtC8INC00LXQu9C10L3QuNGPINC90LAgLTIKCiAgICA7INGB0L7RhdGA0LDQvdGP0LXQvCDRgNC10LfRg9C70YzRgtCw0YIg0LIg0L/QsNC80Y/RgtGMCiAgICBtb3YgW3Jlc3VsdF0sIGVheAoKICAgIDsg0LLRi9GH0LjRgdC70LXQvdC40LUgLTNhIHheMwogICAgbW92IGVieCwgW2FdCiAgICBpbXVsIGVieCwgMyAgICAgICAgOyBlYnggPSAzYQogICAgbW92IGVjeCwgZWJ4CiAgICBpbXVsIGVjeCwgW3hdICAgICAgIDsgZWN4ID0gM2EgeAogICAgaW11bCBlY3gsIFt4XSAgICAgICA7IGVjeCA9IDNhIHheMgogICAgaW11bCBlY3gsIFt4XSAgICAgICA7IGVjeCA9IDNhIHheMwoKICAgIDsg0YPQvNC90L7QttC10L3QuNC1IDNhIHheMwogICAgOyDRgNC10LfRg9C70YzRgtCw0YIg0LIgZWN4CiAgICA7INGD0LzQvdC+0LbQtdC90LjQtSDQvdCwIC0xCiAgICBuZWcgZWN4ICAgICAgICAgICAgIDsgLTNhIHheMwoKICAgIDsg0L/RgNC40LHQsNCy0LvRj9C10Lwg0Log0YDQtdC30YPQu9GM0YLQsNGC0YMKICAgIG1vdiBlYngsIFtyZXN1bHRdCiAgICBhZGQgZWJ4LCBlY3gKICAgIG1vdiBbcmVzdWx0XSwgZWJ4CgogICAgOyDQstGL0YfQuNGB0LvQtdC90LjQtSAoeCArIGFeMykgLyA1CiAgICBtb3YgZWF4LCBbYV0KICAgIG1vdiBlZHgsIDAKICAgIGltdWwgZWF4LCBlYXgKICAgIGltdWwgZWF4LCBlYXggICAgICAgOyBhXjMKICAgIG1vdiBlYngsIFt4XQogICAgYWRkIGVieCwgZWF4ICAgICAgICA7IHggKyBhXjMKCiAgICA7INC00LXQu9C40Lwg0L3QsCA1CiAgICBtb3YgZWN4LCA1CiAgICBtb3YgZWR4LCAwCiAgICBkaXYgZWN4ICAgICAgICAgICAgIDsgZWF4ID0gKHggKyBhXjMpIC8gNQogICAgOyDRgdC+0YXRgNCw0L3Rj9C10Lwg0YDQtdC30YPQu9GM0YLQsNGCCiAgICA7INC/0YDQuNCx0LDQstC70Y/QtdC8INC6INC/0YDQtdC00YvQtNGD0YnQtdC80YMg0YDQtdC30YPQu9GM0YLQsNGC0YMKICAgIG1vdiBlYngsIFtyZXN1bHRdCiAgICBhZGQgZWJ4LCBlYXgKICAgIG1vdiBbcmVzdWx0XSwgZWJ4CgogICAgOyDQt9Cw0LLQtdGA0YjQtdC90LjQtSDQv9GA0L7Qs9GA0LDQvNC80YsKICAgIG1vdiBlYXgsIDEKICAgIHhvciBlYngsIGVieAogICAgaW50IDB4ODA=