s********a 发帖数: 1447 | 1 当运行一个程序时
如果这个程序 调用一个子程序 子程序在memory里的frame是这样的
global variable, 然后 子程序 输入参数, 然后 返回地址, 然后 stack
linker register里面也是存返回地址的
这2个返回地址有什么不同吗?
link register里面存子程序的memory frame里的返回地址吗?
请高人指点
谢谢 |
s********a 发帖数: 1447 | |
t**n 发帖数: 272 | 3 如果这个子程序是一个leaf sub (它不再调用其它程序)
用link register里的返回地址会让返回快一点
但是如果它不是leaf sub, somehow link register里的值是会变的
你这是面embedded software?
【在 s********a 的大作中提到】 : 当运行一个程序时 : 如果这个程序 调用一个子程序 子程序在memory里的frame是这样的 : global variable, 然后 子程序 输入参数, 然后 返回地址, 然后 stack : linker register里面也是存返回地址的 : 这2个返回地址有什么不同吗? : link register里面存子程序的memory frame里的返回地址吗? : 请高人指点 : 谢谢
|
s********a 发帖数: 1447 | 4 是啊~
你是说 子程序的返回地址 是会放到link register的 对吧?
"但是如果它不是leaf sub, somehow link register里的值是会变的" 这个怎么变?
【在 t**n 的大作中提到】 : 如果这个子程序是一个leaf sub (它不再调用其它程序) : 用link register里的返回地址会让返回快一点 : 但是如果它不是leaf sub, somehow link register里的值是会变的 : 你这是面embedded software?
|