一个汇编程序中函数的作用域的问题

通常调用函数前要先声明函数,所以子函数都是声明在主函数前面的。

但是学校的接口技术的课上的实验我把子函数写在前面反而不行,要写在后面实验才能成功,这是什么情况?(编译均不报错)。
实验用的软件是dvcc,大致的程序如下

 assume  cs:code
 code  segment
 start:
     call   delay
        ....
        ....
delay:
      ....
        ret
 code  ends
 end  start