-
汇编语言标志位介绍
一、
运算结果标志位
1
、进位标志
CF(Carry Flag)
进位标志
CF
主要用来反映运算是否产生进位或借位。
如果运算结果的最
高位产生了一个进位或借位,那么,其值为
1
,否则其值为
p>
0
。
使用该标志
位的情况有:多字
(
字节
)
数的加减运算,无符号数的大小比较运算,移位操作,
字
< br>(
字节
)
之间移位,专门改变<
/p>
CF
值的指令等。
2
、奇偶标志
PF(Parity
Flag)
奇偶标志
PF
用于反映运
算结果中
“1”
的个数的奇偶性。如果
“1”
的个数为偶数,则
PF
的值
p>
为
1
,否则其值为
0
。
利用
P
F
可进行奇偶校验检查,或产生奇偶校验位。
在数据传送过程中,
为了提供传送的可靠性,
如果采用
奇偶校验的方法,
就可使用该标志位。
3
、辅助进位标志
AF(Auxiliary Carry
Flag)
在发生下列情况时,辅助进位标志
AF
的值被置为
1
,否则其值为
0
:
(1)
、在字操作时,发生低字节向高字节进位或借位时;
(2)
、在字节操作时,发生低
4
位向高
p>
4
位进位或借位时。
对以上
6
个运算结果标志位,在一般编程情况下,标志位<
/p>
CF
、
ZF
、<
/p>
SF
和
OF
的使
用频率
较高,而标志位
PF
和
AF
的使用频率较低。
4
、零标志
ZF(Zero
Flag)
零标志
ZF
用来反映运算
结果是否为
0
。如果运算结果为
0
p>
,则其值为
1
,否则其值为
0
。
在判断运算结果是否为
0
时,可使用此标志位。
5
、符号标志
SF(Sign
Flag)
符号标志
SF
用来反映运
算结果的符号位,它与运算结果的最高位相同。
在微机系统中
,有符号数采用补码表示法,所以,
SF
也就反映运算结果的正
负号。运算结
果为正数时,
SF
的值为
0
,否则其值为
1
。
6
、溢出标志
OF(Overflow
Flag)
溢出标志
OF
用于反映有
符号数加减运算所得结果是否溢出。
如果运算结果超过当前运算位
数所能表示的范围,则称为溢出,
OF
的值被置为
1
,否则,
OF
的值被清
为
0
。
“<
/p>
溢出
”
和
“
p>
进位
”
是两个不同含义的概念,不要混淆。
如果不太清楚的话,请查阅《计算机组
成原理》课程中的有关章节。
(
1
)
二、
状态控制标志位
状态控制标志位是用
来控制
CPU
操作的,它们要通过专门的指令才能使之发生改变
。
1
、追踪标志
TF(Trap
Flag)
当追踪标志
TF
被置为<
/p>
1
时,
CPU
进
入单步执行方式,即每执行一条指令,产生一个单步
中断请求。这种方式主要用于程序的
调试。
指令系统中没有专门的指令来改变标志位
TF
的值,但程序员可用其它办法来改变其值。
<
/p>
2
、中断允许标志
IF(Interru
pt-enable Flag)
中断允许标志
IF
是用来决定
CPU
是否响应
CPU
外部的可屏蔽中断发出的中断请求。但不
管该标志为
何值,
CPU
都必须响应
CPU
外部的不可屏蔽中断所发出的中断请求,
以及
CPU
内部产生的中断请求。具体规定如下:
(1)
、当
IF=1
时,
p>
CPU
可以响应
CPU
外部的可屏蔽中断发出的中断请求;
(2)
、当
IF=0
时,
CPU<
/p>
不响应
CPU
外部的可屏蔽中断发出的中
断请求。
CPU
的指令系统中也有专
门的指令来改变标志位
IF
的值。
<
/p>
3
、方向标志
DF(Direction
Flag)
方向标志
DF
用来决定在
串操作指令执行时有关指针寄存器发生调整的方向。
具体规定在第
5.2.11
节
——
字符串操作指令
——
中给出。在微机的指令系统中,还提供了专门的指令来
p>
改变标志位
DF
的值。
三
、
32
位标志寄存器增加的标志位
1
、<
/p>
I/O
特权标志
IOPL(I/O
Privilege Level)
I/O
特权标志用两位二
进制位来表示,
也称为
I/O
特权级字
段。
该字段指定了要求执行
I/O
指令
的特权级。
如果当前的特权级别在数值上小于等于
IOPL
p>
的值,
那么,
该
I
/O
指令可执
行,否则将发生一个保护异常。
< br>
2
、嵌套任务标志
NT(Nested
Task)
嵌套任务标志
NT
用来控
制中断返回指令
IRET
的执行。具体规定如下:
(1)
、
当
NT=0
,
用堆栈中保存的值恢复
< br>EFLAGS
、
CS
和
EIP
,
执行常规的中断返回操作;
(2)
、当
NT=1<
/p>
,通过任务转换实现中断返回。
3
、重启动标志
RF(Restart
Flag)
重启动标志
RF
用来控制
是否接受调试故障。规定:
RF=0
时,表示
< br>“
接受
”
调试故障,否则
拒绝之。在成功执行完一条指令后,处理机把
RF
置为
0
,当接受到一个非调试故障时,处
< br>理机就把它置为
1
。
4
、虚拟
8086
方式
标志
VM(Virtual 8086 Mode)
如果该标
志的值为
1
,
则表示处理机处于虚拟的
8086
方式下的工作状态,
否则,<
/p>
处理机处
于一般保护方式下的工作状态。
(
2
)