随笔 - 78  文章 - 58  trackbacks - 0
<2007年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(9)

随笔分类

随笔档案

文章档案

相册

搜索

  •  

积分与排名

  • 积分 - 265174
  • 排名 - 85

最新评论

阅读排行榜

评论排行榜

终于到了最后一个寄存器了--标志寄存器(叫她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 阅读(1572) 评论(0)  编辑 收藏 引用 所属分类: 汇编语言

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理