SI称为源变址寄存器 (Source Index),通常存放要处理的数据的内存地址。
DI称为目的变址寄存器(Destination Index),通常存放处理后的数据的内存地址。
**作用:**变址寄存器主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式(在第3章有详细介绍),为以不同的地址形式访问存储单元提供方便。 变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。 ESI和EDI常用来配合使用完成数据的赋值操作!
四、**标志寄存器(**EFLAGS)
标志寄存器又称程序状态字(外语缩写:PSW、外语全称:Program Status Word),存放条件标志、控制标志,主要用于反映处理器的状态和ALU运算结果的某些特征及控制指令的执行。一共有三种作用:
-
用来存储相关指令的某些执行结果;
-
用来为CPU执行相关指令提供行为依据;
-
用来控制CPU的相关工作方式。
**在汇编中的用途:**标志寄存器是实现条件判断和逻辑判断的一种机制,在汇编语言中一般不直接访问标志寄存器,而是通过指令的操作隐含访问标志寄存器 。
80386架构的标志寄存器有32位,其中存储的信息通常被称为程序状态字(PSW)。简称flag。flag和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义。而flag寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息。在这32位中大部分是保留和给编写操作系统的人用的,一般情况下只需知道32位的低16位中的8位即可,下图列出了80386架构的标志寄存器中需要了解的8个位的位置:
运算结果标志位
1、CF(Carry Flag):进位标志
进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。
使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。
2、PF(Parity Flag):奇偶标志
奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。
利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。
3、AF(Auxiliary Carry Flag):辅助进位标志
在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:
-
在字操作时,发生低字节向高字节进位或借位时;
-
在字节操作时,发生低4位向高4位进位或借位时。
对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。
4、ZF(Zero Flag):零标志
零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。
5、SF(Sign Flag):符号标志
符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。
6、OF(Overflow Flag):溢出标志
溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。
状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。
1、TF(Trap Flag):追踪标志
当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。
指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。
2、IF(Interrupt-enable Flag):中断允许标志
先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以扫码领取!!!!
资源分享
- 最新大厂面试专题
这个题库内容是比较多的,除了一些流行的热门技术面试题,如Kotlin,数据库,Java虚拟机面试题,数组,Framework ,混合跨平台开发,等
- 对应导图的Android高级工程师进阶系统学习视频
最近热门的,NDK,热修复,MVVM,源码等一系列系统学习视频都有!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!
NDK,热修复,MVVM,源码等一系列系统学习视频都有!
[外链图片转存中…(img-62wz8dKo-1711295984032)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!