MOVS 里的S其实只是一个影响标志位的参数,加了S表示这个MOV指令会影响CPSR(当前程序状态寄存器)中的标志位,至于标志位详细可以自行翻资料看看 N位 结果是否为负数,C位:进位移位借位溢出位 V位:overflow位 Z位:结果是否为0 。你这里的程序的话 看这一句应该是 非零立即数赋值0x03给寄存器R0,所以0标志位会清零,表示结果不为0,所以会影响标志位,所以加了S参数。
#ADDR0代表一个8位立即数,这条指令就是把这个数送到R0寄存器中。比如:MOV R0,#40H