时间:2024-08-19 00:01:27
汇编——子程序调用参数传递的三种方式(示例程序:三个数累加求和)
程序示例: 假设 :N1=1234H,N2=2345H,N3=3456H, 计算并显示这 3 个数的累加和,并用二进制形式显示结果
1.通过寄存器传递参数:调用子程序前,调用程序把入口参数放在约定的寄存器中,子程序执行时,通过约定的寄存器取得入口参数;返回时,子程序把出口参数存放在约定的寄存器中,调用程序通过约定的寄存器中取得出口参数。
2.通过堆栈传递参数:子程序调用前,调用程序把参数依次压入堆栈,构成一个堆栈参数表,当子程序调用时,子程序从堆栈中取出各参数。子程序返回时,要使用 RET n 指令调整SP指针,其中n是堆栈参数表的大小,即使用完堆栈之后删除堆栈参数表,使堆栈恢复到原始状态,也就是文章开始提到的“平栈”。
3.通过变量传递参数:如果子程序和调用程序都在同一个源文件中,则双方可以直接访问模块中的变量,从而实现参数传递。
《子程序的参数传递有哪些方法》不代表本网站观点,如有侵权请联系我们删除
精彩推荐