终于到了最后一个寄存器了--标志寄存器(叫她flag),8086是16位
(1)标志寄存器作用:
a、用在存储相关指令的某些执行结果
b、用来为CPU执行相关指令提供行为依据
c、用来控制CPU的相关工作方式
(2)flag存储的信息称为程序状态字(PSW)
(3)各位详解:
a、第0位 CF:进位(借位)标志位,对无符号运算有意义
b、第2位 PF:奇偶标志位, 偶数PF=1
c、第6位 ZF:结果是否是0
d、第7位 SF:结果是否为负
e、第10位 DF:方向标志位
DF:0 每次操作后SI、DI递增,使用CLD置DF为0
DF:1 每次操作后SI、DI递减,使用STD置DF为1
f、第11位 OF:溢出标志位,对有符号运算有意义
(4)相关指令
a、adc == add + CF ,用于任意大数的加法
b、sbb == sub - CF, 用于任意大数的减法
c、cmp
je/jb/jnb/ja/jna 配套为有条件转移
d、 rep
movsb/mobsw 配合DF用于内存拷贝 ,相当于
s : ((es)*16+(di)) = ((ds)*16+(si))
inc si ;DF为0的情况,为1则是dec si
inc di
loop s
e、pushf :将FLAG压栈 / POPF : 将栈中内容弹出写入标志寄存器中
posted on 2007-06-13 22:50
merlinfang 阅读(1788)
评论(0) 编辑 收藏 引用 所属分类:
汇编语言