是否可以将寄存器加载链接到自身?
Is it possible to load-linked a register to itself?
是否可以将寄存器加载链接到自身?
我的课本上有一行MIPS(R2000)的汇编代码是这样写的:
ll $r2, 0($r2)
这是正确的吗?
如果正确:当$r2
中的原始内容不重要但只想将值存储到$r2
中并且他不希望其他人存储在时,是否使用此指令同一时间?
LL 不会阻止任何人存储到加载的地址,它只会检查是否有人这样做。
我认为您发布的 LL 指令是合法的。到那时它是否有意义取决于程序还做了什么。
有可能该地址也存储在其他地方,稍后从其他地方读取以调用 SC。
参考手册中的修改示例:
L1:
ADD T1, ZERO, T0 # copy T0 -> T1
LL T1, (T1) #
ADDI T2, T1, 1 # increment
SC T2, (T0) # try to store, checking for atomicity
BEQ T2, 0, L1 # if not atomic (0), try again
是否可以将寄存器加载链接到自身?
我的课本上有一行MIPS(R2000)的汇编代码是这样写的:
ll $r2, 0($r2)
这是正确的吗?
如果正确:当$r2
中的原始内容不重要但只想将值存储到$r2
中并且他不希望其他人存储在时,是否使用此指令同一时间?
LL 不会阻止任何人存储到加载的地址,它只会检查是否有人这样做。
我认为您发布的 LL 指令是合法的。到那时它是否有意义取决于程序还做了什么。
有可能该地址也存储在其他地方,稍后从其他地方读取以调用 SC。
参考手册中的修改示例:
L1:
ADD T1, ZERO, T0 # copy T0 -> T1
LL T1, (T1) #
ADDI T2, T1, 1 # increment
SC T2, (T0) # try to store, checking for atomicity
BEQ T2, 0, L1 # if not atomic (0), try again