IF,TF,NT

IF

IF 位只能限制外部设备的中断,对那些影响系统正常运行的中断都无效,如异常 exception,软中断,如 int n 等,不可屏蔽中断 NMI 都不受 IF 限制.

sti 和 cli

IF 可以直接控制。指令cli 使 IF 位为 0,这称为关中断,指令 sti 使 IF 位为 1,这称为开中断。

TF

TF 表示 Trap Flag,也就是陷阱标志位,这用在调试环境中,当TF 为 0 时表示禁止单步执行,也就是说,进入中断后将 TF 置为 0,表示不允许中断处理程序单步执行

NT

NT 位表示 Nest Task Flag,即任务嵌套标志位,也就是用来标记任务嵌套调用的情况。
任务嵌套调用是指
CPU 将当前正执行的旧任务挂起,转去执行另外的新任务,待新任务执行完后,CPU 再回到旧任务继续执行。
(1)将旧任务 TSS 选择子写到了新任务 TSS 中的“上一个任务 TSS 的指针”字段中。
(2)将新任务标志寄存器 eflags 中的 NT 位置 1,表示新任务之所以能够执行,是因为有别的任务调
用了它。
第(2)步中这个“别的任务”便是指 CPU 在第 1 步中写进新任务自己 TSS 的“上一个任务 TSS 的
指针”字段中的值。
这就用到 NT 位了,当 CPU 执行 iret 时,它会去检查 NT 位的值,如果 NT 位为 1,说明当前任务是被嵌套执行的,因此会从自己 TSS 中“上一个任务 TSS 的指针”字段中获取旧任务,然后去执行该任务。如果 NT 位的值为 0,这表示当前是在中断处理环境下,于是就执行正常的中断退出流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值