状态控制标志位

二、状态控制标志位

状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。

1、追踪标志TF(Trap Flag)

                         当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。

                         指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。

2、中断允许标志IF(Interrupt-enable Flag)

                         中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:

                                       (1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;

                                       (2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

                         使用sti指令可将IF位置为1[开中断];使用cli指令置为0[关中断]

3、方向标志DF(Direction Flag)

                         DF,方向标志位。在串处理指令中,控制每次操作后SI,DI的增减

                         DF = 0,则每次操作后si,di递增;否则递减

                         使用cld指令将DF位置为0;使用std指令置为1;DF位默认为0

                         常与串传送指令movsb,movsw,rep配合使用

三、32位标志寄存器增加的标志位

1、I/O特权标志IOPL(I/O Privilege Level)

                         I/O特权标志用两位二进制位来表示,也称为I/O特权级字段。该字段指定了要求执行I/O指令的特权级。如果当前的特权级别在数值上小于等于IOPL的值,那么,该I/O指令可执行,否则将发生一个保护异常。

2、嵌套任务标志NT(Nested Task)
                         在保护模式下,指示当前执行的任务嵌套于另一任务中。控制中断返回指令IRET的执行。具体规定如下:

                                       (1)、当NT=0,任务不被嵌套,用堆栈中保存的值恢复EFLAGS、CS和EIP,执行常规的中断返回操作;

                                       (2)、当NT=1,任务被嵌套,通过任务转换实现中断返回。

3、重启动标志RF(Restart Flag)
                         重启动标志RF用来控制是否接受调试故障。规定:RF=0时,表示“接受”调试故障,否则拒绝之。在成功执行完一条指令后,处理机把RF置为0,当接受到一个非调试故障时,处理机就把它置为1,中国自学编程网整理发布!。

4、虚拟8086方式标志VM(Virtual 8086 Mode)

                         如果该标志的值为1,则表示处理机处于虚拟的8086方式下的工作状态,否则,处理机处于一般保护方式下的工作状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值