dxxxwx 发表于 2011-9-28 15:12:41

AVR汇编子程序调用必须设堆栈吗?

我用AVR STUDIO写了一个简单的延时子程序:
...
rcall delay
...
delay:
   ldi r16,255
del1:dec r16
   brne del1
   ret
但是程序执行到rcall delay就不往下执行了,是什么问题呢?

dxxxwx 发表于 2011-9-28 22:53:19

问题已经解决,主程序中应该加下面的语句:
ldi r16, low(ramend)
out spl, r16
ldi r16, high(ramend)
out sph, r16
子程序中使用堆栈就可以正常调用子程序了。

天行者 发表于 2014-6-17 08:51:30

有的用,收藏{:sad:}

jackiezeng 发表于 2014-6-17 08:56:59

堆栈必须设置,,调用汇编子程序一样要入站操作的,,,要不它怎么知道调用结束后回到哪里?
页: [1]
查看完整版本: AVR汇编子程序调用必须设堆栈吗?