Код IT Загрузка примера кода…

Assembler main.asm
section .text
global _start

; Подпрограмма add_numbers
; Принимает: RDI = первое число, RSI = второе число
; Возвращает: RAX = сумма
add_numbers:
    push rbp          ; Сохраняем базовый указатель
    mov rbp, rsp      ; Устанавливаем новый фрейм стека

    mov rax, rdi      ; Загружаем первое число в RAX
    add rax, rsi      ; Прибавляем второе число

    pop rbp           ; Восстанавливаем базовый указатель
    ret               ; Возврат к вызывающему коду

_start:
    mov rdi, 10       ; Первый аргумент
    mov rsi, 25       ; Второй аргумент
    call add_numbers  ; Вызов подпрограммы

    ; Теперь RAX содержит 35
    ; Дальнейшие действия — например, вывод или выход
section .text
global _start

; Подпрограмма add_numbers
; Принимает: RDI = первое число, RSI = второе число
; Возвращает: RAX = сумма
add_numbers:
    push rbp          ; Сохраняем базовый указатель
    mov rbp, rsp      ; Устанавливаем новый фрейм стека

    mov rax, rdi      ; Загружаем первое число в RAX
    add rax, rsi      ; Прибавляем второе число

    pop rbp           ; Восстанавливаем базовый указатель
    ret               ; Возврат к вызывающему коду

_start:
    mov rdi, 10       ; Первый аргумент
    mov rsi, 25       ; Второй аргумент
    call add_numbers  ; Вызов подпрограммы

    ; Теперь RAX содержит 35
    ; Дальнейшие действия — например, вывод или выход