编译出错。帮忙看看什么地方错了。我用的是CodeWarrior 4.2.6。
Error : Identifier expected DSP56800_zeroBSS.asm line 49 SUBROUTINE "F__bssClear",F__bssClear,F__bssClearEND-F__bssClear
下面是程序,是软件自己生成的代码:
DEFINE useSoftwareLoop ''
section startup
; these variables are defined in the linker command file (LCF)
XREF F_bss_size XREF F_bss_addr
org p:
GLOBAL F__bssClear
SUBROUTINE "F__bssClear",F__bssClear,F__bssClearEND-F__bssClear
F__bssClear:
; if useSoftwareLoop is defined, assemble this code
IF @DEF('useSoftwareLoop')
; clear bss with software loop
move #F_bss_size,y0 ; set count tstw y0 ; test count beq end_bssClear ; if zero count, then exit move #0,x0 ; set x0 to zero move #F_bss_addr,r1 ; set dest address nop loop_bssClear: move x0,xr1)+ ; stash x0 value at address r1 ; and increment r1 decw y0 ; decrement count and test bne loop_bssClear ; if not zero, continue loop end_bssClear:
ELSE ; assemble the following code
; clear bss with hardware loop move #0,x0 ; set x0 to zero move #F_bss_size,r2 ; set bss size move #F_bss_addr,r1 ; dest address -- bss data start do r2,end_bss_clear ; do for r2 times move x0,xr1)+ ; stash zero at address nop end_bss_clear:
ENDIF rts
F__bssClearEND:
endsec end |