ARM 汇编指令
来源:互联网 发布:java代码如何打包tar 编辑:程序博客网 时间:2024/06/16 00:17
1、str 指令
<code class="hljs avrasm has-numbering"> **- 格式** STR{条件} 源寄存器,<存储器地址> STR指令用亍从源寄存器中将一个<span class="hljs-number">32</span>位的字数据传送到存储器中。 **- 案例**STR <span class="hljs-built_in">R0</span>,[<span class="hljs-built_in">R1</span>],#<span class="hljs-number">8</span> ;将<span class="hljs-built_in">R0</span>中的字数据写入以<span class="hljs-built_in">R1</span>为地址的存储器中,并将新地址<span class="hljs-built_in">R1</span>+<span class="hljs-number">8</span>写入<span class="hljs-built_in">R1</span>。STR <span class="hljs-built_in">R0</span>,[<span class="hljs-built_in">R1</span>,#<span class="hljs-number">8</span>] ;将<span class="hljs-built_in">R0</span>中的字数据写入以<span class="hljs-built_in">R1</span>+<span class="hljs-number">8</span>为地址的存储器中。</code>
2、ORR指令(逻辑 或)
<code class="hljs avrasm has-numbering"> **- 格式** ORR{条件}{S} 目的寄存器,操作数<span class="hljs-number">1</span>,操作数<span class="hljs-number">2</span>ORR指令用于在两个操作数上进行逻辑或运算,并把结果放置到目的寄存器中。操作数<span class="hljs-number">1</span>应是一个寄存器,操作数<span class="hljs-number">2</span>可以是一个寄存器,被移位的寄存器,或一个立即数。该指令常用于设置操作数<span class="hljs-number">1</span>的某些位。 **- 案例**ORR <span class="hljs-built_in">R0</span>,<span class="hljs-built_in">R0</span>,#<span class="hljs-number">3</span> ;该指令设置<span class="hljs-built_in">R0</span>的<span class="hljs-number">0</span>、<span class="hljs-number">1</span>位,其余位保持不变。</code>
3、BIC指令(位清零)
<code class="hljs avrasm has-numbering"> **- 格式** BIC {条件} {S} 目的寄存器,操作数<span class="hljs-number">1</span>,操作数<span class="hljs-number">2</span>BIC指令用于清除操作数<span class="hljs-number">1</span>的某些位,并把结果放置到目的寄存器中。操作数<span class="hljs-number">1</span>应是一个寄存器,操作数<span class="hljs-number">2</span>可以是一个寄存器,被移位的寄存器,或一个立即数。 操作数<span class="hljs-number">2</span>为<span class="hljs-number">32</span>位的掩码,如果在掩码中设置了某一位,则清除这一位。未设置的掩码位保持不 变。 **- 案例**BIC <span class="hljs-built_in">R0</span>,<span class="hljs-built_in">R0</span>,#%<span class="hljs-number">1011</span> ;该指令清除<span class="hljs-built_in">R0</span>中的位 <span class="hljs-number">0</span>、<span class="hljs-number">1</span>、和 <span class="hljs-number">3</span>,其余的位保持不变。</code>
4、MRS指令
<code class="hljs avrasm has-numbering"> **- 格式** MRS{条件} 通用寄存器 程序状态寄存器(CPSR或<span class="hljs-built_in">SPSR</span>)MRS指令用于将程序状态寄存器的内容传送到通用寄存器中。该指令一般用在以下两种情况:Ⅰ.当需要改变程序状态寄存器的内容时,可用MRS将程序状态寄存器的内容读入通用寄存器,修改后再写回程序状态寄存器。Ⅱ.当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令读出程序状态寄存器的值,然后保存。 **- 案例**MRS <span class="hljs-built_in">R0</span>,CPSR ;传送CPSR的内容到<span class="hljs-built_in">R0</span>MRS <span class="hljs-built_in">R0</span>,<span class="hljs-built_in">SPSR</span> ;传送 <span class="hljs-built_in">SPSR</span>的内容到<span class="hljs-built_in">R0</span></code>
5、MSR指令
<code class="hljs avrasm has-numbering"> **- 格式** MSR{条件} 程序状态寄存器(CPSR或<span class="hljs-built_in">SPSR</span>)_<域>,操作数MSR指令用于将操作数的内容传送到程序状态寄存器的特定域中。其中,操作数可以为通用寄存器或立即数。<域>用于设置程序状态寄存器中需要 操作的位,<span class="hljs-number">32</span>位的程序状态寄存器可分为<span class="hljs-number">4</span>个域:位[<span class="hljs-number">31</span>:<span class="hljs-number">24</span>]为条件位域,用f表示;位[<span class="hljs-number">23</span>:<span class="hljs-number">16</span>]为状态位域,用s表示;位[<span class="hljs-number">15</span>:<span class="hljs-number">8</span>] 为扩展位域,用<span class="hljs-built_in">x</span>表示;位[<span class="hljs-number">7</span>:<span class="hljs-number">0</span>] 为控制位域,用c表示;该指令通常用于恢复或改变程序状态寄存器的内容,在使用时,一般要在MSR指令中指明将要操作的域。 **- 案例**MSR CPSR,<span class="hljs-built_in">R0</span> ;传送<span class="hljs-built_in">R0</span>的内容到CPSRMSR <span class="hljs-built_in">SPSR</span>,<span class="hljs-built_in">R0</span> ;传送<span class="hljs-built_in">R0</span>的内容到<span class="hljs-built_in">SPSR</span>MSR CPSR_c,<span class="hljs-built_in">R0</span> ;传送<span class="hljs-built_in">R0</span>的内容到<span class="hljs-built_in">SPSR</span>,但仅仅修改CPSR中的控制位域</code>
0 0
- ARM 汇编伪指令
- ARM汇编指令集
- GNU ARM汇编指令
- 常用ARM汇编指令
- ARM汇编指令集
- ARM汇编伪指令
- ARM汇编伪指令
- ARM汇编指令集
- ARM汇编伪指令
- GNU ARM 汇编指令
- ARM汇编指令集
- arm 汇编指令 积累
- ARM汇编指令集
- ARM汇编指令集
- ARM常用汇编指令
- ARM汇编指令集
- GNU ARM 汇编指令
- ARM汇编指令集
- codeforces723c
- Scroll与Layer中的touch冲突
- Javascript入门笔记1-script标签
- matrix7
- 七、Lua中的协同程序
- ARM 汇编指令
- html table标签 用法
- 使用新浪SAE开发微信公众号 验证Token却一直失败
- 可支持向量机SVM(support vector machine)基础
- <设计模式18>命令模式
- oracle中行,列的转换(列求和)
- matrix8
- HDU:2266 How Many Equations Can You Find(深搜+DFS)
- 第29周-鸟哥的Linux私房菜基础篇第三版-第一章