тот же bug что и в define
Код:
macro coord_x x
var_x di : halt
data_x nop
sdfgj_x = var_x
endm
org $8000
coord_x ($5+1)
Код:
test.asm(8): error: Invalid labelname: var_($5
test.asm(17): ^ emitted from here
test.asm(8): error: Unrecognized instruction: ) di
test.asm(17): ^ emitted from here
test.asm(8): error: Unexpected: ) di
test.asm(17): ^ emitted from here
test.asm(9): error: Invalid labelname: data_($5
test.asm(17): ^ emitted from here
test.asm(9): error: Unrecognized instruction: ) nop
test.asm(17): ^ emitted from here
test.asm(9): error: Unexpected: ) nop
test.asm(17): ^ emitted from here
test.asm(10): error: Invalid labelname: sdfgj_($5
test.asm(17): ^ emitted from here
test.asm(10): error: Unrecognized instruction: ) = var_($5+1)
test.asm(17): ^ emitted from here
test.asm(10): error: Unexpected: ) = var_($5+1)
test.asm(17): ^ emitted from here
Код:
17 8000 coord_x ($5+1)
17 8000 >
test.asm(8): error: Invalid labelname: var_($5
test.asm(17): ^ emitted from here
test.asm(8): error: Unrecognized instruction: ) di
test.asm(17): ^ emitted from here
test.asm(8): error: Unexpected: ) di
test.asm(17): ^ emitted from here
17 8000 >var_($5+1) di
17 8000 76 > halt
test.asm(9): error: Invalid labelname: data_($5
test.asm(17): ^ emitted from here
test.asm(9): error: Unrecognized instruction: ) nop
test.asm(17): ^ emitted from here
test.asm(9): error: Unexpected: ) nop
test.asm(17): ^ emitted from here
17 8001 >data_($5+1) nop
test.asm(10): error: Invalid labelname: sdfgj_($5
test.asm(17): ^ emitted from here
test.asm(10): error: Unrecognized instruction: ) = var_($5+1)
test.asm(17): ^ emitted from here
test.asm(10): error: Unexpected: ) = var_($5+1)
test.asm(17): ^ emitted from here
17 8001 >sdfgj_($5+1) = var_($5+1)
17 8001 >
и если define это можно простить
то для macro это вообще недопустимое поведение
хотя отдельный replaceallmacro именно с этим же функционалом не помешал бы
кстати по ходу это уже давно
Код:
sjasmplus-1.11.0
# file opened: test.asm
test.asm(1): error: Invalid labelname:
6 0000 macro mcr x
7 0000 ~
8 0000 ~ label_x = 1
9 0000 ~
10 0000 endm
11 0000
15 0000 org $8000
16 8000
17 8000 mcr 4
17 8000 >
17 8000 >label_x = 1
17 8000 >
Код:
sjasmplus-1.12.0+
6 0000 macro mcr x
7 0000 ~
8 0000 ~ label_x = 1
9 0000 ~
10 0000 endm
11 0000
15 0000 org $8000
16 8000
17 8000 mcr 4
17 8000 >
17 8000 >label_4 = 1
17 8000 >