查看: 1456|回复: 3

[其他] 中断代码中最后是否需要asm rti

[复制链接]

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
71
最后登录
2016-12-28
发表于 2015-9-19 21:56:04 | 显示全部楼层 |阅读模式
   在一些程序中看到在中断程序的最后都添加了 asm rti;这条中断返回语句,但是看到有些代码却又没有如:
#pragma CODE_SEG __NEAR_SEG NON_BANKED

interrupt void PIT2ISR(void)
{
  PITTF_PTF2 = 1;
  asm rti;  //强制  
}


#pragma DATA_SEG DEFAULT

asm rti,执行了:

SP<---(SP) + 0X0001;
SP<---(SP) + 0X0001;
SP<---(SP) + 0X0001;
SP<---(SP) + 0X0001;
SP<---(SP) + 0X0001;

我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
71
最后登录
2016-12-28
 楼主| 发表于 2015-9-19 21:59:18 | 显示全部楼层
接上:
asm rti,执行了:
SP<---(SP) + 0X0001;
PULL(CCR)
SP<---(SP) + 0X0001;
PULL(A)
SP<---(SP) + 0X0001;
PULL(X)
SP<---(SP) + 0X0001;
PULL(PCH)
SP<---(SP) + 0X0001;
PULL(PCL)

那么添加了这条语句会涉及到出栈,那么添加和不添加的条件是什么?什么时候该加,什么时候该不加?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-8-30 16:02
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2015-9-19 23:15:37 | 显示全部楼层
    asm rti是什么指令
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    9

    帖子

    0

    注册会员

    Rank: 2

    积分
    71
    最后登录
    2016-12-28
     楼主| 发表于 2015-10-9 08:47:55 | 显示全部楼层

    中断返回指令~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 14:01 , Processed in 0.089730 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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