子程序参数传递的方法 利用寄存器实现参数传递。 ■利用内存单元实现参数传递。 ■利用堆栈实现参数传递
子程序参数传递的方法 ◼ 利用寄存器实现参数传递。 ◼ 利用内存单元实现参数传递。 ◼ 利用堆栈实现参数传递
利用寄存器实现子程序参数传递 这种方法是通过寄存器存放参数来进行 传递的,即在主程序调用子程序前,将 入口参数送到约定寄存器中;子程序可 以直接从这些寄存器中取出参数进行加 工处理,并将结果也放在约定的寄存器 中,然后返回主程序,主程序再从寄存 器中取出结果
利用寄存器实现子程序参数传递 ◼ 这种方法是通过寄存器存放参数来进行 传递的,即在主程序调用子程序前,将 入口参数送到约定寄存器中;子程序可 以直接从这些寄存器中取出参数进行加 工处理,并将结果也放在约定的寄存器 中,然后返回主程序,主程序再从寄存 器中取出结果
利用存贮单元实现子程序参数传递 这种方法是在主程序调用子程序前,将入口 参数存放到约定的存储单元(如变量)中, 子程序运行时到约定的位置读取参数;子程 序执行结束将结果也放在约定单元。我们还 可以通过用寄存器存放存储区首地址,来实 现多参数情况下的传递
利用存贮单元实现子程序参数传递 ◼ 这种方法是在主程序调用子程序前,将入口 参数存放到约定的存储单元(如变量)中, 子程序运行时到约定的位置读取参数;子程 序执行结束将结果也放在约定单元。我们还 可以通过用寄存器存放存储区首地址,来实 现多参数情况下的传递
利用堆栈实现子程序参数传递 ■利用堆栈实现参数传递的方法是在调用 子程序之前,用PUSH指令将子程序的入 口参数压入堆栈,在子程序中通过出栈 指令依次得到这些参数。经过子程序操 作处理后再将子程序的出口参数压入堆 栈,返回主程序后再通过出栈指令获得 结果。一般只通过堆栈传入口参数
利用堆栈实现子程序参数传递 ◼ 利用堆栈实现参数传递的方法是在调用 子程序之前,用PUSH指令将子程序的入 口参数压入堆栈,在子程序中通过出栈 指令依次得到这些参数。经过子程序操 作处理后再将子程序的出口参数压入堆 栈,返回主程序后再通过出栈指令获得 结果。一般只通过堆栈传入口参数
■利用堆栈实现参数传递是最重要的方法 在使用这种方式传递参数时,特别要注 意堆栈的使用情况,一是子程序返回地 址的保护与恢复要占用堆栈(因为是计 算机自动实现的,特别容易疏忽) 是要保持堆栈的平衡,可以通过使用RET n指令来完成
◼ 利用堆栈实现参数传递是最重要的方法。 在使用这种方式传递参数时,特别要注 意堆栈的使用情况,一是子程序返回地 址的保护与恢复要占用堆栈(因为是计 算机自动实现的,特别容易疏忽);二 是要保持堆栈的平衡,可以通过使用RET n指令来完成