;./тесты/вызов_функции/вызов_функции.elf ;echo $? # должен быть 30 ; ============================================================ ; вызов_функции.квс - тест вызова функций и возврата ; ============================================================ .текст .глобал _start _start: ; Вызов функции с двумя аргументами переместить_имм рдиай, 10 ; первый аргумент = 10 переместить_имм рсиай, 20 ; второй аргумент = 20 вызвать сложить_два_числа ; Результат в RAX — используем как код возврата переместить рдиай, раикс ; первый аргумент sys_exit = результат переместить_имм раикс, 60 ; sys_exit вызов_системы сложить_два_числа: ; Пролог втолкнуть рбипи переместить рбипи, рсипи ; Тело функции: сложить аргументы прибавить рдиай, рсиай ; RDI += RSI переместить раикс, рдиай ; результат в RAX ; Эпилог переместить рсипи, рбипи вытолкнуть рбипи вернуться .данные тестовая_переменная: .байт 0