汇编学习 NO7
来源:互联网 发布:皮卡堂盗号软件 编辑:程序博客网 时间:2024/05/29 18:23
- 1.flag寄存器:①.用来存储相关指令的某些执行结果
- ②.用来为CPU执行相关指令提供行为依据
- ③.用来控制CPU的相关工作
2.8086CPU的标志寄存器flag有16位,其中存储信息通常被称作为程序状态字(PSW),flag与其他寄存器不同,其他寄存器都是用来存放数据的,都是整个寄存器具有一个含义,而flag寄存器是按位起作用的.
3.ZF:flag的第六位,零标志位,它记录相关指令执行后,其结果是否为0,如果结果为0。那么ZF=1,否则ZF=0.
4.PF:flag的第二位,奇偶标志位,它记录相关指令后,其结果的所有bit位中1的个数是否为偶数,如果1的个数为偶数,PF=1,如果为奇数那么PF=0.
5.SF:flag的第七位,符号标志位,它记录相关指令执行后,其结果是否为负,如果结果为负,SF=1,如果非负,SF=0
6.CF:flag的第零位,进位标志位,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的错位值.
7.OF:flag的第十一位,溢出标志位,OF记录了有符号运算的结果是否发生了溢出,如果发生溢出,OF=1,如果没有OF=0.
CF和OF:CF是对无符号数运算有意义的标志位,而OF是对有符号数运算有意义的标志位
8.adc : 进位加法指令,adc 操作对象1,操作对象2
功能:操作对象1=操作对象1+操作对象2+CF
9.sbb : 带错位减法指令,sbb 操作对象1,操作对象2
功能:操作对象1=操作对象1-操作对象2-CF
10.cmp:比较指令,功能相当于减法,只是不保存结果,cmp指令执行后,对标志寄存器产生影响,例如: cmp ah,bh
①.如果SF=1,而OF=0→说明没有溢出,逻辑上真正结果的正负=实际结果的正负
②.如果SF=1,而OF=1→说明有溢出,如果因为溢出导致了实际结果为负,那么逻辑上真正的结果必然为正.
③.如果SF=0,而OF=1→说明有溢出,如果因为溢出导致了实际结果为正,那么逻辑上真正的结果必然为负
④.如果SF=0,而OF=0→说明没有溢出,实际结果为非负,所以逻辑结果必然非负
11. je 含义:等于则转移 检测位置:ZF=1
jne 含义:不等于则转移 检测位置:ZF=0
jb 含义:低于则转移 检测位置:CF=1
jnb 含义:不低于则转移 检测位置:CF=0
ja 含义:高于则转移 检测位置:CF=0且ZF=0
jna 含义不高于则转移 检测位置:CF=1或ZF=1
12.DF:flag的第十位,方向标志位,在串处理指令中,控制每次操作后SI,DI的增减;
DF=0,每次操作后,SI,DI递增 DF=1,每次操作后,SI,DI递减
13.串传送指令
①.movsb:将ds:si指向的内存单元中的字节送入es:di中,然后根据标志寄存器df位的值,将si和id或增或减,相当于以下指令:
((es)*16+(di))=((ds)*16+(si))
if (df==0) (si)=(si)+1 (di)=(di)+1
if (df==1) (si)=(si)-1 (si)=(si)-1
②.movsw:将ds:si指向的内存字单元中的字送入es:di中,然后根据标志寄存器df位的值将si和di或增或减2。
14.pushf:将标志寄存器的值压栈 popf:是从栈中弹出数据,送入标志寄存器中
- 汇编学习 NO7
- NO7::CreateWindow
- No7 Java
- 汇编宏汇编学习
- 汇编学习--汇编基础
- No7、(链表)
- LeetCode : No7 Reverse Integer
- leetcode No7. Reverse Integer
- 汇编学习
- 汇编学习
- 学习汇编
- 汇编学习
- 汇编学习
- 汇编学习
- 汇编学习
- 汇编学习
- 汇编学习
- 汇编学习
- 实现自动登录Cookie
- 数字图像处理编成入门笔记——第一章Windows位图和调色板
- Cookie文件说明及IE的Cookie文件格式
- PSD-Source
- 为实现绿色低碳的IT生活做准备——自测部分家用电器的功耗
- 汇编学习 NO7
- asp.net 用户控件传值给指定页面的方法
- 如何让您的计算机最新
- 转职中
- 这个月的任务
- Thread的Synchronized例子
- 宏模块的简单使用
- 使用自己定义的DataTable作为GridView 的数据源,并使用Gridview的update命令按钮
- 最近小结-实习前后