指令+s对cpsr中标志位的影响
来源:互联网 发布:java ssl 单向认证 编辑:程序博客网 时间:2024/05/19 21:01
各标志位的含义如下:
所有ARM数据处理指令的乘法指令均可选择使用S后缀,并影响状态标志位。而其它指令一般不允许加S后缀,如B 、LDR、SWI、MRS等。
N 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;
例如:执行movs r0,#0x7FFFFFFF后N=0;因为R0最高位为0
执行movs r0,#0x80000000后N=1;因为R0最高位为1
执行CMP r0,r0后N=0;因为R0-R0=0x00000000;
故N一般看目标寄存器的最高位,即N = Rd[31]。
Z 指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0;
例如:执行CMP r0,r0后Z=1
执行MOVS R0,#0后Z=1
故Z一般看目标寄存器的值是否为0,Rd=0时Z=1,否则Z=0。
C 当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。当进行减法运算(包括CMP 指令),
并且最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,
其它指令C通常不变;
例如:执行 mov r0,#0xF0000000
ADDS R0,R0,R0
后C=1;
执行 SUBS R2,R2,R2后C=1,因为R2-R2=0不需要借位。
执行 CMP R3,R3后C=1;
执行 MOV R1,0x80000000
movs r0,r1 ,lsr #32
后C=1;
执行 mov r0,#0x10
mov r1,#0x7FFFFFFF
subs r3,R0,r1 ,lsr #1
后C=0;
总之,一般情况下加法进位,减法无借位时C=1; 对于结合移位操作的非加/减法指令,C为最后移出的值。
V 当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。
例如:执行 mov r1,#0x80000000
adds r1,r1,r1 后V=1;
执行 mov r1,#0x70000000
adds r1,r1,r1 或 CMN R1,R1 后V=1;
执行 LDR R0,=0x8000000
LDR R1,=0x7FFFFFFF
CMP R0,R1 后V=1 ;
总之,两个负数运算结果第31位为0,则V=1
两个正数运算结果第31位为1,则V=1。
另外THUMB指令一般不需要S后缀,便能影响状态标志位。
如 在THUMB状态下下面两条指令相同
movs r0,#0x00
mov r0,#0x00
MOVS总是会影响CPSR, 包括N,Z,C标志位
执行MOV pc, lr,可能会影响到T标志位,执行MOVS pc, lr时,CPSR会被SPSR覆盖(内核态)
在Thumb代码里不能使用B跳转到ARM代码,因为T标志不会切换,即使跳到ARM代码,
也会按照Thumb方式来执行,BX是跳特殊指令,会根据目标寄存器地址来切换T标志。
- 指令+s对cpsr中标志位的影响
- 汇编常用指令对标志位的影响(转)
- 汇编常用指令对标志位的影响(转)
- 影响标志位的汇编指令
- ARM条件码与CPSR标志位的关系——cmp MOVLS与MOVHI 指令
- 汇编,减法指令SUB是怎样影响标志位的?
- ARM指令中标志位的定义
- 后缀s是如何影响标志位的
- 移位操作对CPSR的影响
- 汇编test、cmp对标志位的影响
- 常用操作对cpu标志位的影响
- ARM条件码与CPSR标志位的关系
- ARM条件码与CPSR标志位的关系
- ARM条件码与CPSR标志位的关系
- 影响CPSR状态寄存器的ARM汇编指令--总结
- 011-减法指令SUB及对标志寄存器PSW的影响
- arm cpsr的c x s f 位
- arm cpsr的c x s f 位
- Java静态代码块的妙用
- 数据库 'xxx' 已打开,并且一次只能有一个用户访问
- spring+shiro+jasig-cas+cxf 单点登录多点注销简单统一权限管理平台一
- eclipse 反编译工具Jad及插件JadClipse配置
- Linux-->基础知识-->虚拟机中的Linux安装VMware Tools
- 指令+s对cpsr中标志位的影响
- 主机名
- 闲杂(待完善)
- /*C语言编程:某人想将手中一张面值100元的人民币换成5元(可单换20张)、1元(可单换100张)和0.5元(可单换200张)面值的票子,但要求100元换以上的零钱共100张,且要求每种不少于1张,
- eclipse修改项目名称的方法
- 利用 CountDownLatch 类实现线程同步
- USACO 2.2.4 Party Lamps
- AndroidManifest.xml文件中的<uses-feature>属性详解
- IAR FOR STM8S 调试信息