EFLGAS寄存器笔记
来源:互联网 发布:手机爱淘宝每日抽红包 编辑:程序博客网 时间:2024/05/18 02:22
1.进位标志CF(Carry Flag):若果运算结果的最高位产生了一个进位或借位(进位借位都一样,减法本质是加法),那么,其值为1,否则其值为0.//笔记:假如32位的数据0xffffffff加1,会产生进位,但因为数据宽度为32,进位无法存储。所以,其实进位的1是存储在进位标志寄存器CF中,没有丢失,这就是进位标志寄存器的作用。
2.奇偶标志PF(Parity Flag),奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0.
3.辅助进位标志AF(Auxiliary Carry Flag):
在发生下列情况是,辅助进位标志AF的值被置为1,否则其值为0;
(1).在字操作时,发生低字节向高字节进位或借位时;32位 0xFFFFFFFF 16位 0xFFFF
(2)在字节操作时(8位),发生低4位向高4位进位或借位时。FF
4.零标志ZF(Zero Flag),零标志ZF用来反映运算结果是否为0;如果运算结果为0,则其值为1,否则其值为0.在判断运算结果是否为0时,可使用此标志位。
XOR EAX,EAX //可以用来产生0,影响零标志寄存器,因为异或是运算。 异或也可以用作清零
MOV EAX,0 //0不是运算结果,故不能影响零标志寄存器
5.符号标志SF(Sign Flag),符号标志SF用来反映运算结果,符号标志SF它与运算结果的最高位相同,运算结果的最高位是什么,SF就是什么。
6.溢出标志OF(Overflow flag),溢出标志OF用于反映有符号数加减运算所得的结果是否溢出。
如果运算结果超过当前运算位数所能表示的的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0;
计算机如何判断是否溢出:
比如80-40
mov al,80
sub al,40
相当于
mov al,80
add al,0c0
1000 0000 //红色是符号位;绿色是最高有效数值位
+
1100 0000 //红色是符号位;绿色是最高有效数值位
--------------
符号位有进位:1
坐高有效位数值为想符号位产生的进位:0
1 xor 0 == 1 所以OF = 1
进位标志CF(Carry Flag)与溢出标志OF(Overflow flag)的区别:
进位标志表示无符号数运算结果是否超出范围;
溢出标志表示有符号数运算结果是否超出范围;
溢出主要是给有符号运算使用过的,在有符号的运算中,有如下规律:
正 + 正 = 正 如果结果是负数,则说明有溢出//例:7F+7E=FE,正 + 正 = 负,溢出
负 + 负 = 负 如果结果是正数,则说明有溢出//例:FF+ FE=7E,负 + 负 = 正,溢出
正 + 负 永远都不会有溢出
有无符号取决于操作者怎么区分和使用
无符号数:0......7F.......80.....FF
有符号数: 正数:0......7F 负数:80......FF
例如:正数超过7F则为溢出,负数超过FF为溢出。无符号数超过FF则为进位。
ADC AL,CL //带进位加法RM,R/M.IMM
SBB AL CL //带借位减法RM,R/M.IMM
XGHG AL,CL //交换数据 R/M
小知识:
(1)寄存器清零:例如xor eax,eax //让某寄存器与自己本身做异或操作,相同为0,不同为1,比如0110与0110异或,肯定全部为0,存储器中就全部为0了。
(2)通过mov eax,0和xor eax,eax清零的的区别:XOR EAX,EAX因为通过异或运算产生0,注意是因为运算操作,所以会对标志位寄存器产生影响。同样的MOV EAX,0 则不会影响标志位寄存器,因为不是通过运算得来。
(3)加法(ADD)与带进位加法(ADC)的区别:ADD就是把2个数加起来,是不理会进位的;ADC是2个数加起来时,把进位也加进去;从硬件上说,ADD就是半加器,ADC就是全加器;ADD、XOR之类的计算会影响标志寄存器的。
- EFLGAS寄存器笔记
- 寄存器-内存访问笔记
- 大灰狼笔记二-寄存器
- 汇编学习笔记--寄存器
- 【汇编语言笔记】 基本知识、寄存器
- 汇编寄存器笔记
- 8086标志寄存器笔记
- 汇编学习笔记[1]:寄存器
- 汇编学习笔记[1]:寄存器
- 第2章 寄存器 笔记
- 汇编语言学习笔记:寄存器(1)
- 汇编学习笔记--标志寄存器
- inter x86 浮点寄存器笔记
- 触发器,寄存器,锁存器学习笔记
- 汇编语言学习笔记 第一节:寄存器
- 汇编语言寄存器内存访问笔记
- 汇编语言笔记--第二章--寄存器
- 汇编_寄存器_笔记
- TensorFlow全新的数据读取方式:Dataset API入门教程
- CEO说其实福特造的是“计算机”,流水线工人靠外骨骼变身钢铁侠
- 一文看尽科大讯飞年度发布会:医疗,是这家A股AI公司的新赛道
- 分页类
- 编程笔记记录
- EFLGAS寄存器笔记
- java8新特性 lambda Stream map(函数式编程)
- 程序员表白代码(一)
- 海航联合慈航基金会致力于为社会谋福
- Java8:Lambda表达式增强版Comparator和排序
- Spring整合web项目
- 测鬼记(中)之奋斗——写在前言
- Zephyr OS之开发环境的搭建
- 爬虫爬取音乐url大全