section .data
a dd 1000 ; Пример значения для a (3-х байтное число, но храним в 4-х для простоты)
b dd 2000 ; Пример значения для b
c dd 500 ; Пример значения для c
d dd 0 ; Результат
newline db 0xA ; Символ новой строки
section .text
global _start
_start:
; b - 1
mov eax, [b] ; Загружаем значение b в eax
dec eax ; Вычитаем 1 из eax
; (b - 1) + a
add eax, [a] ; Прибавляем значение a к eax
; (b - 1 + a) - c
sub eax, [c] ; Вычитаем значение c из eax
; Сохраняем результат в d
mov [d], eax ; Сохраняем результат (d) в памяти
; Вывод результата (d) на экран (как десятичное число)
mov eax, 4 ; системный вызов для write
mov ebx, 1 ; файловый дескриптор (stdout)
mov ecx, d ; адрес строки для вывода
mov edx, 4 ; количество байт для вывода
int 0x80
; Выводим перевод строки
mov eax, 4
mov ebx, 1
mov ecx, newline
mov edx, 1
int 0x80
; Завершение программы
mov eax
, 1 ; системный вызов для
exit xor ebx, ebx ; код возврата 0
int 0x80
c2VjdGlvbiAuZGF0YQogICAgYSAgIGRkIDEwMDAgICAgICA7INCf0YDQuNC80LXRgCDQt9C90LDRh9C10L3QuNGPINC00LvRjyBhICgzLdGFINCx0LDQudGC0L3QvtC1INGH0LjRgdC70L4sINC90L4g0YXRgNCw0L3QuNC8INCyIDQt0YUg0LTQu9GPINC/0YDQvtGB0YLQvtGC0YspCiAgICBiICAgZGQgMjAwMCAgICAgIDsg0J/RgNC40LzQtdGAINC30L3QsNGH0LXQvdC40Y8g0LTQu9GPIGIKICAgIGMgICBkZCA1MDAgICAgICAgOyDQn9GA0LjQvNC10YAg0LfQvdCw0YfQtdC90LjRjyDQtNC70Y8gYwogICAgZCAgIGRkIDAgICAgICAgICA7INCg0LXQt9GD0LvRjNGC0LDRggogICAgbmV3bGluZSBkYiAweEEgICA7INCh0LjQvNCy0L7QuyDQvdC+0LLQvtC5INGB0YLRgNC+0LrQuAoKc2VjdGlvbiAudGV4dAogICAgZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgOyBiIC0gMQogICAgbW92IGVheCwgW2JdICAgICA7INCX0LDQs9GA0YPQttCw0LXQvCDQt9C90LDRh9C10L3QuNC1IGIg0LIgZWF4CiAgICBkZWMgZWF4ICAgICAgICAgIDsg0JLRi9GH0LjRgtCw0LXQvCAxINC40LcgZWF4CgogICAgOyAoYiAtIDEpICsgYQogICAgYWRkIGVheCwgW2FdICAgICA7INCf0YDQuNCx0LDQstC70Y/QtdC8INC30L3QsNGH0LXQvdC40LUgYSDQuiBlYXgKCiAgICA7IChiIC0gMSArIGEpIC0gYwogICAgc3ViIGVheCwgW2NdICAgICA7INCS0YvRh9C40YLQsNC10Lwg0LfQvdCw0YfQtdC90LjQtSBjINC40LcgZWF4CgogICAgOyDQodC+0YXRgNCw0L3Rj9C10Lwg0YDQtdC30YPQu9GM0YLQsNGCINCyIGQKICAgIG1vdiBbZF0sIGVheCAgICAgOyDQodC+0YXRgNCw0L3Rj9C10Lwg0YDQtdC30YPQu9GM0YLQsNGCIChkKSDQsiDQv9Cw0LzRj9GC0LgKCiAgICA7INCS0YvQstC+0LQg0YDQtdC30YPQu9GM0YLQsNGC0LAgKGQpINC90LAg0Y3QutGA0LDQvSAo0LrQsNC6INC00LXRgdGP0YLQuNGH0L3QvtC1INGH0LjRgdC70L4pCiAgICBtb3YgZWF4LCA0ICAgICAgIDsg0YHQuNGB0YLQtdC80L3Ri9C5INCy0YvQt9C+0LIg0LTQu9GPIHdyaXRlCiAgICBtb3YgZWJ4LCAxICAgICAgIDsg0YTQsNC50LvQvtCy0YvQuSDQtNC10YHQutGA0LjQv9GC0L7RgCAoc3Rkb3V0KQogICAgbW92IGVjeCwgZCAgICAgICA7INCw0LTRgNC10YEg0YHRgtGA0L7QutC4INC00LvRjyDQstGL0LLQvtC00LAKICAgIG1vdiBlZHgsIDQgICAgICAgOyDQutC+0LvQuNGH0LXRgdGC0LLQviDQsdCw0LnRgiDQtNC70Y8g0LLRi9Cy0L7QtNCwCiAgICBpbnQgMHg4MAoKICAgIDsg0JLRi9Cy0L7QtNC40Lwg0L/QtdGA0LXQstC+0LQg0YHRgtGA0L7QutC4CiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBuZXdsaW5lCiAgICBtb3YgZWR4LCAxCiAgICBpbnQgMHg4MAoKICAgIDsg0JfQsNCy0LXRgNGI0LXQvdC40LUg0L/RgNC+0LPRgNCw0LzQvNGLCiAgICBtb3YgZWF4LCAxICAgICAgIDsg0YHQuNGB0YLQtdC80L3Ri9C5INCy0YvQt9C+0LIg0LTQu9GPIGV4aXQKICAgIHhvciBlYngsIGVieCAgICAgOyDQutC+0LQg0LLQvtC30LLRgNCw0YLQsCAwCiAgICBpbnQgMHg4MA==