123456789101112131415161718192021222324252627282930313233 |
- _start:
- clr r1
- // load stack pointer
- ldi r30,lo8(_stack_top)
- out 0x3d,r30
- ldi r30,hi8(_stack_top)
- out 0x3e,r30
- {
- // copy initialized data from flash to ram
- ldr r1,.L_etext
- ldr r2,.L_data
- ldr r3,.L_edata
- .Lcopyloop:
- cmp r2,r3
- ldrls r0,[r1],#4
- strls r0,[r2],#4
- bls .Lcopyloop
- // clear onboard ram
- ldr r1,.L_bss_start
- ldr r2,.L_bss_end
- mov r0,#0
- .Lzeroloop:
- cmp r1,r2
- strls r0,[r1],#4
- bls .Lzeroloop
- }
- call PASCALMAIN
- call _FPC_haltproc
- .text
|