打印

上下文切换中的两类寄存器

[复制链接]
1500|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qjhu0433|  楼主 | 2008-9-28 12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在操作系统中有一个关键的操作是上下文切换,上下文切换中有两类寄存器,在不同CPU上的C手册上有不同的叫法,下面列出一些CPU的不同叫法.
 
AVR                   call saved             call used
MSP430              callee                   caller
TMS320F2812     Save on Entry      Save on Call
 
    开始看这些文档时,理解起来很费力.后来慢慢体会到了原来两种寄存器保护责任者不同而已.在正常的函数调用过程中(不考虑中断情况),两种责任者是调用函数和被调函数,或者叫父函数和子函数.
 
    父函数在调用一个子函数之前负责保护的这一批寄存器叫Save on Call,子函数可以任意使用这些寄存器而不用预先保护它们;还有另外一批寄存器Save on Entry,子函数需要使用时必须提前保护,这些寄存器在父函数那里不会得到保护.

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

10

帖子

1

粉丝