APSR 标志位

APSR 标志位一共有4 个,分别是N Z C V


N 标志位:运行完结果如果是正数、0、大于、等于该位置0,如果是负数或
者小于该位置1


Z 标志位:运行完结果如果是0 该位置1,如果不是0,该位置0


C 标志位:加操作发生进位或者减操作没有发生借位该位置1, 加操作没有
发生进位或者减操作发生借位该位置0


V 标志位:运行结果溢出该位置1,运行结果没有溢出该位置0


Z 标志位:指令运行完结果如果是0 该位置1,如果不是0,该位置0


假如R0 里面数据是0
MOVS R0,R0
那么指令执行结果R0 里面还是0,那么这个时候Z 标志位就是1
N 标志位:指令运行完结果如果是正数、0、大于、等于该位置0,如果是负数或
者小于该位置1

例如:

MOVS R0,#0
MOVS R0,R0
BEQ label
;用户代码1
label
;用户代码2
是否跳转?


BEQ 这条指令是Z=1 跳转,那么执行完MOVS R0,R0 之后,结果影响标志位Z=1,那么这条指令就发生了跳转,跳转到label 处执行用户代码2。


MOVS R0,R0 这条指令的执行结果影响标志位。因为R0 里面是0 ,所以MOVS
的执行结果R0 里面还是0 所以Z=1

MOV 和MOVS 这两条指令有什么区别呢?
带S 的指令执行结果会影响标志位,不带S 的指令执行结果不会影响标志位,
影响标志位主要体现在标志位的变化情况。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑞莱科技

感谢您的支持,希望与您交流学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值