Есть список (например регистров) с которым нужно выполнить некоторые действия
например
Код
swap_regs1 MACRO
REPTI _r, r24,r25,r26,r27,r4,r5
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM
RSEG CODE:CODE:NOROOT(1)
test1:
swap_regs1
REPTI _r, r24,r25,r26,r27,r4,r5
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM
RSEG CODE:CODE:NOROOT(1)
test1:
swap_regs1
все ок!
но если этот список используется и в другм месте, хотелось бы его определить #define, но
такие варианты не работают
Код
#define REG_LIST r24,r25,r26,r27,r4,r5
swap_regs2 MACRO
REPTI _r, REG_LIST
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM
RSEG CODE:CODE:NOROOT(1)
test2:
swap_regs2
swap_regs3 MACRO list
REPTI _r, list
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM
RSEG CODE:CODE:NOROOT(1)
test3:
swap_regs3 REG_LIST
swap_regs2 MACRO
REPTI _r, REG_LIST
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM
RSEG CODE:CODE:NOROOT(1)
test2:
swap_regs2
swap_regs3 MACRO list
REPTI _r, list
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM
RSEG CODE:CODE:NOROOT(1)
test3:
swap_regs3 REG_LIST
Пока обошолся таким способом
Код
#define LOCAL_REGS_R REPTI _r, r24,r25,r26,r27,r4,r5
swap_locals MACRO
LOCAL_REGS_R
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM
swap_locals MACRO
LOCAL_REGS_R
ld r2, Z
st Z+, _r
mov _r,r2
ENDR
ENDM