kvs/тесты/вызов_функции/вызов_функции.квс

37 lines
1.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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