求助:单片机堆栈问题 点击:1372 | 回复:9



李yi

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-08-30 18:45:00
楼主
各位大侠:请教一下51单片机堆栈问题,单片机复位后堆栈在07H很不适当,经常要重设堆栈地址,假如我设置堆栈在70H后,是否还能把70H,71H,72H.......等等作为其他用途



周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-08-31 08:48:00
1楼
70H肯定是不能再用了,最好在后面开辟若干字节,51RAM最多到7FH,后面就留着比较好,实在不够,可以换52。在高级语言中,这个堆栈定位过程是由编译程序自动完成的。

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-08-31 14:38:00
2楼
回周工:
要留多少字节出来才算合适呢?

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-08-31 15:20:00
3楼
具体留多少字节应该看调用和转移时需要保存的数据量大小。建议有一定编程经历后尽快转为C 语言。

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-08-31 15:53:00
4楼
回周公:
C语言和汇编有很大的区别吗?是否用C编程会简单很多

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-09-01 10:27:00
5楼

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-09-01 10:59:00
6楼
高级语言编译器会比低级语言编译器问题多。堆栈空间大小是与调子程序和中断程序相关的。一般汇编进出中断时,用户自行压栈出栈,所以需要多少堆栈完全可以算出;而高级语言往往由编译器来做这些事情,到底用多少,用户很难知道。

    所以,我觉得,高级语言去处理算法和大结构问题省力,编程效率高许多,但是在微观上,有些问题反而难以分析。幸而现在有些编译器还算成熟。

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-01 13:28:00
7楼
用汇编去做一些稍微比较大的程序时,要考虑很多方方面面,经常感到无从下手,我不懂C语言,是否用C就不会那样呢?能否举个简单的程序例子,因为我正准备学C

广州科达

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 159回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2002年12月21日
发表于:2007-09-02 06:00:00
8楼
1。建议先学透汇编
2。程序最忌爆栈
3。新手最好按常规用栈
4。栈不过7层,中断2项,预32个拜一般足够

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-05 10:41:00
9楼
我正在学习C语言,希望朋友多提点意见,万分感谢

热门招聘
相关主题

官方公众号

智造工程师