鱼C论坛

 找回密码
 立即注册
查看: 3642|回复: 3

王爽汇编语言第三版检测点15.1问题

[复制链接]
发表于 2020-3-31 23:12:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
15.1有(1)和(2), (1):说了在进入中断例程后IF 和TF都已经被置0,没有必要再进行设计了

我的问题: 到底是哪个中断把IF 和TF置0 的,因为在执行我们模拟的int9之前,并没有发现进入任何中断,(参考p280的程序)为什么没有必要再设置了

我的问题2:再完成15.1(2)我用了
cli
mov word ptr es:[9*4],offset int9
mov word ptr es:[9*4+2],cs
sti
之后
从sti可以看到IF被置于1了,还可以按照(1)中的简化写法吗?我在csdn上搜了答案,上面还是用了省去设置IF 和TF,如(1),
这样还能真正模拟中断吗,(因为模拟中断一定要IF=0,TF=0,我们前面的sti打破了这一”规定“)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-7 22:13:26 | 显示全部楼层
我来看看!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-8 10:32:48 | 显示全部楼层
不是哪个中断把IF 和TF置0 的,是CLI 指令禁止了中断,然后 STI 指令允许中断。
我们在改写中断向量表设置自己的中断程序的时候必须先禁止中断,以防止改写
到一半时突然发生中断,导致严重错误。改写完了后,必须恢复中断,如果不恢复,
中断程序就不会执行了。

当然,我们可以自己设置标志位来实现 CLI 和 STI 功能
CLI 如下:
pushf
pop ax
and ax,0FDFFH
push ax
popf

STI 如下:
pushf
pop ax
or ax,0200h
push ax
popf
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-8 20:13:18 | 显示全部楼层
我学习了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 16:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表