1 comment "subroutine prologue" 2 .macro gdbasm_enter 3 mov.w r6,@-r7 4 mov.w r7,r6 5 subs #2,r7 6 .endm 7 8 comment "subroutine epilogue" 9 .macro gdbasm_leave 10 adds #2,r7 11 mov.w @r7+,r6 12 rts 13 .endm 14 15 .macro gdbasm_call subr 16 jsr @\subr 17 .endm 18 19 .macro gdbasm_several_nops 20 nop 21 nop 22 nop 23 nop 24 .endm 25 26 comment "exit (0)" 27 .macro gdbasm_exit0 28 mov.w #0xdead,r1 29 mov.w #0xbeef,r2 30 mov.w #0,r0 31 sleep 32 .endm 33 34 comment "crt0 startup" 35 .macro gdbasm_startup 36 .section .stack 37_stack: .long 1 38 .section .text 39 .global _start 40_start: 41 mov.w #0,r6 42 mov.w #_stack,sp ; or mov.l #_stack,sp 43 mov.w #_edata,r0 44 mov.w #_end,r1 45 sub.w r2,r2 46.loop: mov.w r2,@r0 47 adds #2,r0 48 cmp r1,r0 49 blo .loop 50 .endm 51