指 令 | 作 用 | 操 作 |
LDR | 把一个字装入一个寄存器 | Rd←mem32[address] |
STR | 将存储器中的字保存到寄存器 | Rd→mem32[address] |
LDRB | 把一个字节装入一个寄存器 | Rd←mem8[address] |
STRB | 将寄存器中的低8位字节保存到存储器 | Rd→mem8[address] |
LDRH | 把一个半字装入一个寄存器 | Rd←mem16[address] |
STRH | 将寄存器中的低16位半字保存到存储器 | Rd→mem16[address] |
LDRBT | 用户模式下将一个字节装入寄存器 | Rd←mem8[address] under user mode |
STRBT | 用户模式下将寄存器中的低8位字节保存到存储器 | Rd→mem8[address] under user mode |
LDRT | 用户模式下把一个字装入一个寄存器 | Rd←mem32[address]under user mode |
STRT | 用户模式下将存储器中的字保存到寄存器 | Rd→mem32[address] ]under user mode |
LDRSB | 把一个有符号字节装入一个寄存器 | Rd←sign{mem8[address]} |
LDRSH | 把一个有符号半字装入一个寄存器 | Rd←sign{mem16[address]} |
| 注意 | 地址对齐问题:大多数情况下,必须保证用于32位传送的地址是32位对齐的。 |
| 注意 | LDRB指令加载一个内存地址的8位字节到一个通用寄存器中。寄存器的高位数据补0。 |
| 注意 | 当PC作为位基地址出现在指令中时,指令中将会使用PC相关地址,使用这种方法可以编写自己的位置无关(position-independ)指令。 |
| 注意 | 当PC作为目标寄存器<Rd>出现在指令中时,指令的执行结果不可预知。 |
| 注意 | 如果PC作为目标寄存器,指令的执行结果不可预知。 |
| 注意 | 在包含系统控制协处理器的芯片应用中,如果定义了地址对齐检测,当bit[0]!=0时,将发生地址对齐异常。 |
| 注意 | 如果PC作为目标寄存器,指令的执行结果不可预知。 |
| 注意 | 指令的编码格式中,P位指定位“0”,也就是说LDRT指令的寻址方式为固定寻址方式,即后索引编码寻址(post_indexed_addressing_mode)。 |
| 注意 | 后索引地址模式中P=0并且W=0(即bit[21]=0、bit[24]=0)。但此指令P=0并且W=1(即bit[21]=1、bit[24]=0)。但实际的寻址操作是一样的。 |
| 注意 | LDRBT指令加载一个内存地址的8位字节到一个通用寄存器中。寄存器的高位数据补0。 |
| 注意 | LDRSB与LDRB指令的不同之处在于它将寄存器的高24位设置成该字节数据的符号位的值(即将该8位字节数据进行符号位扩展,生成32位字数据)。 |
| 注意 | LDRSH与LDRH指令的不同之处在于它将寄存器的高16位设置成该字节数据的符号位的值(即将该16位字节数据进行符号位扩展,生成32位字数据)。 |
欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |