ARM学习笔记4——加载存储指令

一、字数据传送指令

作用:用于把单一的数据传入或者传出一个寄存器。

  1、LDR指令

    1.1、作用

      根据<addr_mode>所确定的地址模式从内存中将一个32位的字段读取到目标寄存器<Rd>,如果指令中的寻址方式确定的地址不是字对齐的,则读出的数值要进行循环右移。

    1.2、语法格式

      LDR{<condition>} <Rd>,<addr_mode>

    1.3、参数说明

      <Rd>确定使用哪个通用寄存器作为目标寄存器

      <addr_mode>确定了指令编码中的I、P、U、W、Rn和<addr_mode>位

  2、STR指令

    2.1、作用

      将一个32位的字数据写入到指令中指定的内存单元

    2.2、语法格式

      STR{<condition>} <Rd>,<addr_mode>

二、字节数据传送指令(LDRB/STRB)

  1、LDRB指令

    1.1、作用

      根据<addr_mode>所确定的地址模式将一个8位字节读取到指令中的目标寄存器<Rd>

    1.2、语法格式 LDR{<condition>}B <Rd>,<addr_mode>

  2、STRB指令

    2.1、作用

      从寄存器中取出指定的8位字节放入指令中指定的内存单元的低8位,并将其高位补0

    2.2、语法格式 STR{<condition>}B <Rd>,<addr_mode>

三、半字数据传送指令(LDRH/STRH)

  1、LDRH

    1.1、作用

      从内存中将一个16位的半字读取到目标寄存器

    1.2、语法格式

      LDR{<condition>}H <Rd>,<addr_mode>

  2、STRH

    2.1、作用

      从寄存器中取出知道你个的16位半字放入指令中指定的内存单元的低16位,并将其高位补0

    2.2、语法格式

      STR{<condition>}H <Rd>,<addr_mode>

四、用户模式字数据传送指令

  1、LDRT

    1.1、作用

      在用户模式下,根据<addr_mode>所确定的地址模式从内存中将一个32位的字读取到目标寄存器<Rd>

    1.2、语法格式

      LDR{<condition>}T <Rd>,<post_indexed_addressing_mode>

    1.3、参数说明

      <post_indexed_address_mode>:使用后索引地址模式寻址

  2、STRT

    2.1、作用

      将一个32位的字数据写入到指令中指定的内存单元

    2.2、语法格式

      STR{<condition>}T <Rd>,<post_indexed_addressing_mode>

五、用户模式字节数据传送指令

  1、LDRBT指令

    1.1、作用

      根据<post_indexed_addressing_mode>地址模式将一个8位字节读取到指令中的目标寄存器<Rd>

    1.2、语法格式

      LDR{<condition>}BT <Rd>,<post_indexed_addressing_mode>

  2、STRBT指令

    2.1、作用

      将一个8位的字节数据写入到指令中指定的内存单元

    2.2、语法格式

      STR{<condition>}BT <Rd>,<addr_mode>,<post_indexed_addressing_mode>

六、有符号的字节/半字数据传送指令

  1、LDRSB指令

    1.1、作用

      根据<addr_mode>所确定的地址模式将一个8位字节读取到指令中的目标寄存器<Rd>

    1.2、语法格式

      LDR{<condition>}SB <Rd>,<addr_mode>

  2、LDRSH指令

    2.1、作用

      根据<addr_mode>所确定的地址模式将一个16位半字读取到指令中的目标寄存器<Rd>

    2.2、语法格式

      LDR{<condition>}SH <Rd>,<addr_mode>

posted @ 2014-01-23 16:59  LOSER Z  阅读(3194)  评论(0编辑  收藏  举报