回复:块多次调用,返回值互相干挠

volcanol

  • 帖子

    851
  • 精华

    12
  • 被关注

    58

论坛等级:奇侠

注册时间:2009-11-26

钻石 钻石 如何晋级?

发布于 2018-09-02 09:27:37

25楼

展开查看
以下是引用芳季在2018-05-12 19:51:04的发言 >6楼

同一级子程序会共享同一片L。你不相信,可以这样:

做一个子程序,没有参数的。里面只写movb 99 LB0。

又做一个子程序,没有参数,里面只写movb LB0 vb0。

然后在主程序随意次序用sm0.0调用这两个子程序。结果vb0就是99。

这个原因是因为CPU在现代操作系统在调用函数的时候,采用的是同一个基址,push stack和pup stack的时候是会存在这样的问题。


所以在使用变量(内存)之前一定要初始化。这就是一个原因。

获取资料关注:https://www.cnblogs.com/volcanol/
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8939条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。