汇编语言(王爽) 第11章 标志寄存器

这里讲一个特殊的寄存器,flag内存

先看flag的16位显示it

11.1 zfclass

指令执行后,结果0,ZF=1im

指令执行后,结果不为0,ZF=0总结

11.2 pf数据

指令执行后,全部bit位中1的个数是否位偶数,若为偶数,那么pf=1img

若为奇数,pf=0语言

11.3 sfdi

指令执行后,结果负,SF=1数字

指令执行后,结果不为负,SF=0

11.4 cf

进位

若出现进位,那么CF=1

没有的话CF=0

11.5 of

溢出,

数字的溢出。

8位范围是-128-127 若130就是溢出了

11.6 abc指令

abc a,b

a=a+b+CF

为啥须要这个东西呢?

加法能够分2步,

1 低位=低位加

2 高位=高位加+CF

把加法分步进行了

11.8 cmp指令

减法指令,可是不保存实际减法结果,就是用来影响flag的位

有4种状况把,本身总结的

1 sf=1,of =0 就A<B

2 sf=1,of=1 正溢出出现的负值,就是a-b是一个大的正数,要是8位的话,就是大于127的

3 sf=0,of=1 负溢出才会出现正值,那么a-b就是一个负数,要是8位的话,就是小于128的

4 sf=0 sf=1 没溢出,就很正常的比较大小

11.9 讲了一些条件转移指令

jczx 这种的

就和高级语言的if switch差很少把

11.10 串传送

DF =0 每次操做后 si,di 递增

DF=1 每次操做后si,di递减

movsb一次传一个内存单元,配合rep movsb使用

11.11 pushf popf

pushf 把标志寄存器的值入栈

popf 从栈中弹出数据,送到栈中

 

这里就讲一个flag寄存器,每一个位都下设置0,1,起到不一样的做用

 

EOF

相关文章
相关标签/搜索