CM3 在一定程度上支持对 64 位整数。其中 LDRD/STRD 就是为 64 位整数的数据传送而 设的,语法格式为:
LDRD.W RL, RH, [Rn, #+/-offset] {!};可选预索引的 64 位整数加载 LDRD.W RL, RH, [Rn],#+/-offset ;后索引的 64 位整数加载
STRD.W RL, RH, [Rn, #+/-offset] {!};可选预索引的 64 位整数存储 STRD.W RL, RH, [Rn],#+/-offset ;后索引的 64 位整数存储
例如,记 (0x1000)= 0x1234_5678_ABCD_EF00:则 LDR R2, =0x1000 ; LDRD.W R0, R1, [R2] 执行后,
R0= 0xABCD_EF00, R1=0x1234_5678 同理,我们也可以使用 STRD 来存储 64 位整数。在上面的例子执行完毕后,若执行如 下代码: STRD.W R1, R0, [R2] 执行后, (0x1000)=0xABCD_EF00_1234_5678,从而实现了双字的字序反转操作。
ldrd/strd的使用方法
最新推荐文章于 2023-10-16 10:49:29 发布