第十章call和ret指令课件源代码.pptxVIP

  • 4
  • 0
  • 约2.29千字
  • 约 20页
  • 2022-07-26 发布于北京
  • 举报
10.7 call 和 ret 的配合使用2我们看一下程序的主要执行过程:(1)前三条指令执行后,栈的情况如下:(2)call 指令读入后,(IP) =000EH,CPU指令缓冲器中的代码为 B8 05 00; CPU执行B8 05 00,首先,栈中的情况变为: 然后,(IP)=(IP) =0013H。10.7 call 和 ret 的配合使用2(3)CPU从cs:0013H处(即标号s处)开始执行。(4)ret指令读入后:(IP)=0016H,CPU指令缓冲器中的代码为 C3; 当CPU执行C3,相当于进行pop IP,执行后,栈中的情况为: (IP)=000EH;10.7 call 和 ret 的配合使用2(5)CPU回到 cs:000EH处(即call指令后面的指令处)继续执行。从上面的讨论中我们发现,可以写一个具有一定功能的程序段,我们称其为子程序,在需要的时候,用call指令转去执行。10.7 call 和 ret 的配合使用2可是执行完子程序后,如何让CPU接着call指令向下执行?没错,答案就是ret。call指令后面的指令的地址将存储在栈中,所以可以在子程序的后面使用 ret 指令,用栈中的数据设置IP的值,从而转到 call 指令后面的代码处继续执行。10.7 call 和 ret 的配合使用2这样,我们可以利用call和ret来实现子程序的机制。我们来看

文档评论(0)

1亿VIP精品文档

相关文档