查看: 2334|回复: 3

[其他] 请教一段程序,主要是堆栈的问题。

[复制链接]

该用户从未签到

7

主题

46

帖子

0

注册会员

Rank: 2

积分
57
最后登录
2021-9-23
发表于 2012-10-30 08:34:43 | 显示全部楼层 |阅读模式
#define  RamLast 0x086F    // RamTop
void OsInit()
{
*((INT16U*)(RamLast - 1)) = (INT16U)sModeSw;
 __asm
 {
 CLRA
 STA RamLast - 2
 STA RamLast - 3
 STA RamLast - 4
 }
 OSModeSp.wAddr = RamLast - 4;
}
void OsTmIntIsr()
{
  if(??)
    {
    OsTmIntIsrAsm();
    }
}
void OsTmIntIsrAsm()
{
 __asm
 {
 PSHH // 此处将H为什么要推入堆栈,保存下也是可以,尚能理解
 PSHX
 PSHA
 TSX // 此处SP获得的值是不是上面推入堆栈的值,具体代表什么意思没看懂。
 PSHH
 PULA
 STA OSMainOrIntSp.Byte.bAddrH //此处变量定义为联合里面加结构体。
 STX OSMainOrIntSp.Byte.bAddrL     
   
 LDX OSModeSp.Byte.bAddrL     //此处变量定义为联合里面加结构体。  此处的值又代表什么?  
 LDA OSModeSp.Byte.bAddrH      
 PSHA
 PULH
 TXS
 PULA
 PULX
 PULH
 }
}
void main()
{
 SystemInit();    //省略
 OsInit()
 sTimerInit();   //100us 一次中断,中断服务子程序OsTmIntIsr 省略一些内容
 for(;;){}
}
 
上述的Os的进,当然还有对应的出。我没看懂进去地址是怎样保存的。
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

7

主题

46

帖子

0

注册会员

Rank: 2

积分
57
最后登录
2021-9-23
 楼主| 发表于 2012-10-30 10:04:28 | 显示全部楼层

回复:请教一段程序,主要是堆栈的问题。

自己顶下,玩前后台系统的来指点下啊。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-10-30 16:33:41 | 显示全部楼层

    RE:请教一段程序,主要是堆栈的问题。

    这个怎么解释呢?建议去看看汇编基础。先把这些指令工作方式和用法详细了解一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    46

    帖子

    0

    注册会员

    Rank: 2

    积分
    57
    最后登录
    2021-9-23
     楼主| 发表于 2012-10-30 19:28:13 | 显示全部楼层

    回复:请教一段程序,主要是堆栈的问题。

    回复第 3 楼 于2012-10-30 16:33:41发表:
    这个怎么解释呢?建议去看看汇编基础。先把这些指令工作方式和用法详细了解一下。 

    你好!HCS08核心汇编指令集我已经很清楚了。只是对于返回的地址存在疑惑。特别是TSX那句,觉得返回的值就是推入堆栈H:X的值。H:X的 值是保存的地址吗?有些模糊,保存的地址也应该是前面程序跳转的PC值才有意义啊。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 22:53 , Processed in 0.093856 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表