OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4322|回复: 1

关于中断汇编程序中的 cps 指令的疑问

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2020-2-15
在线时间
3 小时
发表于 2020-2-16 13:10:58 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 bangbangboom 于 2020-2-16 13:13 编辑

自己在学习编写汇编程序时有一个疑问始终解不开:
参考《正点原子Linux开发手册》中的GPIO中断实验的 汇编start.s编写例程 ,里面有一句
          cps #0x13 /* 进入 SVC 模式,允许其他中断再次进去 */

我百度一下,参考《飞思卡尔汇编指令集》里面给出的解释是:将sp的内容减去M单元的2B数据,结果不返回,操作影响CCR。(如下图)
cps指令.png

对此解释,我还是不能理解:为什么 cps #013 就是进入SVC模式呢?唯一能与之结合起来的就是在其之前设置进入SVC模式的代码:
  1. /* 进入SVC模式 */
  2.          mrs  r0, cpsr
  3.          bic   r0, r0, #0x1F
  4.          orr   r0, r0, #0x13
  5.         msr   cpsr, r0
  6.         ldr         sp, =0x80200000
复制代码

    求助大佬,有谁能帮我一下解释一下 cps #0x13 这行代码的作用呢

搜狗截图20200216130451.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2015-11-21
在线时间
9 小时
发表于 2020-9-8 10:34:32 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 16:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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