随笔 - 13, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

汇编语言学习笔记——第十一章 标志寄存器


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日

posted on 2012-01-04 21:35 龙傲天下 阅读(307) 评论(0)  编辑 收藏 引用 所属分类: 汇编语言学习笔记


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理