摘要: 中断和异常相似,都是暂停正在执行的程序去执行其他的,以后还要再转回来。这里要解决两个问题,一个是如何来设置响应的事件类型,另一个是响应某个事件来干什么。中断有两种,一种是内部中断,有int 调用。另一种是外部中断。外部中断分为可屏蔽中断和不可屏蔽中断。不可屏蔽中断要于IF(interrupt flag)无关,直接由cpu来接收。对应的向量号为2.可屏蔽中断由8259A可编程中断处理器接受然后转给cpu。可根据优先级选择响应某个中断,可设置打开关闭某个中断。8259A有两片,每片有8根中断信号线。两片是级联连接的。也就是一个连在另一个上,所以共有15个中断信号线。好,如何来响应事件类型,就好似解 阅读全文
posted @ 2012-04-10 17:43 金国梁 阅读(254) 评论(0) 推荐(0) 编辑
摘要: int 15hax=0e820h 用来获取内存信息ebx=0 int 15h每次会設它的值,来继续找下一个ARDS,我们要在首次调用是置0,以后注意不要对它操作。es:di int 15h会返回ARDS到es:di,所以我们要每次设定好,以使ARDS保存在我们想要保存的地方ecx=20 有些bios会根据ecx的值来填充es:di,有些则默认填充20,所以统一起见ecx=20edx=0534d4150h bios会使用此值来对信息校验设定好上述值然后调用中断就可以了如果我们想读出所有的内存信息只要通过循环每次di+20就可以,为了判断信息结束,要判断cf是否为1并且ebx=0.ARDS是一个数 阅读全文
posted @ 2012-04-10 16:04 金国梁 阅读(1175) 评论(0) 推荐(0) 编辑