Files
2025-10-14 09:52:32 +09:00

40 lines
598 B
NASM

PRESERVE8
AREA |.text|, CODE, ALIGN=3
CODE16
EXTERN main
EXTERN ||Image$$.bss$$ZI$$Base||
EXTERN ||Image$$.bss$$ZI$$Limit||
EXTERN ||Image$$.stack$$ZI$$Limit||
GLOBAL __main
ENTRY
__main
; initialize stack pointer
mov r0, #0
ldr r1, _SP
mov sp, r1
mov fp, r0
; clear .bss-section
ldr r4, BSS_S
ldr r5, BSS_E
subs r5, r5, r4
beq gomain
bss_clear
strb r0, [r4]
add r4, r4, #1
subs r5, r5, #1
bne bss_clear
gomain
bl main
nop
_end
b _end
BSS_S DCD ||Image$$.bss$$ZI$$Base||
BSS_E DCD ||Image$$.bss$$ZI$$Limit||
_SP DCD ||Image$$.stack$$ZI$$Limit||
END