Files
rgbds/test/asm/section-union.asm
2023-11-02 10:18:59 +01:00

38 lines
690 B
NASM

SECTION UNION "test", WRAM0
Base:
ds $1000
SECTION UNION "test", WRAM0,ALIGN[8]
ds 42
Plus42:
SECTION UNION "test", WRAM0,ALIGN[4]
SECTION UNION "test", WRAM0[$C000]
; Since the section's base address is known, the labels are constant now
ds $1000 ; This shouldn't overflow
End:
SECTION UNION "test", WRAM0,ALIGN[9]
MACRO check_label
def EXPECTED equ \2
IF \1 == EXPECTED
def RESULT equs "OK!"
ELSE
def RESULT equs "expected {EXPECTED}"
ENDC
PURGE EXPECTED
PRINTLN "\1 is at {\1} ({RESULT})"
PURGE RESULT
ENDM
check_label Base, $C000
check_label Plus42, $C000 + 42
check_label End, $D000
SECTION "test", WRAM0 ; Don't allow creating a section that's not a union!