arm汇编指令strex
时间: 2024-02-12 17:06:51 浏览: 80
ARM汇编指令`strex`用于将一个寄存器的值存储到存储器中的指定地址,并在存储过程中执行一次“比较和交换”(compare and swap)操作。该指令的语法格式如下:
```
strex{cond} {type}, Rt, Rn, [Rm]
```
其中,`{cond}`是可选的条件码;`{type}`是可选的存储类型(`b`表示字节,`h`表示半字,`d`或者没有则表示双字);`Rt`是要存储的寄存器,通常是R0-R15之间的寄存器;`Rn`是存储器地址的基址寄存器;`[Rm]`是存储器地址偏移量的寄存器。
该指令的作用是将`Rt`寄存器的值存储到地址`Rn+[Rm]`处,并在存储过程中执行一次“比较和交换”操作。该操作的目的是为了避免多个线程同时修改同一个共享内存区域的冲突问题。如果比较和交换操作成功,则`Rt`寄存器的值被存储到指定的内存地址中,并返回0;否则,`Rt`寄存器的值未被存储到内存中,返回非0值表示操作失败。
阅读全文