数据传送指令之:单寄存器的Load/Store指令
5.3.2 字节数据传送指令(LDRB/STRB)
1.LDRB指令
(1)指令编码格式
LDRB指令根据addr_mode>所确定的地址模式将一个8位字节读取到指令中的目标寄存器Rd>。
指令的编码格式如图5.5所示。
图5.5 LDRB指令编码格式
注意 | LDRB指令加载一个内存地址的8位字节到一个通用寄存器中。寄存器的高位数据补0。 |
(2)指令的语法格式
LDR{cond>}B Rd>,addr_mode>
① cond>
为指令编码中的条件域。它指示LDRB指令在什么条件下执行。当cond>忽略时,指令为无条件执行(cond=AL(Alway))。
② Rd>
确定使用哪个通用寄存器作为目标寄存器。
③ addr_mode>
它确定了指令编码中的I、P、U、W、Rn和addr_mode>位。所有的寻址模式中,都会确定一个基址寄存器Rn。
(3)指令操作的伪代码
if ConditionPassed{cond} then
Rd = Memory[address,1]
注意 | 当PC作为位基地址出现在指令中时,指令中将会使用PC相关地址,使用这种方法可以编写自己的位置无关(position-independ)指令。 |
2.STRB指令
(1)指令编码格式
STRB指令从寄存器中取出指定的8位字节放入寄存器的低8位,并将寄存器的高位补0。
指令的编码格式如图5.6所示。
图5.6 STRB指令编码格式
(2)指令的语法格式
STR{cond>}B Rd>,addr_mode>
① cond>
为指令编码中的条件域。它指示STRB指令在什么条件下执行。当cond>忽略时,指令为无条件执行(cond=AL(Alway))。
② Rd>
确定使用哪个通用寄存器作为目标寄存器。
注意 | 当PC作为目标寄存器Rd>出现在指令中时,指令的执行结果不可预知。 |
③ addr_mode>
它确定了指令编码中的I、P、U、W、Rn和addr_mode>位。所有的寻址模式中,都会确定一个基址寄存器Rn。
存储器相关文章:存储器原理
评论