I don't know if you are tried something like this:
llamada macro proceso:REQ, vars:VARARG
LOCAL cnt
cnt = 0
FOR item, <vars>
lea rax, <item>
if cnt eq 0
mov rcx, rax
endif
if cnt eq 1
mov rdx, rax
endif
if cnt eq 2
mov r8, rax
endif
if cnt eq 3
mov r9, rax
endif
if cnt eq 4
mov qword ptr [rsp+0x20], rax
endif
if cnt eq 5
mov qword ptr [rsp+0x28], rax
endif
cnt = cnt + 1
ENDM
call &proceso
endm This machine is 32bit, I can't test: llamada testit,var1,var2,var3,var4,var5,var6
Perhaps a litlle more compact code with;llamada macro proceso:REQ, vars:VARARG
LOCAL cnt
cnt = 0
FOR item, <vars>
if cnt eq 0
lea rcx, <item>
endif
if cnt eq 1
lea rdx, <item>
endif
if cnt eq 2
lea r8, <item>
endif
if cnt eq 3
lea r9, <item>
endif
if cnt eq 4
lea rax, <item>
mov qword ptr [rsp+0x20], rax
endif
if cnt eq 5
lea rax, <item>
mov qword ptr [rsp+0x28], rax
endif
cnt = cnt + 1
ENDM
call &proceso
endm