1.在8086CPU中,标志寄存器的作用:
(1)用来存储相关指令的某些执行结果;
(2)用来为CPU执行相关指令提供行为依据;
(3)用来控制CPU的相关工作方式。
2.flag寄存器按位起作用。
3.标志寄存器的第6位是ZF,零标志位。结果为0,则ZF=1。
4.flag的第2位是PF,奇偶标志位。1的个数为偶数,则PF=1.
5.flag的第7位是SF,符号标志位。结果为负,则SF=1.
6.flag的第0位是CF,进位标志位。
7.flag的第11位是OF,溢出标志位。发生溢出,则OF=1.
8.adc:带进位加法指令。
指令格式:adc 操作对象1,操作对象2
功能:操作对象1=操作对象1+操作对象2+CF
9.sbb:带借位减法指令。
指令格式:sbb 对象1,对象2
功能:对象1=对象1-对象2-CF
10:cmp:比较指令。
指令格式:cmp 对象1,对象2
功能:对象1-对象2,不保存结果,根据计算结果对标志寄存器进行设置。
11.flag的第10位是DF,方向标志位。在串处理指令中,控制每次操作后si和di的增减。
df=0 每次操作后si和di递增;
df=1 每次操作后si和di递减。
12.串传送指令
(1)movsb,执行movsb指令相当于下面操作:
a.((es)*16+(di))=((ds)*16+(si))
b.如果df=0则 (si)=(si)+1 (di)=(di)+1;如果df=1则(si)=(si)-1 (di)=(di)-1.
(2)movsw,movsw的功能是将ds:si指向的内存字单元中的字送入ds:di中,然后根据flag中df位的值,将si和di递增2或递减2.
(3)rep,格式: rep movsb/movsw
rep的作用是根据cx的值,重复执行后面的串传送指令。
13.pushf的功能是将标志寄存器中的值压栈。
popf是从栈中弹出数据,送入标志寄存器中。
pushf和popf为直接访问标志寄存器提供了一种方法。
实验11 编写子程序
略。
END
2012年01月04日