单片机指令求解释 点击:1928 | 回复:11



山水

    
  • 精华:4帖
  • 求助:0帖
  • 帖子:128帖 | 2238回
  • 年度积分:0
  • 历史总积分:3675
  • 注册:2004年1月06日
发表于:2006-07-03 18:51:00
楼主
8051中的ACALL怎么使用,在调用子程序的时候要注意堆栈,为什么呢?



周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2006-07-03 22:34:00
1楼
如果主任叫你,你就把手头的活停下来。先把你现在干活的图纸、工具收拾好,再拿上谈话要用的资料。图纸放在口袋(堆栈)里,资料拿在手里。 回来以后,资料装到口袋里,图纸拿到手里接着干活。 因为忘性比较好,或者主任要看你的图纸,所以搁在哪个口袋要记住。 ‘ACALL’是短调用,这里的‘短’是指调用的子程序在 +/-128 字节地址以内;相应的是长调用‘LCALL’,可在 64K 范围内。调用子程序前要‘保护’好现在的数据,记得在什么地方,以供返回后使用或者给子程序中传递参数使用。 使用 PLM 、C 等高级语言时,调用的地址和压栈、弹出等操作是由编译程序自动完成的。

虞先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2006年6月19日
发表于:2006-07-07 16:58:00
2楼
周公的比方很形象,要注意堆栈的原因之一是因为51的堆栈是在片内RAM中,复位后堆栈指针指向07H,堆栈向上增长,如果不加控制,就有可能覆盖到数据区,造成数据出错或者调用程序返回出错,所以要加以注意。

liuyangvic

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 46回
  • 年度积分:0
  • 历史总积分:198
  • 注册:2006年7月09日
发表于:2006-07-10 23:58:00
3楼
周公正解!

阳辉

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 41回
  • 年度积分:0
  • 历史总积分:78
  • 注册:2005年11月17日
发表于:2006-07-13 13:54:00
4楼
小弟看了之后 发现又知道了好多!谢谢!

山水

  • 精华:4帖
  • 求助:0帖
  • 帖子:128帖 | 2238回
  • 年度积分:0
  • 历史总积分:3675
  • 注册:2004年1月06日
发表于:2006-07-13 21:02:00
5楼
谢谢周公

liweihong

  • 精华:1帖
  • 求助:0帖
  • 帖子:7帖 | 63回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2004年11月08日
发表于:2006-07-14 16:21:00
6楼
周公热心人呀!

护花使者

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 15回
  • 年度积分:0
  • 历史总积分:74
  • 注册:2006年7月19日
发表于:2006-07-20 10:45:00
7楼
ACALL’是短调用,这里的‘短’是指调用的子程序在 +/-128 字节地址以内;相应的是长调用‘LCALL’,可在 64K 范围内,买本书学一下吧

hanfahui

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 20回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2006年3月15日
发表于:2006-07-20 14:49:00
8楼
周公的比喻用得不错,解释不错

雨下

  • 精华:6帖
  • 求助:0帖
  • 帖子:17帖 | 184回
  • 年度积分:0
  • 历史总积分:265
  • 注册:2006年3月15日
发表于:2006-08-09 17:51:00
9楼
周公,不愧为周公啊!不但会解梦,就连科学知识解的也是那么的精湛。周公前辈我们学习的楷模!

一元

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 345回
  • 年度积分:0
  • 历史总积分:281
  • 注册:2006年7月18日
发表于:2007-01-12 13:29:00
10楼
周公热心人呀!
学习学习

宝天华物

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 27回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2006年2月12日
发表于:2007-01-14 11:07:00
11楼
感觉一般用lcall

热门招聘
相关主题

官方公众号

智造工程师