如何将特定内存值与先前存储在另一个寄存器中的其他值进行移位

问题描述 投票:0回答:1

我正在尝试访问寄存器 R3 中第二个字节的值,然后将该值替换为存储在 R8 中的值。

我想出了这个

LDRSB LSR[R3,#1], R8
,我使用了SB,因为第二个字节也是一个带符号的数字,但显然这在汇编代码语法中不被接受,这与我尝试做的等效是什么?

assembly arm
1个回答
0
投票

如果该值在内存中,则使用单变址寻址模式访问第二个字节:

strb r8, [r3, #1]   @ store R8 to second byte of memory at R3

如果值在寄存器中,请使用

bfi
指令:

bfi r3, r8, #8, #8  @ copy low 8 bits of R8 into bits 8--15 of R3
© www.soinside.com 2019 - 2024. All rights reserved.