单片机中RET的用法

2024-11-14 11:29:50
推荐回答(4个)
回答1:

楼主的程序,不全。
楼主的程序,肯定是有错的,所以 RET 不能正常执行。

因此,讨论 RET 的用法,并无意义。

毛病,一定是在其它方面。
楼主应该把省略的代码,都显示出来。

回答2:

ret指令用栈中的数据,修改IP的内容,从而实现近转移;
CPU执行ret指令时,进行下面两步操作:
(1)(IP)=((ss)*16+(sp))
(2)(sp)=(sp)+2
CPU执行ret指令时,相当于进行: pop IP,程序中ret指令执行后,(IP)=0,CS:IP指向代码段的第一条指令。

回答3:

你仿真时在AJMP MAIN设个断点,就可以看到RET后程序会运行到这里,你Debug 看不到是因为单步步长有问题,比如Proteus里面的步进仿真,实际上不是逐个指令周期停下来的。

回答4:

正常的应该跳回到AJMP MAIN.