Chinaunix首页 | 论坛 | 博客
  • 博客访问: 512116
  • 博文数量: 161
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-25 01:20
文章分类

全部博文(161)

文章存档

2011年(44)

2010年(47)

2009年(48)

2008年(22)

我的朋友

分类:

2009-08-28 23:12:20

标志寄存器
1>
特殊寄存器
作用
1用来存储相关指令的某些执行结果
2用来为cpu执行相关指令提供行为依据
3用来控制cpu的相关工作
flag和寄存器不一样,区别
寄存器是具有一个含义
flag寄存器是按位起作用的,每一位都有专门的含义,记录特定的信息
标志位:
1为真,表示肯定
15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
                of  df  if  tf  sf  zf      af      pf      cf
zf
记录指令执行的结果
mov ax,1
add ax,0 ;ax为0
结果为0,zf=1,表示结果是0
        zf=0,表示结果非0
指令对标志寄存器的影响,我们在使用一条指令的时候,要注意这条指令的全部功能
pf
奇偶标志位
记录相关指令执行后,其结果所有二进制中1的个数是否位偶数
num.1=偶,pf=1
num.1=奇,pf=0
sf
符号标志位,记录相关指令执行后,其结果是否为负
result=-,sf=1
result=+,sf=0
cpu对有符号数运算结果的一种记录,记录数据的正负
当数据当作有符号:通过sf来得知正负
当数据当作无符号:sf无意义

cf
进位标志

of
 
2>
abc指令
abc 操作对象1,操作对象2
操作对象1=操作对象1+操作对象2+cf
3>
sbb指令
sbb 操作对象1,操作对象2
操作对象1=操作对象1+操作对象2-cf
4>
cmp
比较指令
功能相当于减发指令
格式
cmp 操作对象1,操作对象2
功能:计算操作对象1-操作对象2,但并不保持结果,仅仅根据计算结果对标志位进行设置
(ax)=(bx)  zf=1
(ax)!=(bx)  zf=0
(ax)<(bx)  cf=1
(ax)>=(bx) cf=0
(ax)>(bx)  结果又不为0,cf=0且zf=0
(ax)<=(bx)   cf=1或zf=1
cpu执行cmp两种含义
无符号运算
有符号运算
 
5>
检测比较结果的条件转移指令
大多数条件转移指令检测标志寄存器的相关标志位
根据结果是否更改ip
通常检测cmp影响的标志寄存器,通常和cmp配合使用
je   等于则转移   jump equal
jne  不等于则转移 jump not equal
jb   低于则转移   below
jne  不低于则转移
ja   高于则转移    above
jna  不高于则转移
cmp指令于其他比较结果相关的有条件转移指令,在联合使用时
不必考虑cmp指令对相关标志位的影响,和je等指令对相关标志位的检测
 
 
6>
df 和串传送指令
df方向标志位,控制每次操作后s, di的增减
df=0 ,每次操作后si,di 递增
df=0,每次操作后si,di递减
串传送指令movsb
格式movsb (8位一次,字节单位)
((es)*16+(di))=((ds)*16+(si))
df=0,(si)=(si)+1
 +   (di)=(di)+1
df=1,(si)=(si)-1
     (di)=(di)-1
movsw
movsw的功能是将ds:si之乡的内存字单元中的word送入es:di.然后根据标志寄存器df位,si,di递增或递减

一般movsb movsw和rep配合使用
rep movsb
汇编语言描述
s:
movsb
loop s
对df位进行设置
cld 将df=0
dtd 将df=1
例如:
mov ax,data
mov ds,ax
mov si,0
mov es,ax
mov di,5
mov cx,5  ;rep循环计数依靠cx  ,d4 d3 d2 d1 d0
cld
rep movsb

7>pushf popf
pushf功能是将标示寄存器的值压栈,
popf 功能从栈中弹出数据,送入标志寄存器
为直接访问标志寄存器提供了一种方法
mov ax,0
push ax
popf
mov ax,0fff0h
add ax,0010h
pushf
pop ax
and al,11000101b
and ah,00001000b
8>
标志寄存器在debug中的表示
nv up ei pl nz na po nc
 

 
阅读(904) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-06-05 02:18:37

大连法律咨询在线 http://www.fabowang.com 大连律师在线咨询 http://www.fabowang.com 大连法律顾问网 http://www.fabowang.com 大连律师咨询 http://www.fabowang.com

chinaunix网友2009-11-26 15:28:33

草,都他妈的抄吧。你他妈的自己懂不懂?别鸡巴不懂装懂。。。 让你自己编程 就知道你说的鸡巴这么肤浅。。。。