При передаче параметров функции в стеке процессора,Попутных параметров в стеке
Вы кладете параметры на то JSR помещает адрес возврата в стеке. Так это означает, что в вашей функции вы должны взять на себя верхний элемент стека (адрес возврата) , прежде чем принимать другие выключен)
Возвращаемое значение сохраняется в соответствии с соглашением в регистре D0
.
например, является следующий правильный путь идти о нем:
...
|Let’s do some addition with a function,
MOVE.L #4, -(SP)
MOVE.L #5, -(SP)
JSR add
|the result of the addition (4+5) is in D0 (9)
...
add:
MOVE.L (SP)+, A1 |store the return address
|in a register
MOVE.L (SP)+, D0 |get 1st parameter, put in D0
MOVE.L (SP)+, D2 |get 2nd parameter, put in D2
ADD.L D2, D0 |add them,
|storing the result in D0
MOVE.L A1, -(SP) |put the address back on the
|Stack
RTS |return