Как передовать параметры процедур в ассемблере NASM?

Возникла необходимость разбить код на отдельные подпрограммы. Вот только из учебных материалов гугла, совершенно не понятно как в неё передовать параметры. В связи с чем, прошу доступно обьяснить начинающему

P.s: эти процедуры я плонирую вызывать достаточно часто, так что макросы мне не подойдут :(


Ответы (1 шт):

Автор решения: Супрематический Крестьянин

Можно передавать параметры через стек:

push    0x0001
push    0x0002
call    my_func
add     sp, 0x0004

;... some code ...

my_func:
    push    bp
    mov     bp, sp
    push    ax
    push    bx

    mov     ax, word [bp + 6] ; 0x0001
    mov     bx, word [bp + 4] ; 0x0002

    ;... some code ...

    pop     bx
    pop     ax
    pop     bp
    ret
→ Ссылка