程序状态寄存器访问指令
2011-01-11 11:25
288 查看
[align=left]1、 MRS 指令[/align]
[align=left]MRS 指令的格式为:[/align]
[align=left]MRS{条件} 通用寄存器,程序状态寄存器(CPSR 或SPSR)[/align]
[align=left]MRS 指令用于将程序状态寄存器的内容传送到通用寄存器中。该指令一般用在以下两种情况:[/align]
[align=left]Ⅰ.当需要改变程序状态寄存器的内容时,可用MRS 将程序状态寄存器的内容读入通用寄存器,修改后再写回程序状态寄存器。[/align]
[align=left]Ⅱ.当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令读出程序状态寄存器的值,然后保存。[/align]
[align=left]指令示例:[/align]
[align=left]MRS R0,CPSR ;传送CPSR 的内容到R0[/align]
[align=left]MRS R0,SPSR ;传送SPSR 的内容到R0[/align]
[align=left] [/align]
[align=left]2、 MSR 指令[/align]
[align=left]MSR 指令的格式为:[/align]
[align=left]MSR{条件} 程序状态寄存器(CPSR 或SPSR)_<域>,操作数[/align]
[align=left]MSR 指令用于将操作数的内容传送到程序状态寄存器的特定域中。其中,操作数可以为通用寄存器或立即数。<域>用于设置程序状态寄存器中需要操作的位,32 位的程序状态寄存器可分为4个域:[/align]
[align=left]位[31:24]为条件标志位域,用f 表示;[/align]
[align=left]位[23:16]为状态位域,用s 表示;[/align]
[align=left]位[15:8]为扩展位域,用x 表示;[/align]
[align=left]位[7:0]为控制位域,用c 表示;[/align]
[align=left]该指令通常用于恢复或改变程序状态寄存器的内容,在使用时,一般要在MSR 指令中指明将要操作的域。[/align]
[align=left]指令示例:[/align]
[align=left]MSR CPSR,R0 ;传送R0 的内容到CPSR[/align]
[align=left]MSR SPSR,R0 ;传送R0 的内容到SPSR[/align]
[align=left]MSR CPSR_c,R0 ;传送R0 的内容到SPSR,但仅仅修改CPSR 中的控制位域[/align]
[align=left]MRS 指令的格式为:[/align]
[align=left]MRS{条件} 通用寄存器,程序状态寄存器(CPSR 或SPSR)[/align]
[align=left]MRS 指令用于将程序状态寄存器的内容传送到通用寄存器中。该指令一般用在以下两种情况:[/align]
[align=left]Ⅰ.当需要改变程序状态寄存器的内容时,可用MRS 将程序状态寄存器的内容读入通用寄存器,修改后再写回程序状态寄存器。[/align]
[align=left]Ⅱ.当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令读出程序状态寄存器的值,然后保存。[/align]
[align=left]指令示例:[/align]
[align=left]MRS R0,CPSR ;传送CPSR 的内容到R0[/align]
[align=left]MRS R0,SPSR ;传送SPSR 的内容到R0[/align]
[align=left] [/align]
[align=left]2、 MSR 指令[/align]
[align=left]MSR 指令的格式为:[/align]
[align=left]MSR{条件} 程序状态寄存器(CPSR 或SPSR)_<域>,操作数[/align]
[align=left]MSR 指令用于将操作数的内容传送到程序状态寄存器的特定域中。其中,操作数可以为通用寄存器或立即数。<域>用于设置程序状态寄存器中需要操作的位,32 位的程序状态寄存器可分为4个域:[/align]
[align=left]位[31:24]为条件标志位域,用f 表示;[/align]
[align=left]位[23:16]为状态位域,用s 表示;[/align]
[align=left]位[15:8]为扩展位域,用x 表示;[/align]
[align=left]位[7:0]为控制位域,用c 表示;[/align]
[align=left]该指令通常用于恢复或改变程序状态寄存器的内容,在使用时,一般要在MSR 指令中指明将要操作的域。[/align]
[align=left]指令示例:[/align]
[align=left]MSR CPSR,R0 ;传送R0 的内容到CPSR[/align]
[align=left]MSR SPSR,R0 ;传送R0 的内容到SPSR[/align]
[align=left]MSR CPSR_c,R0 ;传送R0 的内容到SPSR,但仅仅修改CPSR 中的控制位域[/align]
相关文章推荐
- 11_ARM汇编自学笔记指令系统之程序状态寄存器访问指令
- C#编写的生成缩略图程序
- 聊天程序的初步想法
- 使程序单实例运行
- 在Erlang程序里处理状态
- 爬虫/蜘蛛程序的制作(C#语言)(备忘录)
- 比较两文件是否完全相同的程序---帮助试验压缩程序
- 第一课 简介及第一个java程序
- 发布Web程序时“类型ASP.global_asax同时存在于...”错误解决办法
- Haskell小程序
- 在非MFC程序中引用CString
- 组策略发布.exe程序
- Mongodb源码分析--主程序入口main()
- windows服务安装程序制作过程【转】
- IBM总架构师寇卫东:话说程序员的职业生涯-IT程序人生-职业生涯规划
- 程序编译和链接
- PhoneGap演示程序
- 理解可执行程序的各种神器
- 10年+程序人生感悟
- eclipse测试C++程序01-scanf结构体输入浮点数、浮点数的表示