目录str和stur存储指令ldr和ldur读取指令
虽然经常看到xcode切换中出现stur和ldur等命令,但是网上的资料并不多,所以今天总结做:
str和stur存储命令
这是用于将寄存器的内容存储在右侧地址的一对存储器指令,使用形式为以下:
str寄存器、[存储器地址]
sur寄存器、[存储器地址]
例如,以下汇编代码
str w11,[x10,#0xa0]
stur w12,[x29,#-0x18]
出于功能的原因,这两个指令一般相对应,存储数值,并且例如向变量指派:
int a=3; 将c赋值给局部变量对应于以下程序集代码:
mov w12、#0x3stur w12、[x29,#-0x18] mov首先将3分配给寄存器w12,然后stur存储命令将w12寄存器的内容写入存储器地址x29、#-0x18。
全局变量int g_a=0;
g_a=10; mov w11、#0xastr w11、[x10、#0xa0] mov首先将10=16进制0xa代入w11
str存储命令将w11的内容写入存储器地址x10、#0xa0。
ldr和ldur读取命令跟在上面的代码之后
int c1=g_a; 上面g_a的内容已经由str写入地址:x10、#0xa0中,
然后,要将g_a的值指定给c1,需要以下命令:
ldr w12、[x10,#0xa0]stur w12、[x29,#-0x14] ldr将内存x10、#0xa0的内容读取到w12中,
sur将w12的内容写入x29、#-0x14存储器,x29、#-0x14是变量c1的地址
ldur的功能与ldr相同,均为读取,但寄存器的使用不同