一个关于单片机汇编的返回指令问题,求解惑

[复制链接]
查看11 | 回复3 | 2013-8-16 12:51:20 | 显示全部楼层 |阅读模式
没有调用过,向哪里返回???你大概还不清楚跳转和返回的区别。返回指令会在后台从栈中取出之前调用时压栈的地址,而你从未调用过,栈里天知道是什么东西,自然就跑飞了。...
回复

使用道具 举报

千问 | 2013-8-16 12:51:20 | 显示全部楼层
sjmp指令用在倒数第二行只是为了让主程序循环执行。 ret指令是用于从子程序返回,你在主程序里使用,返回后到了哪里? 我真不清楚。 使用CALL指令调用子程序后,单片机是会自动压栈当前程序指针到堆栈里,当遇到RET指令后,单片机会自动从堆栈里弹出程序指针以继续执行CALL后的语句。 如此看来,使用RET指令前没有压栈程序指针,之后弹...
回复

使用道具 举报

千问 | 2013-8-16 12:51:20 | 显示全部楼层
RET这条指令的功能是从堆栈中退出PC的高8位和低8位字节,把栈指针SP减2,并从产生的PC值开始执行程序;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行